From 2dd2a801cc743105970a1145788adea1d1ffebe0 Mon Sep 17 00:00:00 2001 From: Andrew Senetar Date: Mon, 9 Jan 2023 21:53:22 -0600 Subject: [PATCH 1/5] feat: Add pre-commit and commitlint --- .pre-commit-config.yaml | 22 ++++++++++++++++++++++ commitlint.config.js | 17 +++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 .pre-commit-config.yaml create mode 100644 commitlint.config.js diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..9633bb1c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,22 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.3.0 + hooks: + - id: check-yaml + - id: check-toml + - id: end-of-file-fixer + - id: trailing-whitespace + - repo: https://github.com/psf/black + rev: 22.10.0 + hooks: + - id: black + - repo: https://github.com/PyCQA/flake8 + rev: 6.0.0 + hooks: + - id: flake8 + - repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook + rev: v9.3.0 + hooks: + - id: commitlint + stages: [commit-msg] + additional_dependencies: ["@commitlint/config-conventional"] diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 00000000..5c9041ca --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,17 @@ +const Configuration = { + /* + * Resolve and load @commitlint/config-conventional from node_modules. + * Referenced packages must be installed + */ + extends: ['@commitlint/config-conventional'], + /* + * Any rules defined here will override rules from @commitlint/config-conventional + */ + rules: { + 'header-max-length': [2, 'always', 72], + 'subject-case': [2, 'always', 'sentence-case'], + 'scope-enum': [2, 'always'], + }, +}; + +module.exports = Configuration; From 6db2fa2be665742f5a4a32bdc149e272c563cafb Mon Sep 17 00:00:00 2001 From: Andrew Senetar Date: Mon, 9 Jan 2023 22:35:12 -0600 Subject: [PATCH 2/5] fix: Correct flake8 config - Add exclude pattern for flake8 when running with pre-commit as it does not fully honor the exclude paths. - Cleanup exclude paths for flake8 in tox.ini - Re-enable line length check and correct three affected files --- .pre-commit-config.yaml | 1 + core/fs.py | 9 ++++++--- qt/exclude_list_dialog.py | 4 ++-- qt/preferences_dialog.py | 6 ++++-- tox.ini | 4 ++-- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9633bb1c..364a9285 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,6 +14,7 @@ repos: rev: 6.0.0 hooks: - id: flake8 + exclude: ^(.tox|env|build|dist|help|qt/dg_rc.py|pkg).* - repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook rev: v9.3.0 hooks: diff --git a/core/fs.py b/core/fs.py index 647a5cfd..6b3c2864 100644 --- a/core/fs.py +++ b/core/fs.py @@ -97,12 +97,14 @@ class FilesDB: schema_version = 1 schema_version_description = "Changed from md5 to xxhash if available." - create_table_query = "CREATE TABLE IF NOT EXISTS files (path TEXT PRIMARY KEY, size INTEGER, mtime_ns INTEGER, entry_dt DATETIME, digest BLOB, digest_partial BLOB, digest_samples BLOB)" + create_table_query = """CREATE TABLE IF NOT EXISTS files (path TEXT PRIMARY KEY, size INTEGER, mtime_ns INTEGER, + entry_dt DATETIME, digest BLOB, digest_partial BLOB, digest_samples BLOB)""" drop_table_query = "DROP TABLE IF EXISTS files;" select_query = "SELECT {key} FROM files WHERE path=:path AND size=:size and mtime_ns=:mtime_ns" select_query_ignore_mtime = "SELECT {key} FROM files WHERE path=:path AND size=:size" insert_query = """ - INSERT INTO files (path, size, mtime_ns, entry_dt, {key}) VALUES (:path, :size, :mtime_ns, datetime('now'), :value) + INSERT INTO files (path, size, mtime_ns, entry_dt, {key}) + VALUES (:path, :size, :mtime_ns, datetime('now'), :value) ON CONFLICT(path) DO UPDATE SET size=:size, mtime_ns=:mtime_ns, entry_dt=datetime('now'), {key}=:value; """ @@ -153,7 +155,8 @@ class FilesDB: self.cur.execute(self.select_query_ignore_mtime.format(key=key), {"path": str(path), "size": size}) else: self.cur.execute( - self.select_query.format(key=key), {"path": str(path), "size": size, "mtime_ns": mtime_ns} + self.select_query.format(key=key), + {"path": str(path), "size": size, "mtime_ns": mtime_ns}, ) result = self.cur.fetchone() diff --git a/qt/exclude_list_dialog.py b/qt/exclude_list_dialog.py index 7b5c9c64..43747b5d 100644 --- a/qt/exclude_list_dialog.py +++ b/qt/exclude_list_dialog.py @@ -165,8 +165,8 @@ Directores will also have their default state set to Excluded \ in the Directories tab if their name happens to match one of the selected regular expressions.
\ For each file collected, two tests are performed to determine whether or not to completely ignore it:
\
  • 1. Regular expressions with no path separator in them will be compared to the file name only.
  • -
  • 2. Regular expressions with at least one path separator in them will be compared to the full path to the file.

  • -Example: if you want to filter out .PNG files from the "My Pictures" directory only:
    \ +
  • 2. Regular expressions with at least one path separator in them will be compared to the full path to the file.
  • \ +
    Example: if you want to filter out .PNG files from the "My Pictures" directory only:
    \ .*My\\sPictures\\\\.*\\.png

    \ You can test the regular expression with the "test string" button after pasting a fake path in the test field:
    \ C:\\\\User\\My Pictures\\test.png

    diff --git a/qt/preferences_dialog.py b/qt/preferences_dialog.py index 0182a4ec..216d3f7e 100644 --- a/qt/preferences_dialog.py +++ b/qt/preferences_dialog.py @@ -146,7 +146,8 @@ On MacOS, the tab bar will fill up the window's width instead." ) self.use_native_dialogs.setToolTip( tr( - "For actions such as file/folder selection use the OS native dialogs.\nSome native dialogs have limited functionality." + "For actions such as file/folder selection use the OS native dialogs.\n\ +Some native dialogs have limited functionality." ) ) layout.addWidget(self.use_native_dialogs) @@ -217,7 +218,8 @@ use the modifier key to drag the floating window around" def _setup_advanced_page(self): tab_label = QLabel( tr( - "These options are for advanced users or for very specific situations, most users should not have to modify these." + "These options are for advanced users or for very specific situations, \ +most users should not have to modify these." ), wordWrap=True, ) diff --git a/tox.ini b/tox.ini index 8596e66c..a9f8b827 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ deps = -r{toxinidir}/requirements-extra.txt [flake8] -exclude = .tox,env,build,cocoalib,cocoa,help,./qt/dg_rc.py,cocoa/run_template.py,./pkg +exclude = .tox,env*,build,help,qt/dg_rc.py,pkg max-line-length = 120 select = C,E,F,W,B,B950 -extend-ignore = E203, E501, W503 +extend-ignore = E203,W503 From 0cf6c9a1a247e749f9cbfef56ab7ac0e7a2fc014 Mon Sep 17 00:00:00 2001 From: Andrew Senetar Date: Mon, 9 Jan 2023 22:44:10 -0600 Subject: [PATCH 3/5] ci: Update to include python 3.11 & pre-commit --- .github/workflows/default.yml | 45 +++++++++++------------------------ .sonarcloud.properties | 2 +- 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 413060a7..4395798e 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -9,43 +9,22 @@ on: branches: [master] jobs: - lint: + pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.10 - uses: actions/setup-python@v2 + - uses: actions/checkout@v3 + - name: Set up Python 3.11 + uses: actions/setup-python@v4 with: - python-version: "3.10" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt -r requirements-extra.txt - - name: Lint with flake8 - run: | - flake8 . - format: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.10 - uses: actions/setup-python@v2 - with: - python-version: "3.10" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt -r requirements-extra.txt - - name: Check format with black - run: | - black . + python-version: "3.11" + - uses: pre-commit/action@v3.0.0 test: - needs: [lint, format] + needs: [pre-commit] runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: [3.7, 3.8, 3.9, "3.10"] + python-version: [3.7, 3.8, 3.9, "3.10", "3.11"] exclude: - os: macos-latest python-version: 3.7 @@ -53,17 +32,21 @@ jobs: python-version: 3.8 - os: macos-latest python-version: 3.9 + - os: macos-latest + python-version: "3.10" - os: windows-latest python-version: 3.7 - os: windows-latest python-version: 3.8 - os: windows-latest python-version: 3.9 + - os: windows-latest + python-version: "3.10" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.sonarcloud.properties b/.sonarcloud.properties index c8eecdf6..7a578887 100644 --- a/.sonarcloud.properties +++ b/.sonarcloud.properties @@ -1 +1 @@ -sonar.python.version=3.7, 3.8, 3.9, 3.10 \ No newline at end of file +sonar.python.version=3.7, 3.8, 3.9, 3.10, 3.11 From 46d1afb566c165fd59c58213cb0461a5bc09262b Mon Sep 17 00:00:00 2001 From: Andrew Senetar Date: Mon, 9 Jan 2023 22:58:08 -0600 Subject: [PATCH 4/5] chore: Apply whitespace fixes from hooks - Remove trailing whitespace - Correct single newline at end of files (skip for json) - Update to formatting in a few places due to black --- .gitignore | 2 +- .pre-commit-config.yaml | 1 + .tx/config | 1 - LICENSE | 1 - Makefile | 8 +-- README.md | 2 +- Windows.md | 2 +- core/pe/modules/block.c | 2 +- core/pe/modules/block_osx.m | 64 +++++++++---------- core/pe/modules/cache.c | 18 +++--- core/pe/modules/common.c | 10 +-- core/pe/modules/common.h | 6 +- help/changelog | 18 +++--- help/de/faq.rst | 8 +-- help/de/folders.rst | 2 +- help/de/index.rst | 2 +- help/de/preferences.rst | 10 +-- help/de/reprioritize.rst | 2 +- help/de/results.rst | 2 +- help/en/developer/core/engine.rst | 8 +-- help/en/developer/core/gui/index.rst | 2 +- help/en/developer/core/index.rst | 2 +- help/en/developer/hscommon/gui/base.rst | 4 +- help/en/developer/hscommon/gui/column.rst | 10 +-- .../hscommon/gui/progress_window.rst | 7 +- .../hscommon/gui/selectable_list.rst | 10 +-- help/en/developer/hscommon/gui/table.rst | 10 +-- help/en/developer/hscommon/gui/text_field.rst | 4 +- help/en/developer/hscommon/gui/tree.rst | 9 ++- help/en/developer/hscommon/index.rst | 3 +- .../en/developer/hscommon/jobprogress/job.rst | 5 +- .../hscommon/jobprogress/performer.rst | 5 +- help/en/developer/index.rst | 2 +- help/en/faq.rst | 3 +- help/en/index.rst | 2 +- help/en/preferences.rst | 4 +- help/en/reprioritize.rst | 2 +- help/en/results.rst | 2 +- help/fr/faq.rst | 4 +- help/fr/folders.rst | 10 +-- help/fr/index.rst | 2 +- help/fr/preferences.rst | 10 +-- help/fr/reprioritize.rst | 2 +- help/fr/results.rst | 2 +- help/hy/faq.rst | 14 ++-- help/hy/index.rst | 2 +- help/hy/preferences.rst | 10 +-- help/hy/quick_start.rst | 1 - help/hy/reprioritize.rst | 3 +- help/hy/results.rst | 2 +- help/ru/faq.rst | 8 +-- help/ru/index.rst | 2 +- help/ru/preferences.rst | 10 +-- help/ru/quick_start.rst | 2 +- help/ru/reprioritize.rst | 2 +- help/ru/results.rst | 2 +- help/uk/faq.rst | 9 ++- help/uk/index.rst | 4 +- help/uk/preferences.rst | 8 +-- help/uk/quick_start.rst | 2 +- help/uk/reprioritize.rst | 2 +- help/uk/results.rst | 2 +- hscommon/LICENSE | 2 +- hscommon/trans.py | 3 +- locale/columns.pot | 1 - locale/core.pot | 1 - locale/ui.pot | 7 ++ macos.md | 14 ++-- pkg/debian/changelog | 1 - pkg/debian/source/format | 2 +- pyproject.toml | 2 +- qt/pe/modules/block.c | 2 +- qt/pe/photo.py | 5 +- requirements-extra.txt | 2 +- setup.cfg | 6 +- setup.nsi | 34 +++++----- win_version_info.temp | 2 +- 77 files changed, 226 insertions(+), 228 deletions(-) diff --git a/.gitignore b/.gitignore index 9ddb775b..46487bc4 100644 --- a/.gitignore +++ b/.gitignore @@ -108,4 +108,4 @@ cocoa/autogen *.waf* .lock-waf* -/tags \ No newline at end of file +/tags diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 364a9285..0b2318ff 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,6 +5,7 @@ repos: - id: check-yaml - id: check-toml - id: end-of-file-fixer + exclude: ".*.json" - id: trailing-whitespace - repo: https://github.com/psf/black rev: 22.10.0 diff --git a/.tx/config b/.tx/config index 4b94e1c3..db941c24 100644 --- a/.tx/config +++ b/.tx/config @@ -18,4 +18,3 @@ file_filter = locale//LC_MESSAGES/ui.po source_file = locale/ui.pot source_lang = en type = PO - diff --git a/LICENSE b/LICENSE index e963df82..94a04532 100644 --- a/LICENSE +++ b/LICENSE @@ -619,4 +619,3 @@ Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS - diff --git a/Makefile b/Makefile index 71be91cb..c6a1d6b7 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ PYRCC5 ?= pyrcc5 REQ_MINOR_VERSION = 7 PREFIX ?= /usr/local -# Window compatability via Msys2 +# Window compatability via Msys2 # - venv creates Scripts instead of bin # - compile generates .pyd instead of .so # - venv with --sytem-site-packages has issues on windows as well... @@ -12,7 +12,7 @@ PREFIX ?= /usr/local ifeq ($(shell ${PYTHON} -c "import platform; print(platform.system())"), Windows) BIN = Scripts SO = *.pyd - VENV_OPTIONS = + VENV_OPTIONS = else BIN = bin SO = *.so @@ -43,7 +43,7 @@ mofiles = $(patsubst %.po,%.mo,$(pofiles)) vpath %.po $(localedirs) vpath %.mo $(localedirs) -all: | env i18n modules qt/dg_rc.py +all: | env i18n modules qt/dg_rc.py @echo "Build complete! You can run dupeGuru with 'make run'" run: @@ -82,7 +82,7 @@ qt/dg_rc.py: qt/dg.qrc i18n: $(mofiles) %.mo: %.po - msgfmt -o $@ $< + msgfmt -o $@ $< modules: | env $(VENV_PYTHON) build.py --modules diff --git a/README.md b/README.md index 60194318..f574dee0 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ dupeGuru comes with a makefile that can be used to build and run: $ python run.py ### Generating Debian/Ubuntu package -To generate packages the extra requirements in requirements-extra.txt must be installed, the +To generate packages the extra requirements in requirements-extra.txt must be installed, the steps are as follows: $ cd diff --git a/Windows.md b/Windows.md index 13f60ae1..e54737b7 100644 --- a/Windows.md +++ b/Windows.md @@ -29,7 +29,7 @@ To build with a different python version 3.7 vs 3.8 or 32 bit vs 64 bit specify It is possible to build dupeGuru with the makefile on windows using a compatable POSIX environment. The following steps have been tested using [msys2][msys2]. Before running make: 1. Install msys2 or other POSIX environment 2. Install PyQt5 globally via pip -3. Use the respective console for msys2 it is `msys2 msys` +3. Use the respective console for msys2 it is `msys2 msys` Then the following execution of the makefile should work. Pass the correct value for PYTHON to the makefile if not on the path as python3. diff --git a/core/pe/modules/block.c b/core/pe/modules/block.c index 9db9f605..5690b2e1 100644 --- a/core/pe/modules/block.c +++ b/core/pe/modules/block.c @@ -245,4 +245,4 @@ PyObject *PyInit__block(void) { PyModule_AddObject(m, "DifferentBlockCountError", DifferentBlockCountError); return m; -} \ No newline at end of file +} diff --git a/core/pe/modules/block_osx.m b/core/pe/modules/block_osx.m index 9eb46d86..258de21f 100644 --- a/core/pe/modules/block_osx.m +++ b/core/pe/modules/block_osx.m @@ -2,8 +2,8 @@ * Created On: 2010-02-04 * Copyright 2015 Hardcoded Software (http://www.hardcoded.net) * - * This software is licensed under the "GPLv3" License as described in the "LICENSE" file, - * which should be included with this package. The terms are also available at + * This software is licensed under the "GPLv3" License as described in the "LICENSE" file, + * which should be included with this package. The terms are also available at * http://www.gnu.org/licenses/gpl-3.0.html **/ @@ -22,7 +22,7 @@ pystring2cfstring(PyObject *pystring) UInt8 *s; CFIndex size; CFStringRef result; - + if (PyUnicode_Check(pystring)) { encoded = PyUnicode_AsUTF8String(pystring); if (encoded == NULL) { @@ -32,7 +32,7 @@ pystring2cfstring(PyObject *pystring) encoded = pystring; Py_INCREF(encoded); } - + s = (UInt8*)PyBytes_AS_STRING(encoded); size = PyBytes_GET_SIZE(encoded); result = CFStringCreateWithBytes(NULL, s, size, kCFStringEncodingUTF8, FALSE); @@ -50,20 +50,20 @@ static PyObject* block_osx_get_image_size(PyObject *self, PyObject *args) long width, height; PyObject *pwidth, *pheight; PyObject *result; - + width = 0; height = 0; if (!PyArg_ParseTuple(args, "O", &path)) { return NULL; } - + image_path = pystring2cfstring(path); if (image_path == NULL) { return PyErr_NoMemory(); } image_url = CFURLCreateWithFileSystemPath(NULL, image_path, kCFURLPOSIXPathStyle, FALSE); CFRelease(image_path); - + source = CGImageSourceCreateWithURL(image_url, NULL); CFRelease(image_url); if (source != NULL) { @@ -75,7 +75,7 @@ static PyObject* block_osx_get_image_size(PyObject *self, PyObject *args) } CFRelease(source); } - + pwidth = PyLong_FromLong(width); if (pwidth == NULL) { return NULL; @@ -91,19 +91,19 @@ static PyObject* block_osx_get_image_size(PyObject *self, PyObject *args) } static CGContextRef -MyCreateBitmapContext(int width, int height) +MyCreateBitmapContext(int width, int height) { CGContextRef context = NULL; CGColorSpaceRef colorSpace; void *bitmapData; int bitmapByteCount; int bitmapBytesPerRow; - + bitmapBytesPerRow = (width * 4); bitmapByteCount = (bitmapBytesPerRow * height); - + colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); - + // calloc() must be used to allocate bitmapData here because the buffer has to be zeroed. // If it's not zeroes, when images with transparency are drawn in the context, this buffer // will stay with undefined pixels, which means that two pictures with the same pixels will @@ -113,7 +113,7 @@ MyCreateBitmapContext(int width, int height) fprintf(stderr, "Memory not allocated!"); return NULL; } - + context = CGBitmapContextCreate(bitmapData, width, height, 8, bitmapBytesPerRow, colorSpace, (CGBitmapInfo)kCGImageAlphaNoneSkipLast); if (context== NULL) { @@ -128,7 +128,7 @@ MyCreateBitmapContext(int width, int height) static PyObject* getblock(unsigned char *imageData, int imageWidth, int imageHeight, int boxX, int boxY, int boxW, int boxH) { int i,j, totalR, totalG, totalB; - + totalR = totalG = totalB = 0; for(i=boxY; i 8) || (orientation < 0)) { orientation = 0; // simplifies checks later since we can only have values in 0-8 } - + image_path = pystring2cfstring(path); if (image_path == NULL) { return PyErr_NoMemory(); } image_url = CFURLCreateWithFileSystemPath(NULL, image_path, kCFURLPOSIXPathStyle, FALSE); CFRelease(image_path); - + source = CGImageSourceCreateWithURL(image_url, NULL); CFRelease(image_url); if (source == NULL) { @@ -187,8 +187,8 @@ static PyObject* block_osx_getblocks(PyObject *self, PyObject *args) CFRelease(source); return PyErr_NoMemory(); } - - + + width = image_width = CGImageGetWidth(image); height = image_height = CGImageGetHeight(image); if (orientation >= 5) { @@ -196,9 +196,9 @@ static PyObject* block_osx_getblocks(PyObject *self, PyObject *args) width = image_height; height = image_width; } - + CGContextRef context = MyCreateBitmapContext(width, height); - + if (orientation == 2) { // Flip X CGContextTranslateCTM(context, width, 0); @@ -207,7 +207,7 @@ static PyObject* block_osx_getblocks(PyObject *self, PyObject *args) else if (orientation == 3) { // Rot 180 CGContextTranslateCTM(context, width, height); - CGContextRotateCTM(context, RADIANS(180)); + CGContextRotateCTM(context, RADIANS(180)); } else if (orientation == 4) { // Flip Y @@ -242,21 +242,21 @@ static PyObject* block_osx_getblocks(PyObject *self, PyObject *args) CGContextDrawImage(context, myBoundingBox, image); unsigned char *bitmapData = CGBitmapContextGetData(context); CGContextRelease(context); - + CGImageRelease(image); CFRelease(source); if (bitmapData == NULL) { return PyErr_NoMemory(); } - + block_width = max(width/block_count, 1); block_height = max(height/block_count, 1); - + result = PyList_New(block_count * block_count); if (result == NULL) { return NULL; } - + for(i=0; i Alle Markieren**. .. only:: edition_me - + .. topic:: Ich möchte alle Stücke markieren, die mehr als 3 Sekunden von ihrer Referenz verschieden sind. Was kann ich tun? * Aktivieren Sie den :doc:`Nur Duplikate ` Modus. @@ -83,7 +83,7 @@ Häufig gestellte Fragen * Klicken Sie auf **Entferne Ausgewählte von den Ergebnissen**. .. topic:: Ich möchte meine Stücke mit der höchsten Bitrate zur Referenz machen. Was kann ich tun? - + * Aktivieren Sie den :doc:`Nur Duplikate ` Modus. * Aktivieren Sie den **Deltawerte** Modus. * Klicken Sie auf die "Bitrate" Spalte, um nach Bitrate zu sortieren. @@ -92,9 +92,9 @@ Häufig gestellte Fragen * Klicken Sie auf **Mache Ausgewählte zur Referenz**. .. topic:: Ich möchte nicht das [live] und [remix] Versionen meiner Stücke als Duplikate erkannt werden. Was kann ich tun? - + Ist Ihre Vergleichsschwelle niedrig genug, werden möglicherweise die live und remix Versionen in der Ergebnisliste landen. Das kann nicht verhindert werden, aber es gibt die Möglichkeit die Ergebnisse nach dem Scan zu entfernen, mittels dem Filter. Möchten Sie jedes Stück mit irgendetwas in eckigen Klammern [] im Dateinamen entfernen, so: - + * **Windows**: Klicken Sie auf **Aktionen --> Filter anwenden**, geben "[*]" ein und klicken OK. * **Mac OS X**: Geben Sie "[*]" in das "Filter" Feld der Werkzeugleiste ein. * Klicken Sie auf **Markieren --> Alle Markieren**. diff --git a/help/de/folders.rst b/help/de/folders.rst index 22103b24..5a0a7fe5 100644 --- a/help/de/folders.rst +++ b/help/de/folders.rst @@ -16,7 +16,7 @@ Jeder Ordner kann in einem von 3 Zuständen sein: * **Referenz:** Duplikate in diesem Ordner können **nicht** gelöscht werden. Dateien dieses Ordners können sich nur in der **Referenz** Position einer Duplikatgruppe befinden. Ist mehr als eine Datei des Referenzordners in derselben Duplikatgruppe, so wird nur Eine behalten. Die Anderen werden aus der Gruppe entfernt. * **Ausgeschlossen:** Dateien in diesem Verzeichnis sind nicht im Scan eingeschlossen. -Der Standardzustand eines Ordners ist natürlich **Normal**. Sie können den **Referenz** Zustand für Ordner nutzen, in denen auf keinen Fall eine Datei gelöscht werden soll. +Der Standardzustand eines Ordners ist natürlich **Normal**. Sie können den **Referenz** Zustand für Ordner nutzen, in denen auf keinen Fall eine Datei gelöscht werden soll. Wenn sie einen Zustand für ein Verzeichnis setzen, erben alle Unterordner automatisch diesen Zustand, es sei denn Sie ändern den Zustand der Unterordner explizit. diff --git a/help/de/index.rst b/help/de/index.rst index 7c1a5fc4..6c2d0396 100644 --- a/help/de/index.rst +++ b/help/de/index.rst @@ -21,7 +21,7 @@ Inhalte: .. toctree:: :maxdepth: 2 - + quick_start folders preferences diff --git a/help/de/preferences.rst b/help/de/preferences.rst index 301261b4..7115ae7e 100644 --- a/help/de/preferences.rst +++ b/help/de/preferences.rst @@ -4,9 +4,9 @@ Einstellungen .. only:: edition_se **Scan Typ:** Diese Option bestimmt nach welcher Eigenschaft die Dateien in einem Duplikate Scan verglichen werden. Wenn Sie **Dateiname** auswählen, wird dupeGuru jeden Dateinamen Wort für Wort vergleichen und, abhängig von den unteren Einstellungen, feststellen ob genügend Wörter übereinstimmen, um 2 Dateien als Duplikate zu betrachten. Wenn Sie **Inhalt** wählen, werden nur Dateien mit dem exakt gleichen Inhalt zusammenpassen. - + Der **Ordner** Scan Typ ist etwas speziell. Wird er ausgewählt, scannt dupeGuru nach doppelten Ordnern anstelle von Dateien. Um festzustellen ob 2 Ordner identisch sind, werden alle Datein im Ordner gescannt und wenn die Inhalte aller Dateien der Ordner übereinstimmen, werden die Ordner als Duplikate erkannt. - + **Filterempfindlichkeit:** Wenn Sie den **Dateiname** Scan Typ wählen, bestimmt diese Option wie ähnlich 2 Dateinamen für dupeGuru sein müssen, um Duplikate zu sein. Ist die Empfindlichkeit zum Beispiel 80, müssen 80% der Worte der 2 Dateinamen übereinstimmen. Um den Übereinstimmungsanteil herauszufinden, zählt dupeGuru zuerst die Gesamtzahl der Wörter **beider** Dateinamen, dann werden die gleichen Wörter gezählt (jedes Wort zählt als 2) und durch die Gesamtzahl der Wörter dividiert. Ist das Resultat größer oder gleich der Filterempfindlichkeit, haben wir ein Duplikat. Zum Beispiel, "a b c d" und "c d e" haben einen Übereinstimmungsanteil von 57 (4 gleiche Wörter, insgesamt 7 Wörter). .. only:: edition_me @@ -33,7 +33,7 @@ Einstellungen .. only:: edition_pe **Scan Typ:** Diese option bestimmt, welcher Scan Typ bei Ihren Bildern angewendet wird. Der **Inhalte** Scan Typ vergleicht den Inhalt der Bilder auf eine ungenaue Art und Weise (so werden nicht nur exakte Duplikate gefunden, sondern auch Ähnliche). Der **EXIF Zeitstempel** Scan Typ schaut auf die EXIF Metadaten der Bilder (wenn vorhanden) und erkennt Bilder die den Selben haben. Er ist viel schneller als der Inhalte Scan. **Warnung:** Veränderte Bilder behalten oft den selben EXIF Zeitstempel, also achten Sie auf Falschpositive bei der Nutzung dieses Scans. - + **Filterempfindlichkeit:** *Nur Inhalte Scan.* Je höher diese Einstellung, desto strenger ist der Filter (Mit anderen Worten, desto weniger Ergebnisse erhalten Sie). Die meisten Bilder der selben Qualität stimmen zu 100% überein, selbst wenn das Format anders ist (PNG und JPG zum Beispiel). Wie auch immer, wenn ein PNG mit einem JPG niederiger Qualität übereinstimmen soll, muss die Filterempfindlichkeit kleiner als 100 sein. Die Voreinstellung, 95, ist eine gute Wahl. **Bilder unterschiedlicher Abmessung gleich:** Wird diese Box gewählt, dürfen Bilder unterschiedlicher Abmessung in einer Duplikategruppe sein.. @@ -57,7 +57,7 @@ Auf jeden Fall behandelt dupeGuru Namenskonflikte indem es dem Ziel-Dateinamen e **Eigener Befehl:** Diese Einstellung bestimmt den Befehl der durch "Führe eigenen Befehl aus" ausgeführt wird. Sie können jede externe Anwendung durch diese Aktion aufrufen. Dies ist zum Beispiel hilfreich, wenn Sie eine gute diff-Anwendung installiert haben. Das Format des Befehls ist das Selbe wie in einer Befehlszeile, außer das 2 Platzhalter vorhanden sind: **%d** und **%r**. Diese Platzhalter werden durch den Pfad des markierten Duplikates (%d) und dem Pfad der Duplikatereferenz ersetzt (%r). - + Wenn der Pfad Ihrer ausführbaren Datei Leerzeichen enthält, so schließen sie ihn bitte mit "" Zeichen ein. Sie sollten auch Platzhalter mit den Zitatzeichen einschließen, denn es ist möglich, das die Pfade der Duplikate und Referenzen ebenfalls Leerzeichen enthalten. Hier ist ein Beispiel eines eigenen Befehls:: - + "C:\Program Files\SuperDiffProg\SuperDiffProg.exe" "%d" "%r" diff --git a/help/de/reprioritize.rst b/help/de/reprioritize.rst index ff37088b..eab22619 100644 --- a/help/de/reprioritize.rst +++ b/help/de/reprioritize.rst @@ -22,4 +22,4 @@ criterion is used and so on and so on. For example, if your arguments are "Size "Filename (Doesn't end with a number)", the reference file that will be picked in a group will be the biggest file, and if two or more files have the same size, the one that has a filename that doesn't end with a number will be used. When all criteria result in ties, the order in which dupes -previously were in the group will be used. \ No newline at end of file +previously were in the group will be used. diff --git a/help/de/results.rst b/help/de/results.rst index ccd3f948..4d086dee 100644 --- a/help/de/results.rst +++ b/help/de/results.rst @@ -98,4 +98,4 @@ Aktionen Menü * **Ausgewählte umbenennen:** Fragt nach einem neuen Namen und benennt die ausgewählte Datei um. .. todo:: Add Move and iPhoto/iTunes warning -.. todo:: Add "Deletion Options" section. \ No newline at end of file +.. todo:: Add "Deletion Options" section. diff --git a/help/en/developer/core/engine.rst b/help/en/developer/core/engine.rst index 3258c776..658111c3 100644 --- a/help/en/developer/core/engine.rst +++ b/help/en/developer/core/engine.rst @@ -2,12 +2,12 @@ core.engine =========== .. automodule:: core.engine - + .. autoclass:: Match - + .. autoclass:: Group :members: - + .. autofunction:: build_word_dict .. autofunction:: compare .. autofunction:: compare_fields @@ -16,7 +16,7 @@ core.engine .. autofunction:: get_groups .. autofunction:: merge_similar_words .. autofunction:: reduce_common_words - + .. _fields: Fields diff --git a/help/en/developer/core/gui/index.rst b/help/en/developer/core/gui/index.rst index 0298f4b9..74da0305 100644 --- a/help/en/developer/core/gui/index.rst +++ b/help/en/developer/core/gui/index.rst @@ -6,5 +6,5 @@ core.gui .. toctree:: :maxdepth: 2 - + deletion_options diff --git a/help/en/developer/core/index.rst b/help/en/developer/core/index.rst index 8c88e7e1..a861573e 100644 --- a/help/en/developer/core/index.rst +++ b/help/en/developer/core/index.rst @@ -3,7 +3,7 @@ core .. toctree:: :maxdepth: 2 - + app fs engine diff --git a/help/en/developer/hscommon/gui/base.rst b/help/en/developer/hscommon/gui/base.rst index 0a20b963..739cf367 100644 --- a/help/en/developer/hscommon/gui/base.rst +++ b/help/en/developer/hscommon/gui/base.rst @@ -4,9 +4,9 @@ hscommon.gui.base .. automodule:: hscommon.gui.base .. autosummary:: - + GUIObject - + .. autoclass:: GUIObject :members: :private-members: diff --git a/help/en/developer/hscommon/gui/column.rst b/help/en/developer/hscommon/gui/column.rst index 5780a19d..3b202b1f 100644 --- a/help/en/developer/hscommon/gui/column.rst +++ b/help/en/developer/hscommon/gui/column.rst @@ -4,22 +4,22 @@ hscommon.gui.column .. automodule:: hscommon.gui.column .. autosummary:: - + Columns Column ColumnsView PrefAccessInterface - + .. autoclass:: Columns :members: :private-members: - + .. autoclass:: Column :members: :private-members: - + .. autoclass:: ColumnsView :members: - + .. autoclass:: PrefAccessInterface :members: diff --git a/help/en/developer/hscommon/gui/progress_window.rst b/help/en/developer/hscommon/gui/progress_window.rst index 2453b705..f62a16d8 100644 --- a/help/en/developer/hscommon/gui/progress_window.rst +++ b/help/en/developer/hscommon/gui/progress_window.rst @@ -4,15 +4,14 @@ hscommon.gui.progress_window .. automodule:: hscommon.gui.progress_window .. autosummary:: - + ProgressWindow ProgressWindowView - + .. autoclass:: ProgressWindow :members: :private-members: - + .. autoclass:: ProgressWindowView :members: :private-members: - diff --git a/help/en/developer/hscommon/gui/selectable_list.rst b/help/en/developer/hscommon/gui/selectable_list.rst index e9d6c9c1..b0200386 100644 --- a/help/en/developer/hscommon/gui/selectable_list.rst +++ b/help/en/developer/hscommon/gui/selectable_list.rst @@ -4,23 +4,23 @@ hscommon.gui.selectable_list .. automodule:: hscommon.gui.selectable_list .. autosummary:: - + Selectable SelectableList GUISelectableList GUISelectableListView - + .. autoclass:: Selectable :members: :private-members: - + .. autoclass:: SelectableList :members: :private-members: - + .. autoclass:: GUISelectableList :members: :private-members: - + .. autoclass:: GUISelectableListView :members: diff --git a/help/en/developer/hscommon/gui/table.rst b/help/en/developer/hscommon/gui/table.rst index 6f539d04..d1ed1dd8 100644 --- a/help/en/developer/hscommon/gui/table.rst +++ b/help/en/developer/hscommon/gui/table.rst @@ -2,18 +2,18 @@ hscommon.gui.table ================== .. automodule:: hscommon.gui.table - + .. autosummary:: - + Table Row GUITable GUITableView - + .. autoclass:: Table :members: :private-members: - + .. autoclass:: Row :members: :private-members: @@ -21,6 +21,6 @@ hscommon.gui.table .. autoclass:: GUITable :members: :private-members: - + .. autoclass:: GUITableView :members: diff --git a/help/en/developer/hscommon/gui/text_field.rst b/help/en/developer/hscommon/gui/text_field.rst index 7f142bc0..1799af02 100644 --- a/help/en/developer/hscommon/gui/text_field.rst +++ b/help/en/developer/hscommon/gui/text_field.rst @@ -4,10 +4,10 @@ hscommon.gui.text_field .. automodule:: hscommon.gui.text_field .. autosummary:: - + TextField TextFieldView - + .. autoclass:: TextField :members: :private-members: diff --git a/help/en/developer/hscommon/gui/tree.rst b/help/en/developer/hscommon/gui/tree.rst index 1c1e02b2..fb2dd253 100644 --- a/help/en/developer/hscommon/gui/tree.rst +++ b/help/en/developer/hscommon/gui/tree.rst @@ -2,17 +2,16 @@ hscommon.gui.tree ================= .. automodule:: hscommon.gui.tree - + .. autosummary:: - + Tree Node - + .. autoclass:: Tree :members: :private-members: - + .. autoclass:: Node :members: :private-members: - diff --git a/help/en/developer/hscommon/index.rst b/help/en/developer/hscommon/index.rst index 4fc45f97..ee03fc6e 100644 --- a/help/en/developer/hscommon/index.rst +++ b/help/en/developer/hscommon/index.rst @@ -4,7 +4,7 @@ hscommon .. toctree:: :maxdepth: 2 :glob: - + build conflict desktop @@ -13,4 +13,3 @@ hscommon util jobprogress/* gui/* - diff --git a/help/en/developer/hscommon/jobprogress/job.rst b/help/en/developer/hscommon/jobprogress/job.rst index af1553f8..c60a9da4 100644 --- a/help/en/developer/hscommon/jobprogress/job.rst +++ b/help/en/developer/hscommon/jobprogress/job.rst @@ -4,14 +4,13 @@ hscommon.jobprogress.job .. automodule:: hscommon.jobprogress.job .. autosummary:: - + Job NullJob - + .. autoclass:: Job :members: :private-members: .. autoclass:: NullJob :members: - diff --git a/help/en/developer/hscommon/jobprogress/performer.rst b/help/en/developer/hscommon/jobprogress/performer.rst index 8a9ead0a..e714c7a0 100644 --- a/help/en/developer/hscommon/jobprogress/performer.rst +++ b/help/en/developer/hscommon/jobprogress/performer.rst @@ -4,9 +4,8 @@ hscommon.jobprogress.performer .. automodule:: hscommon.jobprogress.performer .. autosummary:: - + ThreadedJobPerformer - + .. autoclass:: ThreadedJobPerformer :members: - diff --git a/help/en/developer/index.rst b/help/en/developer/index.rst index 0c9699c5..0d3a9d19 100644 --- a/help/en/developer/index.rst +++ b/help/en/developer/index.rst @@ -69,6 +69,6 @@ API .. toctree:: :maxdepth: 2 - + core/index hscommon/index diff --git a/help/en/faq.rst b/help/en/faq.rst index 49b5028b..97a75ad0 100644 --- a/help/en/faq.rst +++ b/help/en/faq.rst @@ -31,7 +31,7 @@ How can I report a bug a suggest a feature? ------------------------------------------- dupeGuru is hosted on `Github`_ and it's also where issues are tracked. The best way to report a -bug or suggest a feature is to sign up on Github and `open an issue`_. +bug or suggest a feature is to sign up on Github and `open an issue`_. The mark box of a file I want to delete is disabled. What must I do? -------------------------------------------------------------------- @@ -178,4 +178,3 @@ Preferences are stored elsewhere: .. _Github: https://github.com/arsenetar/dupeguru .. _open an issue: https://github.com/arsenetar/dupeguru/wiki/issue-labels - diff --git a/help/en/index.rst b/help/en/index.rst index 97c345fa..f720f928 100644 --- a/help/en/index.rst +++ b/help/en/index.rst @@ -24,7 +24,7 @@ Contents: .. toctree:: :maxdepth: 2 - + contribute quick_start folders diff --git a/help/en/preferences.rst b/help/en/preferences.rst index 2c0cf43a..eadc4f3c 100644 --- a/help/en/preferences.rst +++ b/help/en/preferences.rst @@ -67,11 +67,11 @@ filename if the filename already exists in the destination. The format of the command is the same as what you would write in the command line, except that there are 2 placeholders: **%d** and **%r**. These placeholders will be replaced by the path of the selected dupe (%d) and the path of the selected dupe's reference file (%r). - + If the path to your executable contains space characters, you should enclose it in "" quotes. You should also enclose placeholders in quotes because it's very possible that paths to dupes and refs will contain spaces. Here's an example custom command:: - + "C:\Program Files\SuperDiffProg\SuperDiffProg.exe" "%d" "%r" .. _inode: http://en.wikipedia.org/wiki/Inode diff --git a/help/en/reprioritize.rst b/help/en/reprioritize.rst index 4febfca4..2eb286e6 100644 --- a/help/en/reprioritize.rst +++ b/help/en/reprioritize.rst @@ -22,4 +22,4 @@ criterion is used and so on and so on. For example, if your arguments are "Size "Filename (Doesn't end with a number)", the reference file that will be picked in a group will be the biggest file, and if two or more files have the same size, the one that has a filename that doesn't end with a number will be used. When all criteria result in ties, the order in which dupes -previously were in the group will be used. \ No newline at end of file +previously were in the group will be used. diff --git a/help/en/results.rst b/help/en/results.rst index 91778168..4b4041ce 100644 --- a/help/en/results.rst +++ b/help/en/results.rst @@ -180,7 +180,7 @@ any of them. the file's path. If the original file is deleted or moved, the link is broken. A hardlink is a link to the file *itself*. That link is as good as a "real" file. Only when *all* hardlinks to a file are deleted is the file itself deleted. - + On OSX and Linux, this feature is supported fully, but under Windows, it's a bit complicated. Windows XP doesn't support it, but Vista and up support it. However, for the feature to work, dupeGuru has to run with administrative privileges. diff --git a/help/fr/faq.rst b/help/fr/faq.rst index f8eae327..25d46468 100644 --- a/help/fr/faq.rst +++ b/help/fr/faq.rst @@ -51,7 +51,7 @@ Tour groupe de doublons contient au moins un fichier dit "référence" et ce fic effacé. Par contre, ce que vous pouvez faire c'est de le remplacer par un autre fichier du groupe. Pour ce faire, sélectionnez un fichier du groupe et cliquez sur l'action **Transformer sélectionnés en références**. - + Notez que si le fichier référence du groupe vient d'un dossier qui a été défini comme dossier référence, ce fichier ne peut pas être déplacé de sa position de référence du groupe. @@ -71,7 +71,7 @@ doublons. Example: Nous avons 3 fichiers, A, B et C. Nous les comparons en utili de filtre. La comparaison détermine que A est un double de B, A est un double C, mais que B n'est **pas** un double de C. dupeGuru a ici un problème. Il ne peut pas créer un groupe avec A, B et C. Il décide donc de jeter C hors du groupe. C'est de là que vient la notice '(X hors-groupe)'. - + Cette notice veut dire que si jamais vous effacez tout les doubles contenus dans vos résultats et que vous faites un nouveau scan, vous pourriez avoir de nouveaux résultats. diff --git a/help/fr/folders.rst b/help/fr/folders.rst index 54acf952..0a7f4b39 100644 --- a/help/fr/folders.rst +++ b/help/fr/folders.rst @@ -3,7 +3,7 @@ Sélection de dossiers La première fenêtre qui apparaît lorsque dupeGuru démarre est la fenêtre de sélection de dossiers à scanner. Elle détermine la liste des dossiers qui seront scannés lorsque vous cliquerez sur **Scan**. -Pour ajouter un dossier, cliquez sur le bouton **+**. Si vous avez ajouté des dossiers dans le passé, un menu vous permettra de rapidement choisir un de ceux ci. Autrement, il vous sera demandé d'indiquer le dossier à ajouter. +Pour ajouter un dossier, cliquez sur le bouton **+**. Si vous avez ajouté des dossiers dans le passé, un menu vous permettra de rapidement choisir un de ceux ci. Autrement, il vous sera demandé d'indiquer le dossier à ajouter. Vous pouvez aussi utiliser le drag & drop pour ajouter des dossiers à la liste. @@ -26,14 +26,14 @@ Le type d'un dossier s'applique à ses sous-dossiers, excepté si un sous-dossie Bibliothèques iPhoto et Aperture ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - + dupeGuru PE supporte iPhoto et Aperture, ce qui veut dire qu'il sait comment lire le contenu de ces bibliothèques et comment communiquer avec ces applications pour correctement supprimer des photos de celles-ci. Pour utiliser cette fonctionnalité, vous devez ajouter iPhoto et/ou Aperture avec les boutons spéciaux "Ajouter librairie iPhoto" et "Ajouter librairie Aperture", qui apparaissent quand on clique sur le petit "+". Les dossiers ajoutés seront alors correctement interprétés par dupeGuru. - + Quand une photo est supprimée d'iPhoto, elle est envoyée dans la corbeille d'iPhoto. Quand une photo est supprimée d'Aperture, il n'est malheureusement pas possible de l'envoyer @@ -45,13 +45,13 @@ Le type d'un dossier s'applique à ses sous-dossiers, excepté si un sous-dossie Bibliothèques iTunes ^^^^^^^^^^^^^^^^^^^^ - + dupeGuru ME supporte iTunes, ce qui veut dire qu'il sait comment lire le contenu de sa bibliothèque et comment communiquer avec iTunes pour correctement supprimer des chansons de sa bibliothèque. Pour utiliser cette fonctionnalité, vous devez ajouter iTunes avec le bouton spécial "Ajouter librairie iTunes", qui apparait quand on clique sur le petit "+". Le dossier ajouté sera alors correctement interprété par dupeGuru. - + Quand une chanson est supprimée d'iTunes, elle est envoyée à la corebeille du système, comme un fichier normal. La différence ici, c'est qu'après la suppression, iTunes est correctement mis au fait de cette suppression et retire sa référence à cette chanson de sa bibliothèque. diff --git a/help/fr/index.rst b/help/fr/index.rst index 66898fb9..3ea93baa 100644 --- a/help/fr/index.rst +++ b/help/fr/index.rst @@ -21,7 +21,7 @@ Contents: .. toctree:: :maxdepth: 2 - + quick_start folders preferences diff --git a/help/fr/preferences.rst b/help/fr/preferences.rst index 25811581..1c8b9450 100644 --- a/help/fr/preferences.rst +++ b/help/fr/preferences.rst @@ -4,9 +4,9 @@ Préférences .. only:: edition_se **Type de scan:** Cette option détermine quels aspects du fichier doit être comparé. Un scan par **Nom de fichier** compare les noms de fichiers mot-à-mot et, dépendant des autres préférences ci-dessous, déterminera si les noms se ressemblent assez pour être considérés comme doublons. Un scan par **Contenu** trouvera les doublons qui ont exactement le même contenu. - + Le scan **Dossiers** est spécial. Si vous le sélectionnez, dupeGuru cherchera des doublons de *dossiers* plutôt que des doublons de fichiers. Pour déterminer si deux dossiers sont des doublons, dupeGuru regarde le contenu de tous les fichiers dans les dossiers, et si **tous** sont les mêmes, les dossiers sont considérés comme des doublons. - + **Seuil du filtre:** Pour les scan de type **Nom de fichier**, cette option détermine le degré de similtude nécessaire afin de considérer deux noms comme doublons. Avec un seuil de 80, 80% des mots doivent être égaux. Pour déterminer ce pourcentage, dupeGuru compte le nombre de mots total des deux noms, puis compte le nombre de mots égaux, puis fait la division des deux. Un résultat égalisant ou dépassant le seuil sera considéré comme un doublon. Exemple: "a b c d" et "c d e" ont un pourcentage de 57 (4 mots égaux, 7 au total). .. only:: edition_me @@ -33,7 +33,7 @@ Préférences .. only:: edition_pe **Type de scan:** Détermine le type de scan qui sera fait sur vos images. Le type **Contenu** compare le contenu des images de façon "fuzzy", rendant possible de trouver non seulement les doublons exactes, mais aussi les similaires. Le type **EXIF Timestamp** compare les métadonnées EXIF des images (si existantes) et détermine si le "timestamp" (moment de prise de la photo) est pareille. C'est beaucoup plus rapide que le scan par Contenu. **Attention:** Les photos modifiées gardent souvent le même timestamp, donc faites attention aux faux doublons si vous utilisez cette méthode. - + **Seuil du filtre:** *Scan par Contenu seulement.* Plus il est élevé, plus les images doivent être similaires pour être considérées comme des doublons. Le défaut de 95% permet quelques petites différence, comme par exemple une différence de qualité ou bien une légère modification des couleurs. **Comparer les images de tailles différentes:** Le nom dit tout. Sans cette option, les images de tailles différentes ne sont pas comparées. @@ -58,6 +58,6 @@ Dans tous les cas, dupeGuru résout les conflits de noms de fichier en ajoutant Le format de la ligne de commande est la même que celle que vous écrireriez manuellement, excepté pour les arguments, **%d** et **%r**. L'endroit où vous placez ces deux arguments sera remplacé par le chemin du fichier sélectionné (%d) et le chemin de son fichier référence dans le groupe (%r). -Si le chemin de votre executable contient un espace, vous devez le placer entre guillemets "". Vous devriez aussi placer vos arguments %d et %r entre guillemets parce qu'il est très possible d'avoir des chemins de fichier contenant des espaces. Voici un exemple de commande personnelle:: - +Si le chemin de votre executable contient un espace, vous devez le placer entre guillemets "". Vous devriez aussi placer vos arguments %d et %r entre guillemets parce qu'il est très possible d'avoir des chemins de fichier contenant des espaces. Voici un exemple de commande personnelle:: + "C:\Program Files\SuperDiffProg\SuperDiffProg.exe" "%d" "%r" diff --git a/help/fr/reprioritize.rst b/help/fr/reprioritize.rst index 4febfca4..2eb286e6 100644 --- a/help/fr/reprioritize.rst +++ b/help/fr/reprioritize.rst @@ -22,4 +22,4 @@ criterion is used and so on and so on. For example, if your arguments are "Size "Filename (Doesn't end with a number)", the reference file that will be picked in a group will be the biggest file, and if two or more files have the same size, the one that has a filename that doesn't end with a number will be used. When all criteria result in ties, the order in which dupes -previously were in the group will be used. \ No newline at end of file +previously were in the group will be used. diff --git a/help/fr/results.rst b/help/fr/results.rst index 45690327..a75304ec 100644 --- a/help/fr/results.rst +++ b/help/fr/results.rst @@ -131,7 +131,7 @@ s'exécute. La plupart du temps, ces options n'ont pas a être activées. liens (`symlink`_ ou `hardlink`_) vers leur fichiers de référence respectifs. Un symlink est un lien symbolique (qui devient caduque si l'original est supprimé) et un hardlink est un lien direct au contenu du fichier (même si l'original est supprimé, le lien reste valide). - + Sur OS X et Linux, cette fonction est supportée pleinement, mais sur Windows, c'est un peu compliqué. Windows XP ne le supporte pas, mais Vista oui. De plus, cette fonction ne peut être utilisée que si dupeGuru roule avec les privilèges administratifs. Ouaip, Windows c'est la joie. diff --git a/help/hy/faq.rst b/help/hy/faq.rst index eeb42dea..c6511082 100644 --- a/help/hy/faq.rst +++ b/help/hy/faq.rst @@ -25,7 +25,7 @@ .. topic:: Ո՞րոն եք dupeGuru-ի լիցենզիայի սահմանափակումները: - Փորձնական եղանակում, Դուք կարող եք միայն կատարել գործողություններ 10 կրկնօրինակների հետ միաժամանակ: Ծրագրի + Փորձնական եղանակում, Դուք կարող եք միայն կատարել գործողություններ 10 կրկնօրինակների հետ միաժամանակ: Ծրագրի `Անվճար տարբերակում `_ mode, այնուհանդերձ չկան էական սահմանափակումներ: .. topic::Ջնջելու համար նշելու դաշտի պատուհանը ակտիվ չէ: Ի՞նչ անել: @@ -72,7 +72,7 @@ * Սեղմեք **Նշել --> Նշել բոլորը**: .. only:: edition_me - + .. topic:: Ես ցանկանում եմ հեռացնել բոլոր երգերը, որոնք 3 վայրկյանից հեռու են իրենց հղման ֆայլից: Ի՞նչ կարող եմ ես անել: * Միացնել :doc:`Միայն Սխալները ` եղանակում: @@ -84,7 +84,7 @@ * Սեղմեք **Ջնջել ընտրվածը արդյունքներից**: .. topic:: Ես ցանկանում եմ դարձնել իմ բարձրագույն բիթրեյթ ունեցող երգերը հղման ֆայլեր: Ի՞նչ կարող եմ ես անել: - + * Միացնել :doc:`Միայն Սխալները ` եղանակում: * Միացնել **Դելտա նշանակությունները** եղանակը: * Սեղմեք "Բիթրեյթը" սյանը՝ դասավորելու համար արդյունքները ըստ բիթրեյթի: @@ -93,12 +93,12 @@ * Սեղմեք **Դարձնել ընտրվածը հղում**: .. topic:: Ես չեմ ցանկանում [live] և [remix] տարբերակները իմ երգերի՝ հաշված որպես կրկնօրինակ: Ինչպե՞ս դա անել: - - Եթե Ձեր համեմատության սահմանը բավականին ցածր է, հնարավոր է Դուք ավարտվեք կենդանի և ռեմիքս տարբերակներով Ձեր երգերի արդյունեքներում: Դուք ոչինչ չեք կարող անել դրա համար, բայց կա ինչ-որ եղանակ՝ դրանք ստուգման արդյունքներից ջնջելու համար: Եթե օրինակի համար, Դուք ցանկանում եք ջնջել ամեն մի երգ, որը գտնվում է գծիկների միջև []:. + + Եթե Ձեր համեմատության սահմանը բավականին ցածր է, հնարավոր է Դուք ավարտվեք կենդանի և ռեմիքս տարբերակներով Ձեր երգերի արդյունեքներում: Դուք ոչինչ չեք կարող անել դրա համար, բայց կա ինչ-որ եղանակ՝ դրանք ստուգման արդյունքներից ջնջելու համար: Եթե օրինակի համար, Դուք ցանկանում եք ջնջել ամեն մի երգ, որը գտնվում է գծիկների միջև []:. * **Windows**. Սեղմեք **Գործողություններ --> Կիրառել ֆիլտրը**, ապա տեսակը "[*]", ապա սեղմեք ԼԱՎ: * **Mac OS X**. Տեսակը "[*]" "Ֆիլտր" դաշտում՝ գործիքաշերտի: * Սեղմեք **Նշել --> Նշել բոլորը**: - * Սեղմեք **Գործողություններ --> Ջնջել ընտրվածը արդյունքներից**. + * Սեղմեք **Գործողություններ --> Ջնջել ընտրվածը արդյունքներից**. .. topic:: Ես փորձում եմ կրկնօրինակները ուղարկել Աղբարկղ, բայց dupeGuru-ն ինձ ասում է, որ չես կարող: Ինչու՞: Ի՞նչ կարող եմ ես անել: @@ -112,4 +112,4 @@ Եթե այս ամենը ձախողվի, `կապնվեք HS աջակցության թիմի հետ `_, մենք կփորձեք օգնել Ձեզ: -.. todo:: This FAQ qestion is outdated, see english version. \ No newline at end of file +.. todo:: This FAQ qestion is outdated, see english version. diff --git a/help/hy/index.rst b/help/hy/index.rst index 2a86b6fb..5ccca2a2 100644 --- a/help/hy/index.rst +++ b/help/hy/index.rst @@ -21,7 +21,7 @@ .. toctree:: :maxdepth: 2 - + quick_start folders preferences diff --git a/help/hy/preferences.rst b/help/hy/preferences.rst index 7faeab09..74fc96bf 100644 --- a/help/hy/preferences.rst +++ b/help/hy/preferences.rst @@ -4,9 +4,9 @@ .. only:: edition_se **Ստուգելու տեսակը.** Այս ընտրանքը որոշում է, թե ֆայլերի որ ասպեկտը կհամեմատվի կրկնօրինակված ստուգման հետ: Եթե Դուք ընտրեք **Ֆայլի անունը**, ապա dupeGuru-ն կհամեմատի յուրաքանչյուրը բառ-առ-բառ և կախված է հետևյալ այլ ընտրանքներից, այն կորոշի արդյոք բավական են համընկնող բառերը դիտելու համար 2 ֆայլերի կրկնօրինակները: Եթե ընտրեք միայն **Բովանդակությունը**, ապա նույնատիպ ֆայլերը նույն բովանդակությամբ կհամընկնեն: - + **Թղթապանակներ.** ստուգելու հատուկ տեսակ է: Երբ ընտրեք սա, dupeGuru-ն կստուգի կրկնօրինակ *թղթապանակները*՝ կրկնօրինակ ֆայլերի փոխարեն: Որոշելու համար արդյոք անկախ երկու թղթապանակները կրկնօրինակ են, կստուգվեն թղթապանակների ամբողջ պարունակությունը և եթե **բոլոր** ֆայլերի բովանդակությունը համընկնի, ապա թղթապանակները կորոշվեն որպես կրկնօրինակներ: - + **Ֆիլտրի խստությունը.** Եթե Դուք ընտրեք **Ֆայլի անունը** ստուգելու տեսակը, այս ընտրանքը կորոշի, թե ինչքանով նման պետք է լինեն ֆայլերի անունները, որ dupeGuru-ն ճանաչի դրանք որպես կրկնօրինակներ: Եթե ֆիլտրը առավել խիստ է, օրինակ՝ 80, ապա դա նշանակում է, որ երկու ֆայլերի անունների բառերի 80%-ը պետք է համընկնի: Որոշելու համար համընկնման տոկոսը, dupeGuru-ն նախ հաշվում է բառերի ընդհանուր քիանակը **երկու** ֆայլերի անուններում, ապա հաշվում է համընկնումների քանակը (ամեն բառ համընկնում է 2-ի հաշվին) և բաժանում ընդհանուր գտնված բառերի համընկնումների միջև: Եթե արդյունքը բարձր է կամ հավասար ֆիլտրի խստությանը, ապա մենք ունեք կրկնօրինակի համընկնում: Օրինակ՝ "a b c d" և "c d e" ունեն համընկնման տոկոս, որը հավասար է 57-ի (4 բառ են համընկնում, 7 ընդհանուր բառից): .. only:: edition_me @@ -33,7 +33,7 @@ .. only:: edition_pe **Ստուգելու եղանակը.** Այս ընտրանքը որոշում է ստուգելու եղանակը, որը կկիրառվի նկարների նկատմամբ: **Պարունակությունը** ստուգելու եղանակը համեմատում է ակտուալ նկարների բովանդակությունը ոչ ճշգրիտ եղանակով (հնարավորություն տալով գտնելու ոչ միայն անմիջապես կրկնօրինակները, այլ նաև նմանատիպ այլ ֆայլերը): **EXIF Timestamp** ստուգելու եղանակը նայում է նկարի EXIF մետատվյալը (եթե այն կա) և համընկնող նկարները, որոնք որ նույնն են: Սա ավելի արագ է, քան բովանդակությամբ ստուգելը: **Զգուշացում.** Փոփոխված նկարները սովորաբար պահում են նույն EXIF timestamp-ը, ուստի նախ նայեք արդյունքները, ապա գործեք: - + **Ֆիլտրի խստությունը.** *Ստուգում է միայն բովանդակությունը:* Այս ընտարնքի բարձրագույն նիշը, բնորոշում է ֆիլտրի "խստությունը" (Այլ կերպ ասաց, արդյունքը ավելի քիչ է լինում): Նույն որակի նկարներից շատերը երբեմն համընկնում են 100%-ով՝ անգամ եթե տեսակը ուրիշ է (PNG և JPG օրինակի համար): Այնուհանդերձ, եթե ցանկանում եք, որ PNG-ն համապատասխանի ցածր որակի JPG-ին, պետք է նշեք ֆիլտրի խստությունը 100-ից ցածր: Ծրագրայինը 95 է: **Տարբեր չափերով նկարների համապատասխանեցում.** Եթե ընտրեք սա, տարբեր չափերի նկարները կթույլատրվեն կրկնօրինակվող նույն խմբում: @@ -57,7 +57,7 @@ **Ընտրված հրամանը.** Այս կարգավորումը որոշում է հրամանը, որը կկանչվի "Կանչել Ընտրված հրամանը" գործողությամբ: Կարող եք կանչել ցանկացած արտաքին ծրագիր՝ այս գործողությամբ: Սա կարող է օգտակար լինել եթե օրինակ փոխարենը ունեք տվյալների փոխանցման լավ ծրագիր: Հրամանի տեսակը նույնն է, ինչ Դուք կգրեք Հրամանի տողում, բացառությամբ որտեղ կան 2 լրացումներ. **%d** և **%r**: Այս լրացումները կվերագրվեն ընտրված զոհի (%d) ճանապարհով և ընտրված զոհի հղման ֆայլով (%r): - + Եթե կատարելի ֆայլի ճանապարհը պարունակում է բացատներ, ապա պետք է փակեք այն "" չակերտներով: Նաև պետք է փակեք լրացումները չակերտներով, որովհետև շատ հնարավոր է, որ զոհի ճանապարհները և հղումները կպարունակեն բացատներ: Ահա ընտրված հրամանի օրինակ՝ :: - + "C:\Program Files\SuperDiffProg\SuperDiffProg.exe" "%d" "%r" diff --git a/help/hy/quick_start.rst b/help/hy/quick_start.rst index 6dc7d2b4..37f61679 100644 --- a/help/hy/quick_start.rst +++ b/help/hy/quick_start.rst @@ -12,4 +12,3 @@ * Եթե համոզված եք, որ կրկնօրինակը արդյունքներում կա, ապա սեղմեք **Խմբագրել-->Նշել բոլորը**, և ապա **Գործողություններ-->Ուղարկել Նշվածը Աղբարկղ**: Սա միայն բազային ստուգում է: Կան բազմաթիվ կարգավորումներ, որոնք հնարավորություն են տալիս նշելու տարբեր արդյունքներ և մի քանի եղանակներ արդյունքների փոփոխման: Մանրամասների համար կարդացեք Օգնության ֆայլը: - diff --git a/help/hy/reprioritize.rst b/help/hy/reprioritize.rst index 2b60a905..e9aec679 100644 --- a/help/hy/reprioritize.rst +++ b/help/hy/reprioritize.rst @@ -1,7 +1,7 @@ Վերաառաջնայնության կրկնօրինակներ ================================ -dupeGuru-ը փորձում է որոշել, թե որ կրկնօրինակները պետք է գնան յուրաքանչյուր խմբի դիրքում, +dupeGuru-ը փորձում է որոշել, թե որ կրկնօրինակները պետք է գնան յուրաքանչյուր խմբի դիրքում, բայց երբեմն սխալ է ստանում: Շատ դեպքերում, խելամիտ դասավորումը "Դելտա նշանակության" և "Միայն սխալները" ընտրանքների ավելացնելով "Դարձնել ընտրվածը հղում" գործողության խորամանկություն է, բայց երբեմն, պահանջվում են ավելի լավ ընտրանքներ: Ահա այստեղ է, որ վերաառաջնայնավորման պատուհանը բացվում է: @@ -23,4 +23,3 @@ dupeGuru-ը փորձում է որոշել, թե որ կրկնօրինակներ մեծագույն ֆայլը և եթե երկու կամ ավելի ֆայլեր ունեն նույն չափը, ապա մեկը ունի ֆայլի անուն, որը չի ավարտվում թվով, կօգտագործվի: Երբ փաստարկի արդյունքը կապված է, կարգը, որի սխալները նախկինում էին, խումբը պետք է օգտագործվի: - diff --git a/help/hy/results.rst b/help/hy/results.rst index fb5ab88c..9406b004 100644 --- a/help/hy/results.rst +++ b/help/hy/results.rst @@ -98,4 +98,4 @@ dupeGuru-ն աջակցում է հետստուգման ֆիլտրում։ Սրա * **Անվանափոխել ընտրվածը.** Ձեզ հարցում կկատարվի նոր անվան համար, ապա ընտրված ֆայլը կանվանափոխվի։ .. todo:: Add Move and iPhoto/iTunes warning -.. todo:: Add "Deletion Options" section. \ No newline at end of file +.. todo:: Add "Deletion Options" section. diff --git a/help/ru/faq.rst b/help/ru/faq.rst index e31d119f..214d674d 100644 --- a/help/ru/faq.rst +++ b/help/ru/faq.rst @@ -72,7 +72,7 @@ * Нажмите на **Отметить -> Отметить все**. .. only:: edition_me - + .. topic:: Я хочу, чтобы удалить все песни, которые более чем на 3 секунды от своей ссылке на файл. Что я могу сделать? * Включить: документ: `обманутые Только <результаты>` режим. @@ -84,7 +84,7 @@ * Нажмите на **Удалить выбранные из результатов**. .. topic:: Я хочу, чтобы мой высокий битрейт файлов песни ссылки. Что я могу сделать? - + * Включить: документ: `обманутые Только <результаты>` режиме * Включить **Значения делта** режим. * Нажмите на кнопку "Битрейт" колонку для сортировки результатов по битрейт. @@ -93,9 +93,9 @@ * Нажмите на **Сделать выбранной ссылки**. .. topic:: Я не хочу [жить] и [ремикс] версии моих песен считаться дубликатами. Как мне это сделать? - + Если ваше сравнение порог достаточно низким, вы, вероятно, в конечном итоге с живой и ремикс версии ваших песен в своих результатах. Там вы ничего не можете сделать, чтобы предотвратить это, но есть кое-что можно сделать, чтобы легко удалить их со своего результаты после сканирования: после сканирования, фильтрации. Если, например, вы хотите удалить все песни с чем-либо в квадратных скобках []: - + * **Windows**: Нажмите на **Действия -> Применить фильтр**, а затем введите "[*]", нажмите кнопку ОК. * **Mac OS X**: Тип "[*]" в "Фильтр" поле на панели инструментов. * Нажмите на Отметить **-> Отметить все**. diff --git a/help/ru/index.rst b/help/ru/index.rst index fdec2c46..8b3be6b2 100644 --- a/help/ru/index.rst +++ b/help/ru/index.rst @@ -18,7 +18,7 @@ .. toctree:: :maxdepth: 2 - + quick_start folders preferences diff --git a/help/ru/preferences.rst b/help/ru/preferences.rst index 7e67b6b5..f8140bfa 100644 --- a/help/ru/preferences.rst +++ b/help/ru/preferences.rst @@ -4,9 +4,9 @@ .. only:: edition_se **Тип сканирования:** Этот параметр определяет, какой аспект файлы будут сравниваться в дубликат сканирования. Если выбрать **Имя файла**, dupeGuru будем сравнивать каждое имена файлов слово за слово, и, в зависимости от других параметров ниже, он будет определять, достаточно ли слов соответствие рассмотреть 2 файлов дубликатов. Если выбрать **Содержимое**, только файлы с точно такой же контент будет матч. - + **Папки** типа сканирования немного особенным. Когда вы выбираете его, dupeGuru проведет поиск дубликатов *папки* вместо того, чтобы дубликатов файлов. Для определения того, две папки, дублируют друг друга, все файлы, содержащиеся в папках будут проверяться, и если содержание **все** файлы в матче папки, папки будут считаться дубликатами. - + **Фильтра Твердость:** Если вы выбрали **Имя файла** типа сканирования, эта опция определяет, как похожи два имени должно быть для dupeGuru рассматривать их дубликатов. Если фильтр твердости, например 80, то это означает, что 80% слов из двух имен файлов должны совпадать. Для определения соответствия процент, dupeGuru первой подсчитывает общее количество слов в **обоих** файла, то подсчитать количество слов соответствия (каждое слово соответствия считаются 2), а затем разделите количество слов соответствия на общее число слов. Если результат больше или равно фильтр твердость, у нас есть дубликаты матча. Например, "ABCD" и "CDE" имеют соответствующий процент 57 (4 слова соответствия, 7 всего слов). .. only:: edition_me @@ -35,7 +35,7 @@ **Тип сканирования:** Этот параметр определяет тип сканирования, которые будут сделаны на ваши картины.**Сканирования** Содержание типа сравнивает фактическое содержание фотографий нечеткие пути (что делает его можно найти не только точными копиями, но и подобные).**EXIF Timestamp** тип сканирования смотрит на метаданные EXIF с фото (если он существует) и соответствует фотографии, которые имеют такой же. Это намного быстрее, чем сканирование содержимого. **Внимание:** Измененные фотографии часто держат же метка EXIF, так что следите за ложных срабатываний, когда вы используете, что тип сканирования. **Фильтра Твердость:** *Содержание тип сканирования только.* Чем больше этот параметр, "тяжелее" является фильтром (Другими словами, тем меньше результатов Вы получите). Большинство фотографий одного и того же матча качества на 100%, даже если формат отличается (PNG и JPG, например.). Однако, если вы хотите, чтобы соответствовать PNG с более низким качеством JPG, вам придется установить фильтром твердость ниже, чем 100.По умолчанию, 95, это сладкое место. - + **Совпадения рисунки разных размеров:** Если вы установите этот флажок, фотографии разных размеров будет разрешен в том же дубликат группы. **Можно смешивать файл вида:** Если вы установите этот флажок, дублировать группам разрешается есть файлы с различными расширениями. Если вы не проверить его, ну, они не являются! @@ -57,7 +57,7 @@ **Специальной команды:** Это предпочтение определяет команду, которая будет вызываться "Вызов специальной команды" действия. Вы можете ссылаться ни на какие внешние приложения через это действие. Это может быть полезно, если, например, у вас есть хорошее приложение сравниваете установлены. Формат команды такой же, как то, что вы должны написать в командной строке, за исключением того, что Есть 2 заполнителей: **%d** and **%r**. Эти заполнители будут заменены на путь выбран обманут (%d) и путь к ссылке на файл выбранного обмануть (%r). - + Если путь к исполняемому содержит пробелы, необходимо заключить его в "" кавычки. Вы также должны приложить заполнителей в кавычки, потому что это очень возможно, что путь к обманутых и ссылки будут содержать пробелы. Вот пример пользовательской команды: - + "C:\Program Files\SuperDiffProg\SuperDiffProg.exe" "%d" "%r" diff --git a/help/ru/quick_start.rst b/help/ru/quick_start.rst index d12d0803..6d4bded0 100644 --- a/help/ru/quick_start.rst +++ b/help/ru/quick_start.rst @@ -11,4 +11,4 @@ * Если файл ложных дубликатов, выделите ее и нажмите **Действия -> Удалить выбранные из результатов**. * Если вы уверены, что нет ложных дубликатов в результатах, нажмите на **Изменить -> Отметить Все**, а затем **Действия -> Отправить Помечено в Корзину**. -Это только основные сканирования. Есть много настройки вы можете сделать, чтобы получить разные результаты и несколько методов изучения и изменения ваших результатов. Чтобы узнать о них, только что прочитал остальную часть этого файла справки. \ No newline at end of file +Это только основные сканирования. Есть много настройки вы можете сделать, чтобы получить разные результаты и несколько методов изучения и изменения ваших результатов. Чтобы узнать о них, только что прочитал остальную часть этого файла справки. diff --git a/help/ru/reprioritize.rst b/help/ru/reprioritize.rst index 0147744a..da5b8de7 100644 --- a/help/ru/reprioritize.rst +++ b/help/ru/reprioritize.rst @@ -22,4 +22,4 @@ subargument в приведенном ниже списке, а затем на "Имя файла (Не оканчивается на номер)", ссылке на файл, который будет выбран в группе будет крупнейших файл, а если два или несколько файлов имеют одинаковый размер, который имеет имя файла с не заканчивается номер будет использоваться. Когда все критерии привести к связи, порядок, в котором обманутые -ранее были в группе будет использоваться. \ No newline at end of file +ранее были в группе будет использоваться. diff --git a/help/ru/results.rst b/help/ru/results.rst index 9fdea957..c7e5db5e 100644 --- a/help/ru/results.rst +++ b/help/ru/results.rst @@ -98,4 +98,4 @@ dupeGuru поддерживает после сканирования, филь * **Переименования выбрано:** Запрашивает новое имя, а затем переименовать выбранный файл. .. todo:: Add Move and iPhoto/iTunes warning -.. todo:: Add "Deletion Options" section. \ No newline at end of file +.. todo:: Add "Deletion Options" section. diff --git a/help/uk/faq.rst b/help/uk/faq.rst index cf685d5f..e63ebd08 100644 --- a/help/uk/faq.rst +++ b/help/uk/faq.rst @@ -72,7 +72,7 @@ * Натисніть на Марка **-> Позначити всі**. .. only:: edition_me - + .. topic:: Я хочу, щоб видалити всі пісні, які більш ніж на 3 секунди від своєї посиланням на файл. Що я можу зробити? * Включити :doc:`ошукані Тільки ` режимі. @@ -84,7 +84,7 @@ * Натисніть на **Видалити вибрані з результатів**. .. topic:: Я хочу, щоб мій високий бітрейт файлів пісні посилання. Що я можу зробити? - + * Включити :doc:`ошукані Тільки ` режимі. * Включити **Значення Delta** режимі. * Натисніть на "Бітрейт" колонку для сортування результатів по бітрейт. @@ -93,9 +93,9 @@ * Натисніть на **Зробити вибраної посилання**. .. topic:: Я не хочу [жити] і [ремікс] версії моїх пісень вважатися дублікатами. Як мені це зробити? - + Якщо ваше порівняння поріг досить низьким, ви, ймовірно, в кінцевому підсумку з живою і ремікс версії ваших пісень у своїх результатах. Там ви нічого не можете зробити, щоб запобігти цьому, але є дещо можна зробити, щоб легко видалити їх зі свого результати після сканування: після сканування, фільтрації. Якщо, наприклад, ви хочете видалити всі пісні з чим-небудь у квадратних дужках []: - + * **Windows**: Натисніть на **Дії -> Застосувати фільтр**, а потім введіть "[*]", натисніть кнопку ОК. * **Mac OS X**: Тип "[*]" в "Фільтр" поле на панелі інструментів. * Натисніть на Марка **-> Позначити всі**. @@ -114,4 +114,3 @@ Якщо все це не так, `контакт УГ підтримки `_, ми зрозуміти це. .. todo:: This FAQ qestion is outdated, see english version. - diff --git a/help/uk/index.rst b/help/uk/index.rst index 26f49dc9..0209b804 100644 --- a/help/uk/index.rst +++ b/help/uk/index.rst @@ -13,7 +13,7 @@ dupeGuru Picture Edition (PE для стислості) являє собою інструмент для пошуку дублікатів фотографій на вашому комп'ютері. Не тільки він може знайти точні відповідності, але він також може знайти дублікати серед фотографій різного роду (PNG, JPG, GIF і т.д..) І якість. -Хоча dupeGuru може бути легко використана без документації, читання цього файлу допоможе вам освоїти його. Якщо ви шукаєте керівництво для вашої першої дублювати сканування, ви можете поглянути на: :doc:`Quick Start ` +Хоча dupeGuru може бути легко використана без документації, читання цього файлу допоможе вам освоїти його. Якщо ви шукаєте керівництво для вашої першої дублювати сканування, ви можете поглянути на: :doc:`Quick Start ` Це гарна ідея, щоб зберегти dupeGuru оновлено. Ви можете завантажити останню версію на своєму http://dupeguru.voltaicideas.net. @@ -21,7 +21,7 @@ Contents: .. toctree:: :maxdepth: 2 - + quick_start folders preferences diff --git a/help/uk/preferences.rst b/help/uk/preferences.rst index 6489f418..6b2391e4 100644 --- a/help/uk/preferences.rst +++ b/help/uk/preferences.rst @@ -4,9 +4,9 @@ .. only:: edition_se **Тип сканування:** Цей параметр визначає, який аспект файли будуть порівнюватися в дублікат сканування. Якщо вибрати **Файл** , dupeGuru будемо порівнювати кожне імена файлів слово за слово, і, залежно від інших параметрів нижче, він буде визначати, чи достатньо слів відповідність розглянути 2 файлів дублікатів. Якщо вибрати **Вміст**, тільки файли з точно такою ж контент буде матч. - + **Папки** типу сканування трохи особливим. Коли ви обираєте його, dupeGuru проведе пошук дублікатів *папки* замість того, щоб дублікатів файлів. Для визначення того, дві папки, дублюють один одного, всі файли, що містяться в папках будуть перевірятися, і якщо вміст **всі** файли в матчі папки, папки будуть вважатися дублікатами. - + **Фільтра Твердість:** Якщо ви вибрали **Папки** Файл типу сканування, ця опція визначає, як схожі два імені повинно бути для dupeGuru розглядати їх дублікатів. Якщо фільтр твердості, наприклад 80, то це означає, що 80% слів з ​​двох імен файлів повинні збігатися. Для визначення відповідності відсоток, dupeGuru перший підраховує загальну кількість слів в **обох** файлу, то підрахувати кількість слів відповідності (кожне слово відповідності вважаються 2), а потім розділіть кількість слів відповідності на загальне число слів. Якщо результат більше або дорівнює фільтр твердість, у нас є дублікати матчу. Наприклад, "ABCD" і "CDE" мають відповідний відсоток 57 (4 слова відповідності, 7 всього слів). .. only:: edition_me @@ -33,7 +33,7 @@ .. only:: edition_pe **Тип сканування:** Цей параметр визначає тип сканування, які будуть зроблені на ваші картини. **Сканування** Зміст типу порівнює фактичний зміст фотографій нечіткі шляху (що робить його можна знайти не тільки точними копіями, але і подібні). **EXIF Timestamp** тип сканування дивиться на метадані EXIF з фото (якщо він існує) і відповідає фотографії, які мають такий же. Це набагато швидше, ніж сканування вмісту. **Увага:** Змінені фотографії часто тримають ж мітка EXIF, так що слідкуйте за помилкових спрацьовувань, коли ви використовуєте, що тип сканування. - + **Фільтра Твердість:** *Вміст тип сканування тільки*. Чим більше цей параметр, "важче" є фільтром (Іншими словами, тим менше результатів Ви отримаєте). Більшість фотографій одного й того ж матчу якості на 100%, навіть якщо формат відрізняється (PNG і JPG, наприклад.). Однак, якщо ви хочете, щоб відповідати PNG з більш низькою якістю JPG, вам доведеться встановити фільтром твердість нижче, ніж 100. За замовчуванням, 95, це солодке місце. **Матч малюнки різних розмірів:** Якщо ви встановите цей прапорець, фотографії різних розмірів буде дозволений в тому ж дублікат групи. @@ -60,5 +60,5 @@ Формат команди такий же, як те, що ви повинні написати в командному рядку, за винятком того, що Є 2 заповнювачів: **%d** and **%r**. Ці наповнювачі будуть замінені на шлях вибраний обдурити (% г) і шлях до заслання на файл вибраного обдурити (%r). Якщо шлях до виконуваного містить прогалини, необхідно укласти його в "" лапки. Ви також повинні докласти заповнювачів в лапки, бо це дуже можливо, що шлях до обдурених і посилання будуть містити пробіли. Ось приклад користувальницької команди:: - + "C:\Program Files\SuperDiffProg\SuperDiffProg.exe" "%d" "%r" diff --git a/help/uk/quick_start.rst b/help/uk/quick_start.rst index 6e39aa58..343ac3d5 100644 --- a/help/uk/quick_start.rst +++ b/help/uk/quick_start.rst @@ -11,4 +11,4 @@ * Якщо файл помилкових дублікатів, виділіть її та натисніть **Дії -> Видалити вибрані з результатів**. * Якщо ви впевнені, що немає помилкових дублікатів в результатах, натисніть на **Редагувати -> Позначити Всі**, а потім **Дії -> Отправить Позначено до кошику**. -Це тільки основні сканування. Є багато налаштування ви можете зробити, щоб отримати різні результати і кілька методів вивчення та зміни ваших результатів. Щоб дізнатися про них, щойно прочитав решту цього файлу довідки. \ No newline at end of file +Це тільки основні сканування. Є багато налаштування ви можете зробити, щоб отримати різні результати і кілька методів вивчення та зміни ваших результатів. Щоб дізнатися про них, щойно прочитав решту цього файлу довідки. diff --git a/help/uk/reprioritize.rst b/help/uk/reprioritize.rst index d763464d..27afb7ec 100644 --- a/help/uk/reprioritize.rst +++ b/help/uk/reprioritize.rst @@ -22,4 +22,4 @@ subargument в наведеному нижче списку, а потім на "Файл (Не закінчується на номер)", заслання на файл, який буде обраний у групі буде найбільших файл, а якщо два або декілька файлів мають однаковий розмір, який має ім'я файлу з не закінчується номер буде використовуватися. Коли всі критерії привести до зв'язку, порядок, в якому ошукані -раніше були в групі буде використовуватися. \ No newline at end of file +раніше були в групі буде використовуватися. diff --git a/help/uk/results.rst b/help/uk/results.rst index f015175a..0fbbc327 100644 --- a/help/uk/results.rst +++ b/help/uk/results.rst @@ -98,4 +98,4 @@ dupeGuru підтримує після сканування, фільтраці * **Перейменування обрано:** Запит нове ім'я, а потім перейменувати вибраний файл. .. todo:: Add Move and iPhoto/iTunes warning -.. todo:: Add "Deletion Options" section. \ No newline at end of file +.. todo:: Add "Deletion Options" section. diff --git a/hscommon/LICENSE b/hscommon/LICENSE index 5a8d3ceb..88f4f87f 100644 --- a/hscommon/LICENSE +++ b/hscommon/LICENSE @@ -7,4 +7,4 @@ Redistribution and use in source and binary forms, with or without modification, * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/hscommon/trans.py b/hscommon/trans.py index 86628831..694a36ba 100644 --- a/hscommon/trans.py +++ b/hscommon/trans.py @@ -41,7 +41,8 @@ def trget(domain: str) -> Callable[[str], str]: def set_tr( - new_tr: Callable[[str, Union[str, None]], str], new_trget: Union[Callable[[str], Callable[[str], str]], None] = None + new_tr: Callable[[str, Union[str, None]], str], + new_trget: Union[Callable[[str], Callable[[str], str]], None] = None, ) -> None: global _trfunc, _trget _trfunc = new_tr diff --git a/locale/columns.pot b/locale/columns.pot index eddb5b80..9da01da0 100644 --- a/locale/columns.pot +++ b/locale/columns.pot @@ -114,4 +114,3 @@ msgstr "" #: core\prioritize.py:158 msgid "Size" msgstr "" - diff --git a/locale/core.pot b/locale/core.pot index 622ec726..31da3865 100644 --- a/locale/core.pot +++ b/locale/core.pot @@ -243,4 +243,3 @@ msgstr "" #: core\se\scanner.py:18 msgid "Folders" msgstr "" - diff --git a/locale/ui.pot b/locale/ui.pot index 2f7e134d..ae8a7b94 100644 --- a/locale/ui.pot +++ b/locale/ui.pot @@ -1114,3 +1114,10 @@ msgstr "" #: qt\progress_window.py:65 msgid "Are you sure you want to cancel? All progress will be lost." msgstr "" + +#: qt\exclude_list_dialog.py:161 +msgid "" +"These (case sensitive) python regular expressions will filter out files during scans.
    Directores will also have their default state set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.
    For each file collected, two tests are performed to determine whether or not to completely ignore it:
  • 1. Regular expressions with no path separator in them will be compared to the file name only.
  • \n" +"
  • 2. Regular expressions with at least one path separator in them will be compared to the full path to the file.

  • Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:
    .*My\\sPictures\\\\.*\\.png

    You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:
    C:\\\\User\\My Pictures\\test.png

    \n" +"Matching regular expressions will be highlighted.
    If there is at least one highlight, the path or filename tested will be ignored during scans.

    Directories and files starting with a period '.' are filtered out by default.

    " +msgstr "" diff --git a/macos.md b/macos.md index ae0c8c74..1270666d 100644 --- a/macos.md +++ b/macos.md @@ -11,10 +11,10 @@ These instructions are for the Qt version of the UI on macOS. #### Prerequisite setup 1. Install Xcode if desired -2. Install [Homebrew][homebrew], if not on the path after install (arm based Macs) create `~/.zshrc` -with `export PATH="/opt/homebrew/bin:$PATH"`. Will need to reload terminal or source the file to take +2. Install [Homebrew][homebrew], if not on the path after install (arm based Macs) create `~/.zshrc` +with `export PATH="/opt/homebrew/bin:$PATH"`. Will need to reload terminal or source the file to take effect. -3. Install qt5 with `brew`. If you are using a version of macos without system python 3.7+ then you will +3. Install qt5 with `brew`. If you are using a version of macos without system python 3.7+ then you will also need to install that via brew or with pyenv. $ brew install qt5 @@ -25,9 +25,9 @@ also need to install that via brew or with pyenv. 4. May need to launch a new terminal to have everything working. ### With build.py -OSX comes with a version of python 3 by default in newer versions of OSX. To produce universal +OSX comes with a version of python 3 by default in newer versions of OSX. To produce universal builds either the 3.8 version shipped in macos or 3.9.1 or newer needs to be used. If needing to -build pyqt5 from source then the first line below is needed, else it may be omitted. (Path shown is +build pyqt5 from source then the first line below is needed, else it may be omitted. (Path shown is for an arm mac.) $ export PATH="/opt/homebrew/opt/qt/bin:$PATH" @@ -39,7 +39,7 @@ for an arm mac.) $ python run.py ### Generate OSX Packages -The extra requirements need to be installed to run packaging: `pip install -r requirements-extra.txt`. +The extra requirements need to be installed to run packaging: `pip install -r requirements-extra.txt`. Run the following in the respective virtual environment. $ python package.py @@ -47,7 +47,7 @@ Run the following in the respective virtual environment. This will produce a dupeGuru.app in the dist folder. ### Running tests -The complete test suite can be run with tox just like on linux. NOTE: The extra requirements need to +The complete test suite can be run with tox just like on linux. NOTE: The extra requirements need to be installed to run unit tests: `pip install -r requirements-extra.txt`. [python]: http://www.python.org/ diff --git a/pkg/debian/changelog b/pkg/debian/changelog index d70cffe3..297d4219 100644 --- a/pkg/debian/changelog +++ b/pkg/debian/changelog @@ -348,4 +348,3 @@ dupeguru (2.9.2-1) unstable; urgency=low * Fixed selection glitches, especially while renaming. (#93) -- Virgil Dupras Wed, 10 Feb 2010 00:00:00 +0000 - diff --git a/pkg/debian/source/format b/pkg/debian/source/format index 9f674278..89ae9db8 100644 --- a/pkg/debian/source/format +++ b/pkg/debian/source/format @@ -1 +1 @@ -3.0 (native) \ No newline at end of file +3.0 (native) diff --git a/pyproject.toml b/pyproject.toml index 3f452fd0..a19877f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,5 +5,5 @@ build-backend = "setuptools.build_meta" line-length = 120 [tool.isort] # make it compatible with black -profile = "black" +profile = "black" skip_gitignore = true diff --git a/qt/pe/modules/block.c b/qt/pe/modules/block.c index a14cd6fc..1c22ce61 100644 --- a/qt/pe/modules/block.c +++ b/qt/pe/modules/block.c @@ -163,4 +163,4 @@ PyObject *PyInit__block_qt(void) { return NULL; } return m; -} \ No newline at end of file +} diff --git a/qt/pe/photo.py b/qt/pe/photo.py index 53bc8a0f..84de9469 100644 --- a/qt/pe/photo.py +++ b/qt/pe/photo.py @@ -31,7 +31,10 @@ class File(PhotoBase): image = image.convertToFormat(QImage.Format_RGB888) if type(orientation) != int: logging.warning( - "Orientation for file '%s' was a %s '%s', not an int.", str(self.path), type(orientation), orientation + "Orientation for file '%s' was a %s '%s', not an int.", + str(self.path), + type(orientation), + orientation, ) try: orientation = int(orientation) diff --git a/requirements-extra.txt b/requirements-extra.txt index 163d000b..1d175bf8 100644 --- a/requirements-extra.txt +++ b/requirements-extra.txt @@ -1,4 +1,4 @@ pytest>=6,<7 flake8 black -pyinstaller>=4.5,<5.0; sys_platform != 'linux' \ No newline at end of file +pyinstaller>=4.5,<5.0; sys_platform != 'linux' diff --git a/setup.cfg b/setup.cfg index 41898a2f..b52bdd37 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,7 +2,7 @@ name = dupeGuru version = attr: core.__version__ url = https://github.com/arsenetar/dupeguru -project_urls = +project_urls = Bug Reports = https://github.com/arsenetar/dupeguru/issues author = Andrew Senetar author_email = arsenetar@voltaicideas.net @@ -28,7 +28,7 @@ classifiers = [options] packages = find: python_requires = >=3.7 -install_requires = +install_requires = Send2Trash>=1.3.0 mutagen>=1.45.1 distro>=1.5.0 @@ -39,7 +39,7 @@ install_requires = setup_requires = sphinx>=3.0.0 polib>=1.1.0 -tests_require = +tests_require = pytest >=6,<7 include_package_data = true diff --git a/setup.nsi b/setup.nsi index 1480ad94..a6809cf7 100644 --- a/setup.nsi +++ b/setup.nsi @@ -51,7 +51,7 @@ SetCompressor /SOLID lzma !define APPICON "images\dgse_logo.ico" ; nor is the icon !define DISTDIR "dist" !define HELPURL "https://github.com/arsenetar/dupeguru/issues" -!define UPDATEURL "https://dupeguru.voltaicideas.net/" +!define UPDATEURL "https://dupeguru.voltaicideas.net/" !define ABOUTURL "https://dupeguru.voltaicideas.net/" ; Static Defines @@ -85,7 +85,7 @@ var InstallSize !define MULTIUSER_USE_PROGRAMFILES64 !endif !include MultiUser.nsh - + ; Modern UI 2 !include MUI2.nsh !define MUI_ICON "${APPICON}" @@ -111,8 +111,8 @@ Icon "${APPICON}" !insertmacro MUI_PAGE_DIRECTORY ; values for start menu page -!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" ; uses shell context -!define MUI_STARTMENUPAGE_REGISTRY_KEY "${BASEREGKEY}" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" ; uses shell context +!define MUI_STARTMENUPAGE_REGISTRY_KEY "${BASEREGKEY}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder @@ -122,11 +122,11 @@ Icon "${APPICON}" ; uninstaller pages !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES - + ;============================================================================== ; Languages ;============================================================================== - + !insertmacro MUI_LANGUAGE "English" ;first language is the default language !insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "German" @@ -147,24 +147,24 @@ Icon "${APPICON}" ;============================================================================== ; Reserve Files ;============================================================================== - + ; If you are using solid compression, files that are required before ; the actual installation should be stored first in the data block, ; because this will make your installer start faster. - + !insertmacro MUI_RESERVEFILE_LANGDLL ReserveFile /nonfatal "${NSISDIR}\Plugins\*.dll" ;reserve if needed - + ;============================================================================== ; Installer Sections ;============================================================================== Section "!Application" AppSec SetOutPath "$INSTDIR" ; set from result of installer pages - + ; Files to install File /r "${SOURCEPATH}\${APPNAME}-win${BITS}\*" - + ; Create Start Menu Items !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateDirectory "$SMPROGRAMS\$StartMenuFolder" @@ -193,7 +193,7 @@ Section "!Application" AppSec WriteRegStr HKCR ".dupeguru" "backup_val" "$1" ; backup current value NoBackup: WriteRegStr HKCR ".dupeguru" "" "${APPNAME}.File" ; set our file association - + ReadRegStr $0 HKCR "${APPNAME}.File" "" StrCmp $0 "" 0 Skip WriteRegStr HKCR "${APPNAME}.File" "" "${APPNAME} File" @@ -204,7 +204,7 @@ Skip: WriteRegStr HKCR "${APPNAME}.File\shell\edit" "" "Edit ${APPNAME} File" WriteRegStr HKCR "${APPNAME}.File\shell\edit\command" "" '"$INSTDIR\${APPNAME}-win${BITS}.exe" "%1"' - ; Uninstall Entry + ; Uninstall Entry WriteRegStr SHCTX "${UNINSTALLREG}" "DisplayName" "${APPNAME} ${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONPATCH}" WriteRegStr SHCTX "${UNINSTALLREG}" "DisplayVersion" "${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONPATCH}" WriteRegStr SHCTX "${UNINSTALLREG}" "DisplayIcon" "$INSTDIR\${APPNAME}.exe" @@ -253,7 +253,7 @@ Section "Uninstall" Delete "$INSTDIR\*.pyd" Delete "$INSTDIR\*.zip" Delete "$INSTDIR\*.manifest" - + ; Remove Install Folder if empty RMDir "$INSTDIR" @@ -263,7 +263,7 @@ Section "Uninstall" StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key DeleteRegKey HKCR ".dupeGuru" Goto NotOwn - + Restore: WriteRegStr HKCR ".dupeguru" "" $1 DeleteRegValue HKCR ".dupeguru" "backup_val" @@ -293,7 +293,7 @@ Function .onInit !insertmacro MULTIUSER_INIT ; it appears that the languages shown may not always be filtered correctly !define MUI_LANGDLL_ALLLANGUAGES - !insertmacro MUI_LANGDLL_DISPLAY + !insertmacro MUI_LANGDLL_DISPLAY FunctionEnd Function un.onInit @@ -304,4 +304,4 @@ Function un.onInit !endif !insertmacro MULTIUSER_UNINIT !insertmacro MUI_UNGETLANGUAGE -FunctionEnd \ No newline at end of file +FunctionEnd diff --git a/win_version_info.temp b/win_version_info.temp index 7a3ee4ec..28f0fd47 100644 --- a/win_version_info.temp +++ b/win_version_info.temp @@ -37,7 +37,7 @@ VSVersionInfo( StringStruct(u'OriginalFilename', u'dupeguru-win{3}.exe'), StringStruct(u'ProductName', u'dupeGuru'), StringStruct(u'ProductVersion', u'{0}.{1}.{2}.0')]) - ]), + ]), VarFileInfo([VarStruct(u'Translation', [1033, 1200])]) ] ) From 78f4145910bca096be92013f387b7946ea45e1e5 Mon Sep 17 00:00:00 2001 From: Andrew Senetar Date: Mon, 9 Jan 2023 23:02:19 -0600 Subject: [PATCH 5/5] chore: Remove unused qtlib.pot file --- locale/qtlib.pot | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 locale/qtlib.pot diff --git a/locale/qtlib.pot b/locale/qtlib.pot deleted file mode 100644 index 51dee467..00000000 --- a/locale/qtlib.pot +++ /dev/null @@ -1,6 +0,0 @@ - -msgid "" -msgstr "" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: utf-8\n" -