mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-05-07 09:19:50 +00:00
Compare commits
7 Commits
b9c7832c4a
...
d40e32a143
Author | SHA1 | Date | |
---|---|---|---|
d40e32a143 | |||
1bc206e62d | |||
106a0feaba | |||
984e0c4094 | |||
9321e811d7 | |||
a64fcbfb5c | |||
cff07a12d6 |
13
.github/FUNDING.yml
vendored
Normal file
13
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: arsenetar
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
29
.tx/config
29
.tx/config
@ -1,26 +1,27 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[dupeguru-1.core]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/core.po
|
||||
source_file = locale/core.pot
|
||||
source_lang = en
|
||||
type = PO
|
||||
|
||||
[dupeguru-1.columns]
|
||||
[o:voltaicideas:p:dupeguru-1:r:columns]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/columns.po
|
||||
source_file = locale/columns.pot
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[dupeguru-1.ui]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/ui.po
|
||||
source_file = locale/ui.pot
|
||||
[o:voltaicideas:p:dupeguru-1:r:core]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/core.po
|
||||
source_file = locale/core.pot
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[dupeguru-1.qtlib]
|
||||
[o:voltaicideas:p:dupeguru-1:r:qtlib]
|
||||
file_filter = qtlib/locale/<lang>/LC_MESSAGES/qtlib.po
|
||||
source_file = qtlib/locale/qtlib.pot
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[o:voltaicideas:p:dupeguru-1:r:ui]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/ui.po
|
||||
source_file = locale/ui.pot
|
||||
source_lang = en
|
||||
type = PO
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
__version__ = "4.2.0"
|
||||
__version__ = "4.2.1"
|
||||
__appname__ = "dupeGuru"
|
||||
|
@ -12,7 +12,7 @@ a community around this project.
|
||||
|
||||
So, whatever your skills, if you're interested in contributing to dupeGuru, please do so. Normally,
|
||||
this documentation should be enough to get you started, but if it isn't, then **please**,
|
||||
`let me know`_ because it's a problem that I'm committed to fix. If there's any situation where you'd
|
||||
open a discussion at https://github.com/arsenetar/dupeguru/discussions. If there's any situation where you'd
|
||||
wish to contribute but some doubt you're having prevent you from going forward, please contact me.
|
||||
I'd much prefer to spend the time figuring out with you whether (and how) you can contribute than
|
||||
taking the chance of missing that opportunity.
|
||||
@ -82,10 +82,9 @@ agree on what should be added to the documentation.
|
||||
dupeGuru. For more information about how to do that, you can refer to the `translator guide`_.
|
||||
|
||||
.. _been open source: https://www.hardcoded.net/articles/free-as-in-speech-fair-as-in-trade
|
||||
.. _let me know: mailto:hsoft@hardcoded.net
|
||||
.. _Source code repository: https://github.com/arsenetar/dupeguru
|
||||
.. _Issue Tracker: https://github.com/hsoft/arsenetar/issues
|
||||
.. _Issue labels meaning: https://github.com/hsoft/arsenetar/wiki/issue-labels
|
||||
.. _Issue Tracker: https://github.com/arsenetar/issues
|
||||
.. _Issue labels meaning: https://github.com/arsenetar/wiki/issue-labels
|
||||
.. _Sphinx: http://sphinx-doc.org/
|
||||
.. _reST: http://en.wikipedia.org/wiki/ReStructuredText
|
||||
.. _translator guide: https://github.com/hsoft/arsenetar/wiki/Translator-Guide
|
||||
.. _translator guide: https://github.com/arsenetar/wiki/Translator-Guide
|
||||
|
@ -45,7 +45,7 @@ class _ActualThread(threading.Thread):
|
||||
self._lock = threading.Lock()
|
||||
self._run = True
|
||||
self.lastrowid = -1
|
||||
self.setDaemon(True)
|
||||
self.daemon = True
|
||||
self.start()
|
||||
|
||||
def _query(self, query):
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Translators:
|
||||
# Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48) <admin@mnh48.moe>, 2021
|
||||
# Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48) <admin@mnh48.moe>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48) <admin@mnh48.moe>, 2021\n"
|
||||
"Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi (MNH48) <admin@mnh48.moe>, 2022\n"
|
||||
"Language-Team: Malay (https://www.transifex.com/voltaicideas/teams/116153/ms/)\n"
|
||||
"Language: ms\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -987,4 +987,4 @@ msgstr "Cache dikosongkan."
|
||||
|
||||
#: qt\preferences_dialog.py:173
|
||||
msgid "Use dark style"
|
||||
msgstr ""
|
||||
msgstr "Guna gaya gelap"
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Translators:
|
||||
# Ahmet Haydar Işık <itsahmthydr@gmail.com>, 2021
|
||||
# Emin Tufan Çetin <etcetin@gmail.com>, 2021
|
||||
# Emin Tufan Çetin <etcetin@gmail.com>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2021\n"
|
||||
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2022\n"
|
||||
"Language-Team: Turkish (https://www.transifex.com/voltaicideas/teams/116153/tr/)\n"
|
||||
"Language: tr\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -983,4 +983,4 @@ msgstr "Önbellek temizlendi."
|
||||
|
||||
#: qt\preferences_dialog.py:173
|
||||
msgid "Use dark style"
|
||||
msgstr ""
|
||||
msgstr "Karanlık biçem kullan"
|
||||
|
@ -1,6 +1,9 @@
|
||||
# Translators:
|
||||
# 太子 VC <taiziccf@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: 太子 VC <taiziccf@gmail.com>, 2021\n"
|
||||
"Language-Team: Chinese (Taiwan) (https://www.transifex.com/voltaicideas/teams/116153/zh_TW/)\n"
|
||||
"Language: zh_TW\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -9,53 +12,53 @@ msgstr ""
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
msgstr "退出"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
msgstr "选项"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr ""
|
||||
msgstr "忽略列表"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr ""
|
||||
msgstr "清空图片缓存"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr ""
|
||||
msgstr "dupeGuru 帮助"
|
||||
|
||||
#: qt/app.py:86 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "About dupeGuru"
|
||||
msgstr ""
|
||||
msgstr "关于 dupeGuru"
|
||||
|
||||
#: qt/app.py:87
|
||||
msgid "Open Debug Log"
|
||||
msgstr ""
|
||||
msgstr "打开调试记录"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr ""
|
||||
msgstr "确定要移除所有缓存分析图片?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr ""
|
||||
msgstr "图片缓存已清空。"
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr ""
|
||||
msgstr "{} 文件 (*.{})"
|
||||
|
||||
#: qt/deletion_options.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Deletion Options"
|
||||
msgstr ""
|
||||
msgstr "删除选项"
|
||||
|
||||
#: qt/deletion_options.py:35 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Link deleted files"
|
||||
msgstr ""
|
||||
msgstr "链接已删除的文件"
|
||||
|
||||
#: qt/deletion_options.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
@ -91,20 +94,20 @@ msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:60 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "取消"
|
||||
|
||||
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Attribute"
|
||||
msgstr ""
|
||||
msgstr "属性"
|
||||
|
||||
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Selected"
|
||||
msgstr ""
|
||||
msgstr "已选择"
|
||||
|
||||
#: qt/details_table.py:16 qt/directories_model.py:24
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
msgstr "源文件"
|
||||
|
||||
#: qt/directories_dialog.py:64 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Results..."
|
||||
@ -908,3 +911,43 @@ msgstr ""
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr ""
|
||||
|
||||
#: qt\se\preferences_dialog.py:70
|
||||
msgid "Partially hash files bigger than"
|
||||
msgstr ""
|
||||
|
||||
#: qt\se\preferences_dialog.py:80
|
||||
msgid "MB"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:163
|
||||
msgid "Use native OS dialogs"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:166
|
||||
msgid ""
|
||||
"For actions such as file/folder selection use the OS native dialogs.\n"
|
||||
"Some native dialogs have limited functionality."
|
||||
msgstr ""
|
||||
|
||||
#: qt\se\preferences_dialog.py:68
|
||||
msgid "Ignore files larger than"
|
||||
msgstr ""
|
||||
|
||||
#: qt\app.py:135 qt\app.py:293
|
||||
msgid "Clear Cache"
|
||||
msgstr ""
|
||||
|
||||
#: qt\app.py:294
|
||||
msgid ""
|
||||
"Do you really want to clear the cache? This will remove all cached file "
|
||||
"hashes and picture analysis."
|
||||
msgstr ""
|
||||
|
||||
#: qt\app.py:299
|
||||
msgid "Cache cleared."
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:173
|
||||
msgid "Use dark style"
|
||||
msgstr ""
|
||||
|
@ -1041,44 +1041,26 @@ class ScrollAreaImageViewer(QScrollArea):
|
||||
"""After scaling, no mouse position, default to center."""
|
||||
# scrollBar.setMaximum(scrollBar.maximum() - scrollBar.minimum() + scrollBar.pageStep())
|
||||
self._horizontalScrollBar.setValue(
|
||||
int(
|
||||
factor * self._horizontalScrollBar.value()
|
||||
+ ((factor - 1) * self._horizontalScrollBar.pageStep() / 2)
|
||||
)
|
||||
int(factor * self._horizontalScrollBar.value() + ((factor - 1) * self._horizontalScrollBar.pageStep() / 2))
|
||||
)
|
||||
self._verticalScrollBar.setValue(
|
||||
int(
|
||||
factor * self._verticalScrollBar.value()
|
||||
+ ((factor - 1) * self._verticalScrollBar.pageStep() / 2)
|
||||
)
|
||||
int(factor * self._verticalScrollBar.value() + ((factor - 1) * self._verticalScrollBar.pageStep() / 2))
|
||||
)
|
||||
|
||||
def adjustScrollBarsScaled(self, delta):
|
||||
"""After scaling with the mouse, update relative to mouse position."""
|
||||
self._horizontalScrollBar.setValue(
|
||||
int(self._horizontalScrollBar.value() + delta.x())
|
||||
)
|
||||
self._verticalScrollBar.setValue(
|
||||
int(self._verticalScrollBar.value() + delta.y())
|
||||
)
|
||||
self._horizontalScrollBar.setValue(int(self._horizontalScrollBar.value() + delta.x()))
|
||||
self._verticalScrollBar.setValue(int(self._verticalScrollBar.value() + delta.y()))
|
||||
|
||||
def adjustScrollBarsAuto(self):
|
||||
"""After panning, update accordingly."""
|
||||
self.horizontalScrollBar().setValue(
|
||||
int(self.horizontalScrollBar().value() - self._mousePanningDelta.x())
|
||||
)
|
||||
self.verticalScrollBar().setValue(
|
||||
int(self.verticalScrollBar().value() - self._mousePanningDelta.y())
|
||||
)
|
||||
self.horizontalScrollBar().setValue(int(self.horizontalScrollBar().value() - self._mousePanningDelta.x()))
|
||||
self.verticalScrollBar().setValue(int(self.verticalScrollBar().value() - self._mousePanningDelta.y()))
|
||||
|
||||
def adjustScrollBarCentered(self):
|
||||
"""Just center in the middle."""
|
||||
self._horizontalScrollBar.setValue(
|
||||
int(self._horizontalScrollBar.maximum() / 2)
|
||||
)
|
||||
self._verticalScrollBar.setValue(
|
||||
int(self._verticalScrollBar.maximum() / 2)
|
||||
)
|
||||
self._horizontalScrollBar.setValue(int(self._horizontalScrollBar.maximum() / 2))
|
||||
self._verticalScrollBar.setValue(int(self._verticalScrollBar.maximum() / 2))
|
||||
|
||||
def resetCenter(self):
|
||||
"""Resets origin"""
|
||||
|
@ -14,11 +14,11 @@ if op.exists(__file__):
|
||||
else:
|
||||
# Should be a frozen environment
|
||||
if ISOSX:
|
||||
BASE_PATH = op.abspath(op.join(op.dirname(__file__), '..', '..', 'Resources'))
|
||||
BASE_PATH = op.abspath(op.join(op.dirname(__file__), "..", "..", "Resources"))
|
||||
else:
|
||||
# For others our base path is ''.
|
||||
BASE_PATH = ""
|
||||
HELP_PATH = op.join(BASE_PATH, "help")
|
||||
HELP_PATH = op.join(BASE_PATH, "help", "en")
|
||||
|
||||
if ISWINDOWS:
|
||||
INITIAL_FOLDER_IN_DIALOGS = "C:\\"
|
||||
|
@ -1,11 +1,10 @@
|
||||
# Translators:
|
||||
# Ahmet Haydar Işık <itsahmthydr@gmail.com>, 2021
|
||||
# Emin Tufan Çetin <etcetin@gmail.com>, 2021
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2022
|
||||
# Emin Tufan Çetin <etcetin@gmail.com>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2022\n"
|
||||
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2022\n"
|
||||
"Language-Team: Turkish (https://www.transifex.com/voltaicideas/teams/116153/tr/)\n"
|
||||
"Language: tr\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -100,7 +99,7 @@ msgstr "Korece"
|
||||
|
||||
#: qtlib\preferences.py:34
|
||||
msgid "Malay"
|
||||
msgstr "Malay dili"
|
||||
msgstr "Malayca"
|
||||
|
||||
#: qtlib\preferences.py:35
|
||||
msgid "Dutch"
|
||||
|
@ -12,6 +12,8 @@ Unicode true
|
||||
SetCompressor /SOLID lzma
|
||||
; General Headers
|
||||
!include "FileFunc.nsh"
|
||||
!include "WinVer.nsh"
|
||||
!include "LogicLib.nsh"
|
||||
|
||||
;==============================================================================
|
||||
; Configuration Defines
|
||||
@ -279,6 +281,10 @@ SectionEnd
|
||||
;==============================================================================
|
||||
|
||||
Function .onInit
|
||||
${IfNot} ${AtLeastWin7}
|
||||
MessageBox MB_OK "Windows 7 and above required"
|
||||
Quit
|
||||
${EndIf}
|
||||
!if ${BITS} == "64"
|
||||
SetRegView 64
|
||||
!else
|
||||
|
Loading…
x
Reference in New Issue
Block a user