1
0
mirror of https://github.com/arsenetar/dupeguru.git synced 2025-05-08 17:59:50 +00:00

Compare commits

..

1 Commits

50 changed files with 946 additions and 978 deletions

View File

@ -4,6 +4,7 @@ name: Default CI/CD
on: on:
push: push:
branches: [master]
pull_request: pull_request:
branches: [master] branches: [master]
@ -11,35 +12,46 @@ jobs:
pre-commit: pre-commit:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v3
- name: Set up Python 3.12 - name: Set up Python 3.11
uses: actions/setup-python@v5 uses: actions/setup-python@v4
with: with:
python-version: "3.12" python-version: "3.11"
- uses: pre-commit/action@v3.0.1 - uses: pre-commit/action@v3.0.0
test: test:
needs: [pre-commit] needs: [pre-commit]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest] os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12"] python-version: [3.7, 3.8, 3.9, "3.10", "3.11"]
include: exclude:
- os: windows-latest
python-version: "3.12"
- os: macos-latest - os: macos-latest
python-version: "3.12" python-version: 3.7
- os: macos-latest
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: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }} - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5 uses: actions/setup-python@v4
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install setuptools
pip install -r requirements.txt -r requirements-extra.txt pip install -r requirements.txt -r requirements-extra.txt
- name: Build python modules - name: Build python modules
run: | run: |
@ -49,7 +61,7 @@ jobs:
pytest core hscommon pytest core hscommon
- name: Upload Artifacts - name: Upload Artifacts
if: matrix.os == 'ubuntu-latest' if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3
with: with:
name: modules ${{ matrix.python-version }} name: modules ${{ matrix.python-version }}
path: ${{ github.workspace }}/**/*.so path: ${{ github.workspace }}/**/*.so

View File

@ -1,26 +0,0 @@
# Push translation source to Transifex
name: Transifex Sync
on:
push:
branches:
- master
paths:
- locale/*.pot
env:
TX_VERSION: "v1.6.10"
jobs:
push-source:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get Transifex Client
run: |
curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash -s -- $TX_VERSION
- name: Update & Push Translation Sources
env:
TX_TOKEN: ${{ secrets.TX_TOKEN }}
run: |
./tx push -s --use-git-timestamps

View File

@ -1,6 +1,6 @@
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0 rev: v2.3.0
hooks: hooks:
- id: check-yaml - id: check-yaml
- id: check-toml - id: check-toml
@ -8,16 +8,16 @@ repos:
exclude: ".*.json" exclude: ".*.json"
- id: trailing-whitespace - id: trailing-whitespace
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 24.2.0 rev: 22.10.0
hooks: hooks:
- id: black - id: black
- repo: https://github.com/PyCQA/flake8 - repo: https://github.com/PyCQA/flake8
rev: 7.0.0 rev: 6.0.0
hooks: hooks:
- id: flake8 - id: flake8
exclude: ^(.tox|env|build|dist|help|qt/dg_rc.py|pkg).* exclude: ^(.tox|env|build|dist|help|qt/dg_rc.py|pkg).*
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook - repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
rev: v9.11.0 rev: v9.3.0
hooks: hooks:
- id: commitlint - id: commitlint
stages: [commit-msg] stages: [commit-msg]

View File

@ -3,8 +3,7 @@
"recommendations": [ "recommendations": [
"redhat.vscode-yaml", "redhat.vscode-yaml",
"ms-python.vscode-pylance", "ms-python.vscode-pylance",
"ms-python.python", "ms-python.python"
"ms-python.black-formatter",
], ],
// List of extensions recommended by VS Code that should not be recommended for // List of extensions recommended by VS Code that should not be recommended for
// users of this workspace. // users of this workspace.

View File

@ -1,4 +1,5 @@
{ {
"python.formatting.provider": "black",
"cSpell.words": [ "cSpell.words": [
"Dupras", "Dupras",
"hscommon" "hscommon"
@ -9,8 +10,4 @@
], ],
"python.languageServer": "Pylance", "python.languageServer": "Pylance",
"yaml.schemaStore.enable": true, "yaml.schemaStore.enable": true,
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.black-formatter"
}
} }

View File

@ -187,7 +187,7 @@ class Directories:
for path in self._dirs: for path in self._dirs:
for file in self._get_files(path, fileclasses=fileclasses, j=j): for file in self._get_files(path, fileclasses=fileclasses, j=j):
file_count += 1 file_count += 1
if not isinstance(j, job.NullJob): if type(j) != job.NullJob:
j.set_progress(-1, tr("Collected {} files to scan").format(file_count)) j.set_progress(-1, tr("Collected {} files to scan").format(file_count))
yield file yield file
@ -203,7 +203,7 @@ class Directories:
from_folder = folderclass(path) from_folder = folderclass(path)
for folder in self._get_folders(from_folder, j): for folder in self._get_folders(from_folder, j):
folder_count += 1 folder_count += 1
if not isinstance(j, job.NullJob): if type(j) != job.NullJob:
j.set_progress(-1, tr("Collected {} folders to scan").format(folder_count)) j.set_progress(-1, tr("Collected {} folders to scan").format(folder_count))
yield folder yield folder

View File

@ -18,11 +18,7 @@ class SqliteCache:
schema_version = 2 schema_version = 2
schema_version_description = "Added blocks for all 8 orientations." schema_version_description = "Added blocks for all 8 orientations."
create_table_query = ( create_table_query = "CREATE TABLE IF NOT EXISTS pictures(path TEXT, mtime_ns INTEGER, blocks BLOB, blocks2 BLOB, blocks3 BLOB, blocks4 BLOB, blocks5 BLOB, blocks6 BLOB, blocks7 BLOB, blocks8 BLOB)"
"CREATE TABLE IF NOT EXISTS "
"pictures(path TEXT, mtime_ns INTEGER, blocks BLOB, blocks2 BLOB, blocks3 BLOB, "
"blocks4 BLOB, blocks5 BLOB, blocks6 BLOB, blocks7 BLOB, blocks8 BLOB)"
)
create_index_query = "CREATE INDEX IF NOT EXISTS idx_path on pictures (path)" create_index_query = "CREATE INDEX IF NOT EXISTS idx_path on pictures (path)"
drop_table_query = "DROP TABLE IF EXISTS pictures" drop_table_query = "DROP TABLE IF EXISTS pictures"
drop_index_query = "DROP INDEX IF EXISTS idx_path" drop_index_query = "DROP INDEX IF EXISTS idx_path"
@ -47,17 +43,9 @@ class SqliteCache:
# Optimized # Optimized
def __getitem__(self, key): def __getitem__(self, key):
if isinstance(key, int): if isinstance(key, int):
sql = ( sql = "select blocks, blocks2, blocks3, blocks4, blocks5, blocks6, blocks7, blocks8 from pictures where rowid = ?"
"select blocks, blocks2, blocks3, blocks4, blocks5, blocks6, blocks7, blocks8 "
"from pictures "
"where rowid = ?"
)
else: else:
sql = ( sql = "select blocks, blocks2, blocks3, blocks4, blocks5, blocks6, blocks7, blocks8 from pictures where path = ?"
"select blocks, blocks2, blocks3, blocks4, blocks5, blocks6, blocks7, blocks8 "
"from pictures "
"where path = ?"
)
blocks = self.con.execute(sql, [key]).fetchone() blocks = self.con.execute(sql, [key]).fetchone()
if blocks: if blocks:
result = [bytes_to_colors(block) for block in blocks] result = [bytes_to_colors(block) for block in blocks]
@ -82,16 +70,9 @@ class SqliteCache:
else: else:
mtime = 0 mtime = 0
if path_str in self: if path_str in self:
sql = ( sql = "update pictures set blocks = ?, blocks2 = ?, blocks3 = ?, blocks4 = ?, blocks5 = ?, blocks6 = ?, blocks7 = ?, blocks8 = ?, mtime_ns = ? where path = ?"
"update pictures set blocks = ?, blocks2 = ?, blocks3 = ?, blocks4 = ?, blocks5 = ?, blocks6 = ?, "
"blocks7 = ?, blocks8 = ?, mtime_ns = ?"
"where path = ?"
)
else: else:
sql = ( sql = "insert into pictures(blocks,blocks2,blocks3,blocks4,blocks5,blocks6,blocks7,blocks8,mtime_ns,path) values(?,?,?,?,?,?,?,?,?,?)"
"insert into pictures(blocks,blocks2,blocks3,blocks4,blocks5,blocks6,blocks7,blocks8,mtime_ns,path) "
"values(?,?,?,?,?,?,?,?,?,?)"
)
try: try:
self.con.execute(sql, blocks + [mtime, path_str]) self.con.execute(sql, blocks + [mtime, path_str])
except sqlite.OperationalError: except sqlite.OperationalError:
@ -155,28 +136,9 @@ class SqliteCache:
raise ValueError(path) raise ValueError(path)
def get_multiple(self, rowids): def get_multiple(self, rowids):
ids = ",".join(map(str, rowids)) sql = "select rowid, blocks, blocks2, blocks3, blocks4, blocks5, blocks6, blocks7, blocks8 from pictures where rowid in (%s)" % ",".join(map(str, rowids))
sql = (
"select rowid, blocks, blocks2, blocks3, blocks4, blocks5, blocks6, blocks7, blocks8 "
f"from pictures where rowid in {ids}"
)
cur = self.con.execute(sql) cur = self.con.execute(sql)
return ( return ((rowid, [bytes_to_colors(blocks), bytes_to_colors(blocks2), bytes_to_colors(blocks3), bytes_to_colors(blocks4), bytes_to_colors(blocks5), bytes_to_colors(blocks6), bytes_to_colors(blocks7), bytes_to_colors(blocks8)]) for rowid, blocks, blocks2, blocks3, blocks4, blocks5, blocks6, blocks7, blocks8 in cur)
(
rowid,
[
bytes_to_colors(blocks),
bytes_to_colors(blocks2),
bytes_to_colors(blocks3),
bytes_to_colors(blocks4),
bytes_to_colors(blocks5),
bytes_to_colors(blocks6),
bytes_to_colors(blocks7),
bytes_to_colors(blocks8),
],
)
for rowid, blocks, blocks2, blocks3, blocks4, blocks5, blocks6, blocks7, blocks8 in cur
)
def purge_outdated(self): def purge_outdated(self):
"""Go through the cache and purge outdated records. """Go through the cache and purge outdated records.

View File

@ -71,10 +71,7 @@ class TestCasegetwords:
def test_unicode(self): def test_unicode(self):
eq_(["e", "c", "0", "a", "o", "u", "e", "u"], getwords("é ç 0 à ö û è ¤ ù")) eq_(["e", "c", "0", "a", "o", "u", "e", "u"], getwords("é ç 0 à ö û è ¤ ù"))
eq_( eq_(["02", "君のこころは輝いてるかい?", "国木田花丸", "solo", "ver"], getwords("02 君のこころは輝いてるかい? 国木田花丸 Solo Ver"))
["02", "君のこころは輝いてるかい?", "国木田花丸", "solo", "ver"],
getwords("02 君のこころは輝いてるかい? 国木田花丸 Solo Ver"),
)
def test_splitter_chars(self): def test_splitter_chars(self):
eq_( eq_(

View File

@ -242,12 +242,12 @@ def test_content_scan_doesnt_put_digest_in_words_at_the_end(fake_fileexists):
s = Scanner() s = Scanner()
s.scan_type = ScanType.CONTENTS s.scan_type = ScanType.CONTENTS
f = [no("foo"), no("bar")] f = [no("foo"), no("bar")]
f[0].digest = f[0].digest_partial = f[0].digest_samples = ( f[0].digest = f[0].digest_partial = f[
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 0
) ].digest_samples = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
f[1].digest = f[1].digest_partial = f[1].digest_samples = ( f[1].digest = f[1].digest_partial = f[
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 1
) ].digest_samples = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
r = s.get_dupe_groups(f) r = s.get_dupe_groups(f)
# FIXME looks like we are missing something here? # FIXME looks like we are missing something here?
r[0] r[0]

View File

@ -15,8 +15,7 @@
# #
import os import os
import importlib.machinery import imp
import importlib.util
import sys import sys
import glob import glob
import token import token
@ -111,7 +110,7 @@ def _visit_pyfiles(list, dirname, names):
# get extension for python source files # get extension for python source files
if "_py_ext" not in globals(): if "_py_ext" not in globals():
global _py_ext global _py_ext
_py_ext = importlib.machinery.SOURCE_SUFFIXES[0] _py_ext = [triple[0] for triple in imp.get_suffixes() if triple[2] == imp.PY_SOURCE][0]
# don't recurse into CVS directories # don't recurse into CVS directories
if "CVS" in names: if "CVS" in names:
@ -121,6 +120,45 @@ def _visit_pyfiles(list, dirname, names):
list.extend([os.path.join(dirname, file) for file in names if os.path.splitext(file)[1] == _py_ext]) list.extend([os.path.join(dirname, file) for file in names if os.path.splitext(file)[1] == _py_ext])
def _get_modpkg_path(dotted_name, pathlist=None):
"""Get the filesystem path for a module or a package.
Return the file system path to a file for a module, and to a directory for
a package. Return None if the name is not found, or is a builtin or
extension module.
"""
# split off top-most name
parts = dotted_name.split(".", 1)
if len(parts) > 1:
# we have a dotted path, import top-level package
try:
file, pathname, description = imp.find_module(parts[0], pathlist)
if file:
file.close()
except ImportError:
return None
# check if it's indeed a package
if description[2] == imp.PKG_DIRECTORY:
# recursively handle the remaining name parts
pathname = _get_modpkg_path(parts[1], [pathname])
else:
pathname = None
else:
# plain name
try:
file, pathname, description = imp.find_module(dotted_name, pathlist)
if file:
file.close()
if description[2] not in [imp.PY_SOURCE, imp.PKG_DIRECTORY]:
pathname = None
except ImportError:
pathname = None
return pathname
def getFilesForName(name): def getFilesForName(name):
"""Get a list of module files for a filename, a module or package name, """Get a list of module files for a filename, a module or package name,
or a directory. or a directory.
@ -135,11 +173,7 @@ def getFilesForName(name):
return file_list return file_list
# try to find module or package # try to find module or package
try: name = _get_modpkg_path(name)
spec = importlib.util.find_spec(name)
name = spec.origin
except ImportError:
name = None
if not name: if not name:
return [] return []

View File

@ -36,91 +36,91 @@ msgstr ""
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "" msgstr ""
#: core\app.py:289 #: core\app.py:293
msgid "A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again." msgid "A previous action is still hanging in there. You can't start a new one yet. Wait a few seconds, then try again."
msgstr "" msgstr ""
#: core\app.py:300 #: core\app.py:304
msgid "No duplicates found." msgid "No duplicates found."
msgstr "" msgstr ""
#: core\app.py:315 #: core\app.py:319
msgid "All marked files were copied successfully." msgid "All marked files were copied successfully."
msgstr "" msgstr ""
#: core\app.py:317 #: core\app.py:321
msgid "All marked files were moved successfully." msgid "All marked files were moved successfully."
msgstr "" msgstr ""
#: core\app.py:319 #: core\app.py:323
msgid "All marked files were deleted successfully." msgid "All marked files were deleted successfully."
msgstr "" msgstr ""
#: core\app.py:321 #: core\app.py:325
msgid "All marked files were successfully sent to Trash." msgid "All marked files were successfully sent to Trash."
msgstr "" msgstr ""
#: core\app.py:326 #: core\app.py:330
msgid "Could not load file: {}" msgid "Could not load file: {}"
msgstr "" msgstr ""
#: core\app.py:382 #: core\app.py:386
msgid "'{}' already is in the list." msgid "'{}' already is in the list."
msgstr "" msgstr ""
#: core\app.py:384 #: core\app.py:388
msgid "'{}' does not exist." msgid "'{}' does not exist."
msgstr "" msgstr ""
#: core\app.py:392 #: core\app.py:396
msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?" msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?"
msgstr "" msgstr ""
#: core\app.py:469 #: core\app.py:473
msgid "Select a directory to copy marked files to" msgid "Select a directory to copy marked files to"
msgstr "" msgstr ""
#: core\app.py:471 #: core\app.py:475
msgid "Select a directory to move marked files to" msgid "Select a directory to move marked files to"
msgstr "" msgstr ""
#: core\app.py:510 #: core\app.py:514
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "" msgstr ""
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:520 core\app.py:781 core\app.py:791
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "" msgstr ""
#: core\app.py:539 #: core\app.py:543
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
#: core\app.py:701 core\app.py:713 #: core\app.py:705 core\app.py:717
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "" msgstr ""
#: core\app.py:749 #: core\app.py:753
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "" msgstr ""
#: core\app.py:797 #: core\app.py:801
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "" msgstr ""
#: core\app.py:813 #: core\app.py:817
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "" msgstr ""
#: core\app.py:863 #: core\app.py:867
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "" msgstr ""
#: core\directories.py:191 #: core\directories.py:190
msgid "Collected {} files to scan" msgid "Collected {} files to scan"
msgstr "" msgstr ""
#: core\directories.py:207 #: core\directories.py:206
msgid "Collected {} folders to scan" msgid "Collected {} folders to scan"
msgstr "" msgstr ""
@ -156,23 +156,23 @@ msgstr ""
msgid "Tags" msgid "Tags"
msgstr "" msgstr ""
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "" msgstr ""
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "" msgstr ""
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "" msgstr ""
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "" msgstr ""
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "" msgstr ""
@ -180,7 +180,7 @@ msgstr ""
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "" msgstr ""
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "" msgstr ""
@ -220,19 +220,23 @@ msgstr ""
msgid "Oldest" msgid "Oldest"
msgstr "" msgstr ""
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "" msgstr ""
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "" msgstr ""
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr ""
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "" msgstr ""
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "" msgstr ""

View File

@ -5,21 +5,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
"Language-Team: Czech (https://app.transifex.com/voltaicideas/teams/116153/cs/)\n" "Language-Team: Czech (https://www.transifex.com/voltaicideas/teams/116153/cs/)\n"
"Language: cs\n" "Language: cs\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Neexistují žádné označené duplikáty. Nic se nestalo." msgstr "Neexistují žádné označené duplikáty. Nic se nestalo."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Nejsou k dispozici žádné vybrané duplikáty. Nic se nestalo." msgstr "Nejsou k dispozici žádné vybrané duplikáty. Nic se nestalo."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -27,23 +27,23 @@ msgstr ""
"Chystáte se otevřít více souborů najednou. V závislosti na tom, s čím jsou " "Chystáte se otevřít více souborů najednou. V závislosti na tom, s čím jsou "
"tyto soubory otevřeny, to může způsobit docela nepořádek. Pokračovat?" "tyto soubory otevřeny, to může způsobit docela nepořádek. Pokračovat?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Vyhledávám duplicity" msgstr "Vyhledávám duplicity"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Nahrávám" msgstr "Nahrávám"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Přesouvám" msgstr "Přesouvám"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Kopíruji" msgstr "Kopíruji"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Vyhazuji do koše" msgstr "Vyhazuji do koše"
@ -107,7 +107,7 @@ msgstr "Vyberte adresář, kam chcete přesunout označené soubory"
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Vyberte cíl pro exportovaný soubor CSV" msgstr "Vyberte cíl pro exportovaný soubor CSV"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Nelze zapisovat do souboru: {}" msgstr "Nelze zapisovat do souboru: {}"
@ -116,23 +116,23 @@ msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách." "Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?" msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} duplicitní skupiny byly změněny změně priorit." msgstr "{} duplicitní skupiny byly změněny změně priorit."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání." msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Shromažďuji prohlížené soubory" msgstr "Shromažďuji prohlížené soubory"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d vyřazeno)" msgstr "%s (%d vyřazeno)"
@ -176,23 +176,23 @@ msgstr "Název souboru - pole (bez objednávky)"
msgid "Tags" msgid "Tags"
msgstr "Tagy" msgstr "Tagy"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Obsah" msgstr "Obsah"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Analyzováno %d/%d snímků" msgstr "Analyzováno %d/%d snímků"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Provedeno %d/%d porovnání bloků" msgstr "Provedeno %d/%d porovnání bloků"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Připravuji porovnávání" msgstr "Připravuji porovnávání"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Ověřeno %d/%d shod" msgstr "Ověřeno %d/%d shod"
@ -200,7 +200,7 @@ msgstr "Ověřeno %d/%d shod"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Přečetl EXIF %d/%d obrázků" msgstr "Přečetl EXIF %d/%d obrázků"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Časové razítko EXIF" msgstr "Časové razítko EXIF"
@ -208,51 +208,55 @@ msgstr "Časové razítko EXIF"
msgid "None" msgid "None"
msgstr "Zádný" msgstr "Zádný"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Končí číslem" msgstr "Končí číslem"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Nekončí číslem" msgstr "Nekončí číslem"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Nejdelší" msgstr "Nejdelší"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Nejkratší" msgstr "Nejkratší"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Nejvyšší" msgstr "Nejvyšší"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Nejnižší" msgstr "Nejnižší"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Nejnovější" msgstr "Nejnovější"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Nejstarší" msgstr "Nejstarší"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) duplicit označeno." msgstr "%d / %d (%s / %s) duplicit označeno."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " filtr: %s" msgstr " filtr: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Read size of %d/%d files"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Načtena metadata %d/%d souborů" msgstr "Načtena metadata %d/%d souborů"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Skoro hotovo! Fidlování s výsledky..." msgstr "Skoro hotovo! Fidlování s výsledky..."

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: Czech (https://app.transifex.com/voltaicideas/teams/116153/cs/)\n" "Language-Team: Czech (https://app.transifex.com/voltaicideas/teams/116153/cs/)\n"
"Language: cs\n" "Language: cs\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1160,7 +1160,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -6,21 +6,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Robert M, 2021\n" "Last-Translator: Robert M, 2021\n"
"Language-Team: German (https://app.transifex.com/voltaicideas/teams/116153/de/)\n" "Language-Team: German (https://www.transifex.com/voltaicideas/teams/116153/de/)\n"
"Language: de\n" "Language: de\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Keine markierten Duplikate, daher wurde nichts getan." msgstr "Keine markierten Duplikate, daher wurde nichts getan."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Keine ausgewählten Duplikate, daher wurde nichts getan." msgstr "Keine ausgewählten Duplikate, daher wurde nichts getan."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -28,23 +28,23 @@ msgstr ""
"Sie sind dabei, sehr viele Dateien gleichzeitig zu öffnen. Das kann zu " "Sie sind dabei, sehr viele Dateien gleichzeitig zu öffnen. Das kann zu "
"ziemlichem Durcheinander führen! Trotzdem fortfahren?" "ziemlichem Durcheinander führen! Trotzdem fortfahren?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Suche nach Duplikaten" msgstr "Suche nach Duplikaten"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Lade" msgstr "Lade"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Verschiebe" msgstr "Verschiebe"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Kopiere" msgstr "Kopiere"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Verschiebe in den Papierkorb" msgstr "Verschiebe in den Papierkorb"
@ -113,7 +113,7 @@ msgstr ""
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Zielverzeichnis für den CSV Export angeben" msgstr "Zielverzeichnis für den CSV Export angeben"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Konnte Datei {} nicht schreiben." msgstr "Konnte Datei {} nicht schreiben."
@ -123,23 +123,23 @@ msgstr ""
"Sie haben noch keinen Befehl erstellt. Bitte dies in den Einstellungen vornehmen.\n" "Sie haben noch keinen Befehl erstellt. Bitte dies in den Einstellungen vornehmen.\n"
"Bsp.: \"C:\\Program Files\\Diff\\Diff.exe\" \"%d\" \"%r\"" "Bsp.: \"C:\\Program Files\\Diff\\Diff.exe\" \"%d\" \"%r\""
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?" msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} Duplikat-Gruppen wurden durch die Neu-Priorisierung geändert." msgstr "{} Duplikat-Gruppen wurden durch die Neu-Priorisierung geändert."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Ausgewählte Ordner enthalten keine scannbaren Dateien." msgstr "Ausgewählte Ordner enthalten keine scannbaren Dateien."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Sammle zu scannende Dateien..." msgstr "Sammle zu scannende Dateien..."
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d verworfen)" msgstr "%s (%d verworfen)"
@ -183,23 +183,23 @@ msgstr "Dateiname - Bereiche (ohne Reihenfolge)"
msgid "Tags" msgid "Tags"
msgstr "Tags" msgstr "Tags"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Inhalt" msgstr "Inhalt"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Analysiere Bild %d/%d" msgstr "Analysiere Bild %d/%d"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "%d/%d Chunk-Matches ausgeführt" msgstr "%d/%d Chunk-Matches ausgeführt"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Bereite Matching vor" msgstr "Bereite Matching vor"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "%d/%d verifizierte Übereinstimmungen" msgstr "%d/%d verifizierte Übereinstimmungen"
@ -207,7 +207,7 @@ msgstr "%d/%d verifizierte Übereinstimmungen"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Lese EXIF von Bild %d/%d" msgstr "Lese EXIF von Bild %d/%d"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "EXIF Zeitstempel" msgstr "EXIF Zeitstempel"
@ -215,51 +215,55 @@ msgstr "EXIF Zeitstempel"
msgid "None" msgid "None"
msgstr "Nichts" msgstr "Nichts"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Endet mit Zahl" msgstr "Endet mit Zahl"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Endet nicht mit Zahl" msgstr "Endet nicht mit Zahl"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Längste" msgstr "Längste"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Kürzeste" msgstr "Kürzeste"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Höchste" msgstr "Höchste"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Niedrigste" msgstr "Niedrigste"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Neuste" msgstr "Neuste"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Älterste" msgstr "Älterste"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) Duplikate markiert." msgstr "%d / %d (%s / %s) Duplikate markiert."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " Filter: %s" msgstr " Filter: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Lese Größe von %d/%d Dateien"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Lese Metadaten von %d/%d Dateien" msgstr "Lese Metadaten von %d/%d Dateien"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Fast fertig! Arrangiere Ergebnisse..." msgstr "Fast fertig! Arrangiere Ergebnisse..."

View File

@ -1,12 +1,12 @@
# Translators: # Translators:
# Robert M, 2022 # Robert M, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Frederik Gschaider <frederik.gschaider@gmail.com>, 2022 # Frederik Gschaider <frederik.gschaider@gmail.com>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Frederik Gschaider <frederik.gschaider@gmail.com>, 2022\n"
"Language-Team: German (https://app.transifex.com/voltaicideas/teams/116153/de/)\n" "Language-Team: German (https://app.transifex.com/voltaicideas/teams/116153/de/)\n"
"Language: de\n" "Language: de\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1177,7 +1177,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -5,21 +5,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
"Language-Team: Greek (https://app.transifex.com/voltaicideas/teams/116153/el/)\n" "Language-Team: Greek (https://www.transifex.com/voltaicideas/teams/116153/el/)\n"
"Language: el\n" "Language: el\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Δεν υπάρχουν μαρκαρισμένα διπλότυπα. Δεν έγινε τίποτα." msgstr "Δεν υπάρχουν μαρκαρισμένα διπλότυπα. Δεν έγινε τίποτα."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Δεν υπάρχουν επιλεγμένα διπλότυπα. Δεν έγινε τίποτα." msgstr "Δεν υπάρχουν επιλεγμένα διπλότυπα. Δεν έγινε τίποτα."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -28,23 +28,23 @@ msgstr ""
"ανοίγουν αυτάτα αρχεία, κάτι τέτοιο μπορεί να προκαλέσει ένα μικρό χάος. " "ανοίγουν αυτάτα αρχεία, κάτι τέτοιο μπορεί να προκαλέσει ένα μικρό χάος. "
"Συνέχεια;" "Συνέχεια;"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Σάρωση για διπλότυπα" msgstr "Σάρωση για διπλότυπα"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Φόρτωση" msgstr "Φόρτωση"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Μετακίνηση" msgstr "Μετακίνηση"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Αντιγραφή" msgstr "Αντιγραφή"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Αποστολή στα σκουπίδια" msgstr "Αποστολή στα σκουπίδια"
@ -107,7 +107,7 @@ msgstr "Επιλέξτε έναν κατάλογο για να μετακινή
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Επιλέξτε έναν προορισμό για το εξαγόμενο CSV σας" msgstr "Επιλέξτε έναν προορισμό για το εξαγόμενο CSV σας"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Δεν ήταν δυνατή η εγγραφή στο αρχείο: {}" msgstr "Δεν ήταν δυνατή η εγγραφή στο αρχείο: {}"
@ -115,23 +115,23 @@ msgstr "Δεν ήταν δυνατή η εγγραφή στο αρχείο: {}"
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "Δεν έχετε ορίσει ειδική εντολή. Ρυθμίστε τη στις προτιμήσεις σας. " msgstr "Δεν έχετε ορίσει ειδική εντολή. Ρυθμίστε τη στις προτιμήσεις σας. "
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Πρόκειται να αφαιρέσετε %d αρχεία από τα αποτελέσματα. Συνέχεια;" msgstr "Πρόκειται να αφαιρέσετε %d αρχεία από τα αποτελέσματα. Συνέχεια;"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} ομάδες διπλοτύπων άλλαξαν από το επαναπροσδιορισμό." msgstr "{} ομάδες διπλοτύπων άλλαξαν από το επαναπροσδιορισμό."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Οι επιλεγμένοι φάκελοι δεν περιέχουν σαρώσιμα αρχεία." msgstr "Οι επιλεγμένοι φάκελοι δεν περιέχουν σαρώσιμα αρχεία."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Συλλογή αρχείων για σάρωση" msgstr "Συλλογή αρχείων για σάρωση"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d απορρίφθηκαν)" msgstr "%s (%d απορρίφθηκαν)"
@ -175,23 +175,23 @@ msgstr "Όνομα αρχείου - Πεδία (Χωρίς παραγγελία)
msgid "Tags" msgid "Tags"
msgstr "ετικέτα" msgstr "ετικέτα"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Περιεχόμενα" msgstr "Περιεχόμενα"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Ανάλυση %d/%d εικόνων" msgstr "Ανάλυση %d/%d εικόνων"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Εκτέλεση %d/%d μερικής ταυτοποίησης" msgstr "Εκτέλεση %d/%d μερικής ταυτοποίησης"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Προετοιμασία για σύγκριση" msgstr "Προετοιμασία για σύγκριση"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Πιστοποίηση %d/%d ταυτόσημων" msgstr "Πιστοποίηση %d/%d ταυτόσημων"
@ -199,7 +199,7 @@ msgstr "Πιστοποίηση %d/%d ταυτόσημων"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Ανάγνωση EXIF %d/%d εικόνες" msgstr "Ανάγνωση EXIF %d/%d εικόνες"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Χρονική σήμανση EXIF" msgstr "Χρονική σήμανση EXIF"
@ -207,51 +207,55 @@ msgstr "Χρονική σήμανση EXIF"
msgid "None" msgid "None"
msgstr "Καμμία" msgstr "Καμμία"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Λήγει με αριθμό" msgstr "Λήγει με αριθμό"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Δεν λήγει με αριθμό" msgstr "Δεν λήγει με αριθμό"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Μεγαλύτερο" msgstr "Μεγαλύτερο"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Μικρότερο" msgstr "Μικρότερο"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Υψηλότερη" msgstr "Υψηλότερη"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Χαμηλότερη" msgstr "Χαμηλότερη"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Νεώτερο" msgstr "Νεώτερο"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Παλαιότερο" msgstr "Παλαιότερο"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) επιλεγμένα διπλότυπα." msgstr "%d / %d (%s / %s) επιλεγμένα διπλότυπα."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " φίλτρο: %s" msgstr " φίλτρο: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Ανάγνωση μεγέθους %d/%d αρχείων"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Ανάγνωση μεταδεδομένων των %d/%d αρχείων" msgstr "Ανάγνωση μεταδεδομένων των %d/%d αρχείων"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Σχεδόν τελείωσα! Παιχνίδι με αποτελέσματα ..." msgstr "Σχεδόν τελείωσα! Παιχνίδι με αποτελέσματα ..."

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023 # Andrew Senetar <arsenetar@gmail.com>, 2022
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2022\n"
"Language-Team: Greek (https://app.transifex.com/voltaicideas/teams/116153/el/)\n" "Language-Team: Greek (https://app.transifex.com/voltaicideas/teams/116153/el/)\n"
"Language: el\n" "Language: el\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1177,7 +1177,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -6,11 +6,11 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: IlluminatiWave, 2022\n" "Last-Translator: IlluminatiWave, 2022\n"
"Language-Team: Spanish (https://app.transifex.com/voltaicideas/teams/116153/es/)\n" "Language-Team: Spanish (https://www.transifex.com/voltaicideas/teams/116153/es/)\n"
"Language: es\n" "Language: es\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: core\app.py:44 #: core\app.py:44
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
@ -48,7 +48,7 @@ msgstr "Copiando"
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Enviando a la Papelera" msgstr "Enviando a la Papelera"
#: core\app.py:289 #: core\app.py:291
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -56,40 +56,40 @@ msgstr ""
"Una acción previa sigue ejecutándose. No puede abrir una nueva todavía. " "Una acción previa sigue ejecutándose. No puede abrir una nueva todavía. "
"Espere unos segundos y vuelva a intentarlo." "Espere unos segundos y vuelva a intentarlo."
#: core\app.py:300 #: core\app.py:302
msgid "No duplicates found." msgid "No duplicates found."
msgstr "No se han encontrado duplicados." msgstr "No se han encontrado duplicados."
#: core\app.py:315 #: core\app.py:317
msgid "All marked files were copied successfully." msgid "All marked files were copied successfully."
msgstr "" msgstr ""
"Todos los ficheros seleccionados han sido copiados satisfactoriamente." "Todos los ficheros seleccionados han sido copiados satisfactoriamente."
#: core\app.py:317 #: core\app.py:319
msgid "All marked files were moved successfully." msgid "All marked files were moved successfully."
msgstr "Todos los ficheros seleccionados se han movidos satisfactoriamente." msgstr "Todos los ficheros seleccionados se han movidos satisfactoriamente."
#: core\app.py:319 #: core\app.py:321
msgid "All marked files were deleted successfully." msgid "All marked files were deleted successfully."
msgstr "Todos los ficheros seleccionados se han eliminado satisfactoriamente." msgstr "Todos los ficheros seleccionados se han eliminado satisfactoriamente."
#: core\app.py:321 #: core\app.py:323
msgid "All marked files were successfully sent to Trash." msgid "All marked files were successfully sent to Trash."
msgstr "Todo los ficheros marcados se han enviado a la papelera exitosamente." msgstr "Todo los ficheros marcados se han enviado a la papelera exitosamente."
#: core\app.py:326 #: core\app.py:328
msgid "Could not load file: {}" msgid "Could not load file: {}"
msgstr "No se pudo cargar el archivo: {}" msgstr "No se pudo cargar el archivo: {}"
#: core\app.py:382 #: core\app.py:384
msgid "'{}' already is in the list." msgid "'{}' already is in the list."
msgstr "'{}' ya está en la lista." msgstr "'{}' ya está en la lista."
#: core\app.py:384 #: core\app.py:386
msgid "'{}' does not exist." msgid "'{}' does not exist."
msgstr "'{}' no existe." msgstr "'{}' no existe."
#: core\app.py:392 #: core\app.py:394
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
@ -97,51 +97,51 @@ msgstr ""
"Todas las %d coincidencias seleccionadas van a ser ignoradas en las " "Todas las %d coincidencias seleccionadas van a ser ignoradas en las "
"subsiguientes exploraciones. ¿Continuar?" "subsiguientes exploraciones. ¿Continuar?"
#: core\app.py:469 #: core\app.py:471
msgid "Select a directory to copy marked files to" msgid "Select a directory to copy marked files to"
msgstr "Seleccione un directorio donde desee copiar los archivos marcados" msgstr "Seleccione un directorio donde desee copiar los archivos marcados"
#: core\app.py:471 #: core\app.py:473
msgid "Select a directory to move marked files to" msgid "Select a directory to move marked files to"
msgstr "Seleccione un directorio al que desee mover los archivos marcados" msgstr "Seleccione un directorio al que desee mover los archivos marcados"
#: core\app.py:510 #: core\app.py:512
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Seleccionar un destino para el CSV seleccionado" msgstr "Seleccionar un destino para el CSV seleccionado"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:518 core\app.py:773 core\app.py:783
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "No se pudo escribir en el archivo: {}" msgstr "No se pudo escribir en el archivo: {}"
#: core\app.py:539 #: core\app.py:541
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "No hay comandos configurados. Establézcalos en sus preferencias." msgstr "No hay comandos configurados. Establézcalos en sus preferencias."
#: core\app.py:701 core\app.py:713 #: core\app.py:697 core\app.py:709
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Está a punto de eliminar %d ficheros de resultados. ¿Continuar?" msgstr "Está a punto de eliminar %d ficheros de resultados. ¿Continuar?"
#: core\app.py:749 #: core\app.py:745
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} grupos de duplicados han sido cambiados por la re-priorización." msgstr "{} grupos de duplicados han sido cambiados por la re-priorización."
#: core\app.py:797 #: core\app.py:792
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Las carpetas seleccionadas no contienen ficheros para explorar." msgstr "Las carpetas seleccionadas no contienen ficheros para explorar."
#: core\app.py:813 #: core\app.py:808
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Recopilando ficheros a explorar" msgstr "Recopilando ficheros a explorar"
#: core\app.py:863 #: core\app.py:858
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d descartados)" msgstr "%s (%d descartados)"
#: core\directories.py:191 #: core\directories.py:190
msgid "Collected {} files to scan" msgid "Collected {} files to scan"
msgstr "{} ficheros recopilados para explorar" msgstr "{} ficheros recopilados para explorar"
#: core\directories.py:207 #: core\directories.py:206
msgid "Collected {} folders to scan" msgid "Collected {} folders to scan"
msgstr "{} carpetas recopiladas para explorar" msgstr "{} carpetas recopiladas para explorar"
@ -178,23 +178,23 @@ msgstr "Nombre de archivo - Campos (sin orden)"
msgid "Tags" msgid "Tags"
msgstr "Etiquetas" msgstr "Etiquetas"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Contenido" msgstr "Contenido"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Analizadas %d/%d imágenes" msgstr "Analizadas %d/%d imágenes"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Realizado %d/%d trozos coincidentes" msgstr "Realizado %d/%d trozos coincidentes"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Preparando para coincidencias" msgstr "Preparando para coincidencias"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Verificadas %d/%d coincidencias" msgstr "Verificadas %d/%d coincidencias"
@ -202,7 +202,7 @@ msgstr "Verificadas %d/%d coincidencias"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Leído EXIF de %d/%d imágenes" msgstr "Leído EXIF de %d/%d imágenes"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Marca horaria EXIF" msgstr "Marca horaria EXIF"
@ -242,19 +242,23 @@ msgstr "El más nuevo"
msgid "Oldest" msgid "Oldest"
msgstr "El más antiguo" msgstr "El más antiguo"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) duplicados marcados." msgstr "%d / %d (%s / %s) duplicados marcados."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "filtro: %s" msgstr "filtro: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Tamaño de lectura de %d/%d ficheros"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Leyendo metadatos de %d/%d ficheros" msgstr "Leyendo metadatos de %d/%d ficheros"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "¡Casi termino! Jugando con los resultados..." msgstr "¡Casi termino! Jugando con los resultados..."

View File

@ -5,21 +5,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
"Language-Team: French (https://app.transifex.com/voltaicideas/teams/116153/fr/)\n" "Language-Team: French (https://www.transifex.com/voltaicideas/teams/116153/fr/)\n"
"Language: fr\n" "Language: fr\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Aucun doublon marqué. Rien à faire." msgstr "Aucun doublon marqué. Rien à faire."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Aucun doublon sélectionné. Rien à faire." msgstr "Aucun doublon sélectionné. Rien à faire."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -27,23 +27,23 @@ msgstr ""
"Beaucoup de fichiers seront ouverts en même temps. Cela peut gravement " "Beaucoup de fichiers seront ouverts en même temps. Cela peut gravement "
"encombrer votre système. Continuer?" "encombrer votre système. Continuer?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Scan de doublons en cours" msgstr "Scan de doublons en cours"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Chargement en cours" msgstr "Chargement en cours"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Déplacement en cours" msgstr "Déplacement en cours"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Copie en cours" msgstr "Copie en cours"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Envoi de fichiers à la corbeille" msgstr "Envoi de fichiers à la corbeille"
@ -106,7 +106,7 @@ msgstr "Sélectionnez un dossier vers lequel déplacer les fichiers marqués."
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Choisissez une destination pour votre exportation CSV" msgstr "Choisissez une destination pour votre exportation CSV"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Impossible d'écrire le fichier: {}" msgstr "Impossible d'écrire le fichier: {}"
@ -115,23 +115,23 @@ msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences." "Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "%d fichiers seront retirés des résultats. Continuer?" msgstr "%d fichiers seront retirés des résultats. Continuer?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} groupes de doublons ont été modifiés par la re-prioritisation." msgstr "{} groupes de doublons ont été modifiés par la re-prioritisation."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides." msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Collecte des fichiers à scanner" msgstr "Collecte des fichiers à scanner"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d hors-groupe)" msgstr "%s (%d hors-groupe)"
@ -177,23 +177,23 @@ msgstr "Nom de fichier - Champs (sans ordre)"
msgid "Tags" msgid "Tags"
msgstr "Tags" msgstr "Tags"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Contenu" msgstr "Contenu"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Analyzé %d/%d images" msgstr "Analyzé %d/%d images"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "%d/%d blocs d'images comparés" msgstr "%d/%d blocs d'images comparés"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Préparation pour la comparaison" msgstr "Préparation pour la comparaison"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Vérifié %d/%d paires" msgstr "Vérifié %d/%d paires"
@ -201,7 +201,7 @@ msgstr "Vérifié %d/%d paires"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Lu l'EXIF de %d/%d images" msgstr "Lu l'EXIF de %d/%d images"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Date EXIF" msgstr "Date EXIF"
@ -209,51 +209,55 @@ msgstr "Date EXIF"
msgid "None" msgid "None"
msgstr "Aucune" msgstr "Aucune"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Chiffres à la fin" msgstr "Chiffres à la fin"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Pas de chiffres à la finr" msgstr "Pas de chiffres à la finr"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Le plus long" msgstr "Le plus long"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Le plus court" msgstr "Le plus court"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Plus grand" msgstr "Plus grand"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Moins grand" msgstr "Moins grand"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Plus récent" msgstr "Plus récent"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Moins récent" msgstr "Moins récent"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) doublons marqués." msgstr "%d / %d (%s / %s) doublons marqués."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " filtre: %s" msgstr " filtre: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Lu la taille de %d/%d fichiers"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Lu les métadonnées de %d/%d fichiers" msgstr "Lu les métadonnées de %d/%d fichiers"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Bientôt terminé! Bidouille des résultats..." msgstr "Bientôt terminé! Bidouille des résultats..."

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: French (https://app.transifex.com/voltaicideas/teams/116153/fr/)\n" "Language-Team: French (https://app.transifex.com/voltaicideas/teams/116153/fr/)\n"
"Language: fr\n" "Language: fr\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1165,7 +1165,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -5,21 +5,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
"Language-Team: Armenian (https://app.transifex.com/voltaicideas/teams/116153/hy/)\n" "Language-Team: Armenian (https://www.transifex.com/voltaicideas/teams/116153/hy/)\n"
"Language: hy\n" "Language: hy\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Նշված կրկնօրինակներ չկան: Ոչինչ չի արվել." msgstr "Նշված կրկնօրինակներ չկան: Ոչինչ չի արվել."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Ընտրված կրկնօրինակներ չկան: Ոչինչ չի արվել." msgstr "Ընտրված կրկնօրինակներ չկան: Ոչինչ չի արվել."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -28,23 +28,23 @@ msgstr ""
"են բացվում այդ ֆայլերը, դա անելը կարող է բավականին խառնաշփոթ ստեղծել: " "են բացվում այդ ֆայլերը, դա անելը կարող է բավականին խառնաշփոթ ստեղծել: "
"Շարունակել?" "Շարունակել?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Ստուգվում են կրկնօրինակները" msgstr "Ստուգվում են կրկնօրինակները"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Բացվում է" msgstr "Բացվում է"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Տեղափոխվում է" msgstr "Տեղափոխվում է"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Պատճենվում է" msgstr "Պատճենվում է"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Ուղարկվում է Աղբարկղ" msgstr "Ուղարկվում է Աղբարկղ"
@ -108,7 +108,7 @@ msgstr ""
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Ընտրեք նպատակակետ ձեր արտահանված CSV- ի համար" msgstr "Ընտրեք նպատակակետ ձեր արտահանված CSV- ի համար"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Չէր կարող գրել է ֆայլը: {}" msgstr "Չէր կարող գրել է ֆայլը: {}"
@ -116,23 +116,23 @@ msgstr "Չէր կարող գրել է ֆայլը: {}"
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "Դուք չեք կատարել Հրամանի ընտրություն: Կատարեք այն կարգավորումներում:" msgstr "Դուք չեք կատարել Հրամանի ընտրություն: Կատարեք այն կարգավորումներում:"
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Դուք պատրաստվում եք ջնջելու %d ֆայլեր: Շարունակե՞լ:" msgstr "Դուք պատրաստվում եք ջնջելու %d ֆայլեր: Շարունակե՞լ:"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} կրկնօրինակ խմբերը փոխվել են առաջնահերթության կարգով:" msgstr "{} կրկնօրինակ խմբերը փոխվել են առաջնահերթության կարգով:"
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Ընտրված թղթապանակները պարունակում են չստուգվող ֆայլ:" msgstr "Ընտրված թղթապանակները պարունակում են չստուգվող ֆայլ:"
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար" msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d անպիտան)" msgstr "%s (%d անպիտան)"
@ -176,23 +176,23 @@ msgstr "Ֆայլի անուն - դաշտեր (պատվեր չկա)"
msgid "Tags" msgid "Tags"
msgstr "Tags" msgstr "Tags"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Բովանդակություն" msgstr "Բովանդակություն"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Ստուգվում է %d/%d նկարները" msgstr "Ստուգվում է %d/%d նկարները"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Կատարվում է %d/%d տվյալի համընկնում" msgstr "Կատարվում է %d/%d տվյալի համընկնում"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Նախապատրաստեցվում է համընկնումը" msgstr "Նախապատրաստեցվում է համընկնումը"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Ստուգում է %d/%d համընկնումները" msgstr "Ստուգում է %d/%d համընկնումները"
@ -200,7 +200,7 @@ msgstr "Ստուգում է %d/%d համընկնումները"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Կարդալ EXIF-ը d/%d նկարներից" msgstr "Կարդալ EXIF-ը d/%d նկարներից"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "EXIF Timestamp" msgstr "EXIF Timestamp"
@ -208,51 +208,55 @@ msgstr "EXIF Timestamp"
msgid "None" msgid "None"
msgstr "Ոչինչ" msgstr "Ոչինչ"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Ավարտվում է թվով" msgstr "Ավարտվում է թվով"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Չի ավարտվում է թվով" msgstr "Չի ավարտվում է թվով"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Ամենաերկար" msgstr "Ամենաերկար"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Ամենակարճը" msgstr "Ամենակարճը"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Ամենաբարձրը" msgstr "Ամենաբարձրը"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Ամենացածրը" msgstr "Ամենացածրը"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Նորագույնը" msgstr "Նորագույնը"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Ամենահինը" msgstr "Ամենահինը"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) նշված կրկնօրինակներ:" msgstr "%d / %d (%s / %s) նշված կրկնօրինակներ:"
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "ֆիլտր. %s" msgstr "ֆիլտր. %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Կարդալ %d/%d ֆայլերի չափը"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Կարդալ %d/%d ֆայլերի մետատվյալները" msgstr "Կարդալ %d/%d ֆայլերի մետատվյալները"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Գրեթե արված է! Արդյունքների կազմակերպում..." msgstr "Գրեթե արված է! Արդյունքների կազմակերպում..."

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: Armenian (https://app.transifex.com/voltaicideas/teams/116153/hy/)\n" "Language-Team: Armenian (https://app.transifex.com/voltaicideas/teams/116153/hy/)\n"
"Language: hy\n" "Language: hy\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1145,7 +1145,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -49,7 +49,7 @@ msgstr "Copia in corso"
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Spostamento nel cestino" msgstr "Spostamento nel cestino"
#: core\app.py:289 #: core\app.py:293
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -57,39 +57,39 @@ msgstr ""
"Un'azione precedente è ancora in corso. Non puoi cominciarne una nuova. " "Un'azione precedente è ancora in corso. Non puoi cominciarne una nuova. "
"Aspetta qualche secondo e quindi riprova." "Aspetta qualche secondo e quindi riprova."
#: core\app.py:300 #: core\app.py:304
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Non sono stati trovati dei duplicati." msgstr "Non sono stati trovati dei duplicati."
#: core\app.py:315 #: core\app.py:319
msgid "All marked files were copied successfully." msgid "All marked files were copied successfully."
msgstr "Tutti i file marcati sono stati copiati correttamente." msgstr "Tutti i file marcati sono stati copiati correttamente."
#: core\app.py:317 #: core\app.py:321
msgid "All marked files were moved successfully." msgid "All marked files were moved successfully."
msgstr "Tutti i file marcati sono stati spostati correttamente." msgstr "Tutti i file marcati sono stati spostati correttamente."
#: core\app.py:319 #: core\app.py:323
msgid "All marked files were deleted successfully." msgid "All marked files were deleted successfully."
msgstr "Tutti i file marcati sono stati cancellati correttamente." msgstr "Tutti i file marcati sono stati cancellati correttamente."
#: core\app.py:321 #: core\app.py:325
msgid "All marked files were successfully sent to Trash." msgid "All marked files were successfully sent to Trash."
msgstr "Tutti i file marcati sono stati spostati nel cestino." msgstr "Tutti i file marcati sono stati spostati nel cestino."
#: core\app.py:326 #: core\app.py:330
msgid "Could not load file: {}" msgid "Could not load file: {}"
msgstr "Impossibile caricare il file: {}" msgstr "Impossibile caricare il file: {}"
#: core\app.py:382 #: core\app.py:386
msgid "'{}' already is in the list." msgid "'{}' already is in the list."
msgstr "'{}' è già nella lista." msgstr "'{}' è già nella lista."
#: core\app.py:384 #: core\app.py:388
msgid "'{}' does not exist." msgid "'{}' does not exist."
msgstr "'{}' non esiste." msgstr "'{}' non esiste."
#: core\app.py:392 #: core\app.py:396
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
@ -97,54 +97,54 @@ msgstr ""
"Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni " "Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni "
"successive. Continuare?" "successive. Continuare?"
#: core\app.py:469 #: core\app.py:473
msgid "Select a directory to copy marked files to" msgid "Select a directory to copy marked files to"
msgstr "Seleziona una directory in cui desideri copiare i file contrassegnati" msgstr "Seleziona una directory in cui desideri copiare i file contrassegnati"
#: core\app.py:471 #: core\app.py:475
msgid "Select a directory to move marked files to" msgid "Select a directory to move marked files to"
msgstr "" msgstr ""
"Seleziona una directory in cui desideri spostare i file contrassegnati" "Seleziona una directory in cui desideri spostare i file contrassegnati"
#: core\app.py:510 #: core\app.py:514
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Seleziona una destinazione per il file CSV" msgstr "Seleziona una destinazione per il file CSV"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:520 core\app.py:781 core\app.py:791
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Impossibile modificare il file: {}" msgstr "Impossibile modificare il file: {}"
#: core\app.py:539 #: core\app.py:543
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Non hai impostato nessun comando personalizzato. Impostalo nelle tue " "Non hai impostato nessun comando personalizzato. Impostalo nelle tue "
"preferenze." "preferenze."
#: core\app.py:701 core\app.py:713 #: core\app.py:705 core\app.py:717
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Stai per rimuovere %d file dai risultati. Continuare?" msgstr "Stai per rimuovere %d file dai risultati. Continuare?"
#: core\app.py:749 #: core\app.py:753
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} gruppi duplicati sono stati cambiati dalla nuova priorirità" msgstr "{} gruppi duplicati sono stati cambiati dalla nuova priorirità"
#: core\app.py:797 #: core\app.py:801
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Le cartelle selezionate non contengono file da scansionare." msgstr "Le cartelle selezionate non contengono file da scansionare."
#: core\app.py:813 #: core\app.py:817
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Raccolta file da scansionare" msgstr "Raccolta file da scansionare"
#: core\app.py:863 #: core\app.py:867
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d scartati)" msgstr "%s (%d scartati)"
#: core\directories.py:191 #: core\directories.py:190
msgid "Collected {} files to scan" msgid "Collected {} files to scan"
msgstr "Raccolti {} file da scansionare" msgstr "Raccolti {} file da scansionare"
#: core\directories.py:207 #: core\directories.py:206
msgid "Collected {} folders to scan" msgid "Collected {} folders to scan"
msgstr "Raccolte {} cartelle da scansionare" msgstr "Raccolte {} cartelle da scansionare"
@ -182,23 +182,23 @@ msgstr "Nome file - Campi (Nessun Ordine)"
msgid "Tags" msgid "Tags"
msgstr "Tag" msgstr "Tag"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Contenuti" msgstr "Contenuti"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Analizzate %d/%d immagini" msgstr "Analizzate %d/%d immagini"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Effettuate %d/%d comparazioni sui sottogruppi di immagini" msgstr "Effettuate %d/%d comparazioni sui sottogruppi di immagini"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Preparazione per la comparazione" msgstr "Preparazione per la comparazione"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Verificate %d/%d somiglianze" msgstr "Verificate %d/%d somiglianze"
@ -206,7 +206,7 @@ msgstr "Verificate %d/%d somiglianze"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Leggi dati EXIF da %d/%d immagini" msgstr "Leggi dati EXIF da %d/%d immagini"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Timestamp EXIF" msgstr "Timestamp EXIF"
@ -246,19 +246,23 @@ msgstr "Il più nuovo"
msgid "Oldest" msgid "Oldest"
msgstr "Il più vecchio" msgstr "Il più vecchio"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) duplicati marcati." msgstr "%d / %d (%s / %s) duplicati marcati."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " filtro: %s" msgstr " filtro: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Lettura dimensione di %d/%d file"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Lettura metadata di %d/%d files" msgstr "Lettura metadata di %d/%d files"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Quasi finito! Sto organizzando i risultati..." msgstr "Quasi finito! Sto organizzando i risultati..."

View File

@ -1,12 +1,12 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Emanuele, 2022 # Emanuele, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Giovanni Donisi, 2022 # Giovanni, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Giovanni, 2022\n"
"Language-Team: Italian (https://app.transifex.com/voltaicideas/teams/116153/it/)\n" "Language-Team: Italian (https://app.transifex.com/voltaicideas/teams/116153/it/)\n"
"Language: it\n" "Language: it\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1181,7 +1181,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: Japanese (https://app.transifex.com/voltaicideas/teams/116153/ja/)\n" "Language-Team: Japanese (https://www.transifex.com/voltaicideas/teams/116153/ja/)\n"
"Language: ja\n" "Language: ja\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
@ -45,95 +45,95 @@ msgstr "コピー中"
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "ごみ箱に送信します" msgstr "ごみ箱に送信します"
#: core\app.py:289 #: core\app.py:291
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
msgstr "前のアクションはまだそこにぶら下がっています。 まだ新しいものを始めることはできません。 数秒待ってから、再試行してください。" msgstr "前のアクションはまだそこにぶら下がっています。 まだ新しいものを始めることはできません。 数秒待ってから、再試行してください。"
#: core\app.py:300 #: core\app.py:302
msgid "No duplicates found." msgid "No duplicates found."
msgstr "重複は見つかりませんでした。" msgstr "重複は見つかりませんでした。"
#: core\app.py:315 #: core\app.py:317
msgid "All marked files were copied successfully." msgid "All marked files were copied successfully."
msgstr "チェックを入れたファイルをすべてコピーしました。" msgstr "チェックを入れたファイルをすべてコピーしました。"
#: core\app.py:317 #: core\app.py:319
msgid "All marked files were moved successfully." msgid "All marked files were moved successfully."
msgstr "チェックを入れたファイルをすべて移動しました。" msgstr "チェックを入れたファイルをすべて移動しました。"
#: core\app.py:319 #: core\app.py:321
msgid "All marked files were deleted successfully." msgid "All marked files were deleted successfully."
msgstr "チェックを入れたファイルをすべて削除しました。" msgstr "チェックを入れたファイルをすべて削除しました。"
#: core\app.py:321 #: core\app.py:323
msgid "All marked files were successfully sent to Trash." msgid "All marked files were successfully sent to Trash."
msgstr "チェックを入れたファイルをすべてごみ箱に移動しました。" msgstr "チェックを入れたファイルをすべてごみ箱に移動しました。"
#: core\app.py:326 #: core\app.py:328
msgid "Could not load file: {}" msgid "Could not load file: {}"
msgstr "ファイルを読み込めませんでした:{}" msgstr "ファイルを読み込めませんでした:{}"
#: core\app.py:382 #: core\app.py:384
msgid "'{}' already is in the list." msgid "'{}' already is in the list."
msgstr "「{}」既にリストに含まれています。" msgstr "「{}」既にリストに含まれています。"
#: core\app.py:384 #: core\app.py:386
msgid "'{}' does not exist." msgid "'{}' does not exist."
msgstr "'{}' 存在しません。" msgstr "'{}' 存在しません。"
#: core\app.py:392 #: core\app.py:394
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
msgstr "選択した%d個の一致は、以降のすべてのスキャンで無視されます。 継続する?" msgstr "選択した%d個の一致は、以降のすべてのスキャンで無視されます。 継続する?"
#: core\app.py:469 #: core\app.py:471
msgid "Select a directory to copy marked files to" msgid "Select a directory to copy marked files to"
msgstr "マークされたファイルをコピーするディレクトリを選択してください" msgstr "マークされたファイルをコピーするディレクトリを選択してください"
#: core\app.py:471 #: core\app.py:473
msgid "Select a directory to move marked files to" msgid "Select a directory to move marked files to"
msgstr "マークされたファイルを移動するディレクトリを選択してください" msgstr "マークされたファイルを移動するディレクトリを選択してください"
#: core\app.py:510 #: core\app.py:512
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "エクスポートしたCSVの宛先を選択します。" msgstr "エクスポートしたCSVの宛先を選択します。"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:518 core\app.py:773 core\app.py:783
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "ファイルに書き込めませんでした:{}" msgstr "ファイルに書き込めませんでした:{}"
#: core\app.py:539 #: core\app.py:541
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "カスタムコマンドは設定されていません。 お好みで設定してください。" msgstr "カスタムコマンドは設定されていません。 お好みで設定してください。"
#: core\app.py:701 core\app.py:713 #: core\app.py:697 core\app.py:709
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "結果から%d個のファイルを削除しようとしています。 継続する?" msgstr "結果から%d個のファイルを削除しようとしています。 継続する?"
#: core\app.py:749 #: core\app.py:745
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{}重複するグループは、再優先順位付けによって変更されました。" msgstr "{}重複するグループは、再優先順位付けによって変更されました。"
#: core\app.py:797 #: core\app.py:792
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "選択したディレクトリにはスキャン可能なファイルが含まれていません。" msgstr "選択したディレクトリにはスキャン可能なファイルが含まれていません。"
#: core\app.py:813 #: core\app.py:808
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "スキャンするファイルを収集しています" msgstr "スキャンするファイルを収集しています"
#: core\app.py:863 #: core\app.py:858
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d 廃棄)" msgstr "%s (%d 廃棄)"
#: core\directories.py:191 #: core\directories.py:190
msgid "Collected {} files to scan" msgid "Collected {} files to scan"
msgstr "" msgstr ""
#: core\directories.py:207 #: core\directories.py:206
msgid "Collected {} folders to scan" msgid "Collected {} folders to scan"
msgstr "" msgstr ""
@ -169,23 +169,23 @@ msgstr "ファイル名 - フィールド(順序なし)"
msgid "Tags" msgid "Tags"
msgstr "タグ" msgstr "タグ"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "内容" msgstr "内容"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "%d/%d 枚の写真を分析しました" msgstr "%d/%d 枚の写真を分析しました"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "チャンクマッチを%d/%d回実行しました" msgstr "チャンクマッチを%d/%d回実行しました"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "マッチングの準備" msgstr "マッチングの準備"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "%d/%d件の一致を確認" msgstr "%d/%d件の一致を確認"
@ -193,7 +193,7 @@ msgstr "%d/%d件の一致を確認"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "%d/%d枚の写真のEXIFを読みました" msgstr "%d/%d枚の写真のEXIFを読みました"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "EXIFタイムスタンプ" msgstr "EXIFタイムスタンプ"
@ -233,19 +233,23 @@ msgstr "最新"
msgid "Oldest" msgid "Oldest"
msgstr "最古" msgstr "最古"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s)マークされた重複。" msgstr "%d / %d (%s / %s)マークされた重複。"
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "フィルタ: %s" msgstr "フィルタ: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "%d/%dファイルのサイズを読み取った"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "%d/%dファイルのメタデータを読み取った" msgstr "%d/%dファイルのメタデータを読み取った"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "ほぼ完了しました! 結果をいじっています..." msgstr "ほぼ完了しました! 結果をいじっています..."

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: Japanese (https://app.transifex.com/voltaicideas/teams/116153/ja/)\n" "Language-Team: Japanese (https://app.transifex.com/voltaicideas/teams/116153/ja/)\n"
"Language: ja\n" "Language: ja\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1149,7 +1149,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2021
# Sangdon Lim, 2022 # Sangdon Lim, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Sangdon Lim, 2022\n"
"Language-Team: Korean (https://app.transifex.com/voltaicideas/teams/116153/ko/)\n" "Language-Team: Korean (https://app.transifex.com/voltaicideas/teams/116153/ko/)\n"
"Language: ko\n" "Language: ko\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"

View File

@ -1,11 +1,11 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2021
# Fuan <jcfrt@posteo.net>, 2021 # Fuan <jcfrt@posteo.net>, 2021
# Sangdon Lim, 2022 # Sangdon Lim, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Sangdon Lim, 2022\n"
"Language-Team: Korean (https://app.transifex.com/voltaicideas/teams/116153/ko/)\n" "Language-Team: Korean (https://app.transifex.com/voltaicideas/teams/116153/ko/)\n"
"Language: ko\n" "Language: ko\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -46,95 +46,95 @@ msgstr "복사중"
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "휴지통으로 보내기" msgstr "휴지통으로 보내기"
#: core\app.py:289 #: core\app.py:293
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
msgstr "이전 작업이 아직 진행 중이어서 새 작업을 시작할 수 없습니다. 몇 초 후에 다시 시도해 보세요." msgstr "이전 작업이 아직 진행 중이어서 새 작업을 시작할 수 없습니다. 몇 초 후에 다시 시도해 보세요."
#: core\app.py:300 #: core\app.py:304
msgid "No duplicates found." msgid "No duplicates found."
msgstr "중복 파일이 없습니다." msgstr "중복 파일이 없습니다."
#: core\app.py:315 #: core\app.py:319
msgid "All marked files were copied successfully." msgid "All marked files were copied successfully."
msgstr "마크된 모든 파일이 성공적으로 복사되었습니다." msgstr "마크된 모든 파일이 성공적으로 복사되었습니다."
#: core\app.py:317 #: core\app.py:321
msgid "All marked files were moved successfully." msgid "All marked files were moved successfully."
msgstr "마크된 모든 파일이 성공적으로 이동되었습니다." msgstr "마크된 모든 파일이 성공적으로 이동되었습니다."
#: core\app.py:319 #: core\app.py:323
msgid "All marked files were deleted successfully." msgid "All marked files were deleted successfully."
msgstr "마크된 모든 파일이 성공적으로 삭제되었습니다." msgstr "마크된 모든 파일이 성공적으로 삭제되었습니다."
#: core\app.py:321 #: core\app.py:325
msgid "All marked files were successfully sent to Trash." msgid "All marked files were successfully sent to Trash."
msgstr "마크된 모든 파일을 휴지통으로 보냈습니다." msgstr "마크된 모든 파일을 휴지통으로 보냈습니다."
#: core\app.py:326 #: core\app.py:330
msgid "Could not load file: {}" msgid "Could not load file: {}"
msgstr "파일을 불러올 수 없습니다: {}" msgstr "파일을 불러올 수 없습니다: {}"
#: core\app.py:382 #: core\app.py:386
msgid "'{}' already is in the list." msgid "'{}' already is in the list."
msgstr "'{}' 는 이미 목록에 있습니다." msgstr "'{}' 는 이미 목록에 있습니다."
#: core\app.py:384 #: core\app.py:388
msgid "'{}' does not exist." msgid "'{}' does not exist."
msgstr "'{}' 가 존재하지 않습니다." msgstr "'{}' 가 존재하지 않습니다."
#: core\app.py:392 #: core\app.py:396
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
msgstr "선택한 %d개 항목을 검색에서 무시합니다. 진행하시겠습니까?" msgstr "선택한 %d개 항목을 검색에서 무시합니다. 진행하시겠습니까?"
#: core\app.py:469 #: core\app.py:473
msgid "Select a directory to copy marked files to" msgid "Select a directory to copy marked files to"
msgstr "마크하신 파일을 복사할 경로를 선택하세요:" msgstr "마크하신 파일을 복사할 경로를 선택하세요:"
#: core\app.py:471 #: core\app.py:475
msgid "Select a directory to move marked files to" msgid "Select a directory to move marked files to"
msgstr "마크하신 파일을 이동할 경로를 선택하세요:" msgstr "마크하신 파일을 이동할 경로를 선택하세요:"
#: core\app.py:510 #: core\app.py:514
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "CSV 파일의 저장 경로를 지정해주세요" msgstr "CSV 파일의 저장 경로를 지정해주세요"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:520 core\app.py:781 core\app.py:791
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "파일에 쓸 수 없습니다 : {}" msgstr "파일에 쓸 수 없습니다 : {}"
#: core\app.py:539 #: core\app.py:543
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "사용자 지정 명령을 설정하지 않았습니다. 기본 설정에서 설정하십시오." msgstr "사용자 지정 명령을 설정하지 않았습니다. 기본 설정에서 설정하십시오."
#: core\app.py:701 core\app.py:713 #: core\app.py:705 core\app.py:717
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "결과에서 %d 개의 파일을 제거하려고합니다. 실행하시겠습니까?" msgstr "결과에서 %d 개의 파일을 제거하려고합니다. 실행하시겠습니까?"
#: core\app.py:749 #: core\app.py:753
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} 개의 중복 그룹이 우선 순위 재 지정으로 변경되었습니다." msgstr "{} 개의 중복 그룹이 우선 순위 재 지정으로 변경되었습니다."
#: core\app.py:797 #: core\app.py:801
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "선택한 경로에 스캔 가능한 파일이 없습니다." msgstr "선택한 경로에 스캔 가능한 파일이 없습니다."
#: core\app.py:813 #: core\app.py:817
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "스캔 가능 파일 수집중" msgstr "스캔 가능 파일 수집중"
#: core\app.py:863 #: core\app.py:867
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d 폐기)" msgstr "%s (%d 폐기)"
#: core\directories.py:191 #: core\directories.py:190
msgid "Collected {} files to scan" msgid "Collected {} files to scan"
msgstr "파일 목록 생성 중: {}개 파일" msgstr "파일 목록 생성 중: {}개 파일"
#: core\directories.py:207 #: core\directories.py:206
msgid "Collected {} folders to scan" msgid "Collected {} folders to scan"
msgstr "폴더 목록 생성 중: {}개 폴더" msgstr "폴더 목록 생성 중: {}개 폴더"
@ -170,23 +170,23 @@ msgstr "파일 이름 - 필드 (순서 없음)"
msgid "Tags" msgid "Tags"
msgstr "태그" msgstr "태그"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "내용" msgstr "내용"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "사진 %d/%d 개 분석됨" msgstr "사진 %d/%d 개 분석됨"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "%d/%d 청크 매치 수행" msgstr "%d/%d 청크 매치 수행"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "매칭 준비" msgstr "매칭 준비"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "%d/%d 일치 확인" msgstr "%d/%d 일치 확인"
@ -194,7 +194,7 @@ msgstr "%d/%d 일치 확인"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "사진 EXIF 읽는 중: %d/%d" msgstr "사진 EXIF 읽는 중: %d/%d"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "EXIF 타임 스탬프" msgstr "EXIF 타임 스탬프"
@ -234,19 +234,23 @@ msgstr "최신"
msgid "Oldest" msgid "Oldest"
msgstr "가장 오래된" msgstr "가장 오래된"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) 개의 중복 파일을 마크했습니다." msgstr "%d / %d (%s / %s) 개의 중복 파일을 마크했습니다."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "필터: %s" msgstr "필터: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "파일 크기 읽는 중: %d/%d"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "파일 메타데이터 읽는 중: %d/%d" msgstr "파일 메타데이터 읽는 중: %d/%d"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "거의 완료되었습니다! 결과를 취합하고 있습니다." msgstr "거의 완료되었습니다! 결과를 취합하고 있습니다."

View File

@ -1,11 +1,11 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Sangdon Lim, 2022 # Sangdon Lim, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Sangdon Lim, 2022\n"
"Language-Team: Korean (https://app.transifex.com/voltaicideas/teams/116153/ko/)\n" "Language-Team: Korean (https://app.transifex.com/voltaicideas/teams/116153/ko/)\n"
"Language: ko\n" "Language: ko\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -365,8 +365,8 @@ msgid ""
" the best to these criteria to their respective group's reference position. " " the best to these criteria to their respective group's reference position. "
"Read the help file for more information." "Read the help file for more information."
msgstr "" msgstr ""
"오른쪽 박스에 기준을 추가하고 확인을 눌러 가장 기준에 해당되는 복제를 해당 그룹의 참조 위치로 보냅니다. 상세한 정보는 도움말에 " "오른쪽 박스에 기준을 추가하고 확인을 눌러 가장 기준에 해당되는 복제를 해당 그룹의 참조 위치로 보냅니다."
"있습니다" " 상세한 정보는 도움말에 있습니다"
#: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0 #: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0
msgid "Problems!" msgid "Problems!"
@ -378,8 +378,8 @@ msgid ""
"these problems are described in the table below. Those files were not " "these problems are described in the table below. Those files were not "
"removed from your results." "removed from your results."
msgstr "" msgstr ""
"일부 (또는 전체) 파일을 처리하는 데 문제가 있었습니다. 문제의 원인은 아래 표에 표시 되있습니다. 문제되는 파일들은 결과에서 제거되지" "일부 (또는 전체) 파일을 처리하는 데 문제가 있었습니다. 문제의 원인은 아래 표에 표시 되있습니다. 문제되는 파일들은 결과에서 "
" 않았습니다." "제거되지 않았습니다."
#: qt/problem_dialog.py:56 #: qt/problem_dialog.py:56
msgid "Reveal Selected" msgid "Reveal Selected"
@ -1150,7 +1150,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -4,21 +4,21 @@
msgid "" msgid ""
msgstr "" 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>, 2021\n"
"Language-Team: Malay (https://app.transifex.com/voltaicideas/teams/116153/ms/)\n" "Language-Team: Malay (https://www.transifex.com/voltaicideas/teams/116153/ms/)\n"
"Language: ms\n" "Language: ms\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Tiada duplikasi yang ditandai. Tiada apa yang dilakukan." msgstr "Tiada duplikasi yang ditandai. Tiada apa yang dilakukan."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Tiada duplikasi yang dipilih. Tiada apa yang dilakukan." msgstr "Tiada duplikasi yang dipilih. Tiada apa yang dilakukan."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -27,23 +27,23 @@ msgstr ""
"digunakan untuk membuka fail tersebut, ia mungkin menyebabkan sepah. Ingin " "digunakan untuk membuka fail tersebut, ia mungkin menyebabkan sepah. Ingin "
"teruskan?" "teruskan?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Mengimbas untuk duplikasi" msgstr "Mengimbas untuk duplikasi"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Memuatkan" msgstr "Memuatkan"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Memindahkan" msgstr "Memindahkan"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Menyalinkan" msgstr "Menyalinkan"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Menghantarkan ke Tong Sampah" msgstr "Menghantarkan ke Tong Sampah"
@ -107,7 +107,7 @@ msgstr "Pilih direktori dituju untuk pindah fail yang ditandai"
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Pilih tempat tujuan untuk eksport CSV anda" msgstr "Pilih tempat tujuan untuk eksport CSV anda"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Tidak mampu menulis ke fail: {}" msgstr "Tidak mampu menulis ke fail: {}"
@ -117,23 +117,23 @@ msgstr ""
"Anda tidak ada perintah tersuai ditetapkan. Tetapkannya melalui menu " "Anda tidak ada perintah tersuai ditetapkan. Tetapkannya melalui menu "
"keutamaan anda." "keutamaan anda."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Anda bakal mengalih keluar %d fail dari keputusan. Ingin teruskan?" msgstr "Anda bakal mengalih keluar %d fail dari keputusan. Ingin teruskan?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} kumpulan duplikasi telah diubah oleh pengutamaan semula." msgstr "{} kumpulan duplikasi telah diubah oleh pengutamaan semula."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Direktori yang dipilih tidak mempunyai fail yang boleh diimbas." msgstr "Direktori yang dipilih tidak mempunyai fail yang boleh diimbas."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Mengumpulkan fail untuk diimbas" msgstr "Mengumpulkan fail untuk diimbas"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d dibuang)" msgstr "%s (%d dibuang)"
@ -178,23 +178,23 @@ msgstr "Nama Fail - Medan (Tiada Tertib)"
msgid "Tags" msgid "Tags"
msgstr "Tag" msgstr "Tag"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Kandungan" msgstr "Kandungan"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "%d / %d gambar dianalisis" msgstr "%d / %d gambar dianalisis"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "%d / %d padanan ketulan dilaksanakan" msgstr "%d / %d padanan ketulan dilaksanakan"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Membuat persediaan untuk pemadanan" msgstr "Membuat persediaan untuk pemadanan"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "%d / %d padanan disahkan" msgstr "%d / %d padanan disahkan"
@ -202,7 +202,7 @@ msgstr "%d / %d padanan disahkan"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "EXIF bagi %d / %d gambar dibaca" msgstr "EXIF bagi %d / %d gambar dibaca"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Cap masa EXIF" msgstr "Cap masa EXIF"
@ -210,51 +210,55 @@ msgstr "Cap masa EXIF"
msgid "None" msgid "None"
msgstr "Tiada" msgstr "Tiada"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Tamat dengan nombor" msgstr "Tamat dengan nombor"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Tidak tamat dengan nombor" msgstr "Tidak tamat dengan nombor"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Terpanjang" msgstr "Terpanjang"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Terpendek" msgstr "Terpendek"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Tertinggi" msgstr "Tertinggi"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Terendah" msgstr "Terendah"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Terbaru" msgstr "Terbaru"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Terlama" msgstr "Terlama"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) duplikasi ditandai." msgstr "%d / %d (%s / %s) duplikasi ditandai."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "penapis: %s" msgstr "penapis: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Saiz bagi %d / %d gambar dibaca"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Metadata bagi %d / %d gambar dibaca" msgstr "Metadata bagi %d / %d gambar dibaca"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Hampir selesai! Menyusun keputusan..." msgstr "Hampir selesai! Menyusun keputusan..."

View File

@ -6,21 +6,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Bas <duvel3@gmail.com>, 2021\n" "Last-Translator: Bas <duvel3@gmail.com>, 2021\n"
"Language-Team: Dutch (https://app.transifex.com/voltaicideas/teams/116153/nl/)\n" "Language-Team: Dutch (https://www.transifex.com/voltaicideas/teams/116153/nl/)\n"
"Language: nl\n" "Language: nl\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Er zijn geen gemarkeerde dubbelingen. Er is niks gedaam" msgstr "Er zijn geen gemarkeerde dubbelingen. Er is niks gedaam"
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Er zijn geen dubelingen geselecteerd. Er is niks gedaan" msgstr "Er zijn geen dubelingen geselecteerd. Er is niks gedaan"
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -29,23 +29,23 @@ msgstr ""
"Afhankelijk met welke applicaties die bestanden worden geopened kan het best" "Afhankelijk met welke applicaties die bestanden worden geopened kan het best"
" een rommeltje worden. Doorgaan?" " een rommeltje worden. Doorgaan?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Dubbelingen aan het opsporen" msgstr "Dubbelingen aan het opsporen"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Laden" msgstr "Laden"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Verplaatsen" msgstr "Verplaatsen"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Kopiëren" msgstr "Kopiëren"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Naar de prullebak verplaatsen" msgstr "Naar de prullebak verplaatsen"
@ -111,7 +111,7 @@ msgstr ""
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Selecteer een locatie voor de CSV export" msgstr "Selecteer een locatie voor de CSV export"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Kan niet schrijven naar bestand: {}" msgstr "Kan niet schrijven naar bestand: {}"
@ -121,28 +121,28 @@ msgstr ""
"Er is nog geen \"aangepaste opdracht\" ingericht. Je kan dit doen bij de " "Er is nog geen \"aangepaste opdracht\" ingericht. Je kan dit doen bij de "
"voorkeuren." "voorkeuren."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "" msgstr ""
"Je staat op het punt om %d bestanden te verwijderen uit de resultaten. " "Je staat op het punt om %d bestanden te verwijderen uit de resultaten. "
"Doorgaan?" "Doorgaan?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "" msgstr ""
"{} dubbelingen groepen waren veranderd door de prioriteits verschuiving." "{} dubbelingen groepen waren veranderd door de prioriteits verschuiving."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "" msgstr ""
"De geselecteerde folders bevatten geen bestanden die onderzocht kunnen " "De geselecteerde folders bevatten geen bestanden die onderzocht kunnen "
"worden." "worden."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Bestanden aan het verzamelen om te onderzoeken" msgstr "Bestanden aan het verzamelen om te onderzoeken"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d weggelaten)" msgstr "%s (%d weggelaten)"
@ -187,23 +187,23 @@ msgstr "Bestandsnaam - Velden (geen volgorde)"
msgid "Tags" msgid "Tags"
msgstr "Tags" msgstr "Tags"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Inhoud" msgstr "Inhoud"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "%d van de %d afbeeldingen aan het analyseren" msgstr "%d van de %d afbeeldingen aan het analyseren"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "%d van de %d bulk overeenkomsten uitgevoerd" msgstr "%d van de %d bulk overeenkomsten uitgevoerd"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Voorbereiden voor dubbelingen bepaling" msgstr "Voorbereiden voor dubbelingen bepaling"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "%d van de %d overeenkomsten nagekeken" msgstr "%d van de %d overeenkomsten nagekeken"
@ -211,7 +211,7 @@ msgstr "%d van de %d overeenkomsten nagekeken"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "EXIF informatie van %d van de %d afbeeldingen gelezen" msgstr "EXIF informatie van %d van de %d afbeeldingen gelezen"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "EXIF-tijdstempel" msgstr "EXIF-tijdstempel"
@ -219,51 +219,55 @@ msgstr "EXIF-tijdstempel"
msgid "None" msgid "None"
msgstr "Geen" msgstr "Geen"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Eindigt met nummer" msgstr "Eindigt met nummer"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Eindigt niet met een nummer" msgstr "Eindigt niet met een nummer"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "langste" msgstr "langste"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "kortste" msgstr "kortste"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "hoogste" msgstr "hoogste"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "laagste" msgstr "laagste"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "nieuwste" msgstr "nieuwste"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "oudste" msgstr "oudste"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s /%s) dubbelingen gemarkeerd" msgstr "%d / %d (%s /%s) dubbelingen gemarkeerd"
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "filter: %s" msgstr "filter: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Bestandsgrootte van %d/%d bestanden aan het lezen."
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Metadata van %d/%d bestanden gelezen" msgstr "Metadata van %d/%d bestanden gelezen"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Bijna klaar! Gehannes met resultaten..." msgstr "Bijna klaar! Gehannes met resultaten..."

View File

@ -1,11 +1,11 @@
# Translators: # Translators:
# Bas <duvel3@gmail.com>, 2022 # Bas <duvel3@gmail.com>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: Dutch (https://app.transifex.com/voltaicideas/teams/116153/nl/)\n" "Language-Team: Dutch (https://app.transifex.com/voltaicideas/teams/116153/nl/)\n"
"Language: nl\n" "Language: nl\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1168,7 +1168,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -5,21 +5,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
"Language-Team: Polish (Poland) (https://app.transifex.com/voltaicideas/teams/116153/pl_PL/)\n" "Language-Team: Polish (Poland) (https://www.transifex.com/voltaicideas/teams/116153/pl_PL/)\n"
"Language: pl_PL\n" "Language: pl_PL\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Brak wykrytych duplikatów. Nic nie zrobiono." msgstr "Brak wykrytych duplikatów. Nic nie zrobiono."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Brak wybranych duplikatów. Nic nie zrobiono." msgstr "Brak wybranych duplikatów. Nic nie zrobiono."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -28,23 +28,23 @@ msgstr ""
"pomocą czego te pliki są otwierane, może to spowodować spory bałagan. " "pomocą czego te pliki są otwierane, może to spowodować spory bałagan. "
"Kontyntynuj?" "Kontyntynuj?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Wyszukiwanie duplikatów" msgstr "Wyszukiwanie duplikatów"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Ładuję" msgstr "Ładuję"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Przenoszę" msgstr "Przenoszę"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Kopiowanie" msgstr "Kopiowanie"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Wysyłam do kosza" msgstr "Wysyłam do kosza"
@ -108,7 +108,7 @@ msgstr "Wybierz katalog, do którego chcesz przenieść zaznaczone pliki"
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Wybierz miejsce docelowe dla eksportowanego pliku CSV" msgstr "Wybierz miejsce docelowe dla eksportowanego pliku CSV"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Nie udało się zapisać do pliku: {}" msgstr "Nie udało się zapisać do pliku: {}"
@ -118,23 +118,23 @@ msgstr ""
"Nie masz skonfigurowanego polecenia niestandardowego. Ustaw to w swoich " "Nie masz skonfigurowanego polecenia niestandardowego. Ustaw to w swoich "
"preferencjach." "preferencjach."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Zamierzasz usunąć %d plików z wyników. Kontyntynuj?" msgstr "Zamierzasz usunąć %d plików z wyników. Kontyntynuj?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} zduplikowanych grup zmieniono przez ponowne ustalenie priorytetów." msgstr "{} zduplikowanych grup zmieniono przez ponowne ustalenie priorytetów."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Wybrane katalogi nie zawierają plik skanowalną." msgstr "Wybrane katalogi nie zawierają plik skanowalną."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Zbieranie plików do skanowania" msgstr "Zbieranie plików do skanowania"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s(%d odrzucone)" msgstr "%s(%d odrzucone)"
@ -178,23 +178,23 @@ msgstr "Nazwa pliku - pola (bez kolejności)"
msgid "Tags" msgid "Tags"
msgstr "Tagi" msgstr "Tagi"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Treść" msgstr "Treść"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Analizowane %d/%d zdjęć" msgstr "Analizowane %d/%d zdjęć"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Wykonano %d/%d dopasowań fragmentów" msgstr "Wykonano %d/%d dopasowań fragmentów"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Przygotowanie do dopasowania" msgstr "Przygotowanie do dopasowania"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Zweryfikowane %d/%d meczów" msgstr "Zweryfikowane %d/%d meczów"
@ -202,7 +202,7 @@ msgstr "Zweryfikowane %d/%d meczów"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Przeczytaj EXIF z %d/%d zdjęć" msgstr "Przeczytaj EXIF z %d/%d zdjęć"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Sygnatura czasowa EXIF" msgstr "Sygnatura czasowa EXIF"
@ -210,51 +210,55 @@ msgstr "Sygnatura czasowa EXIF"
msgid "None" msgid "None"
msgstr "Nie" msgstr "Nie"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Kończy się numerem" msgstr "Kończy się numerem"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Nie kończy się liczbą" msgstr "Nie kończy się liczbą"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Najdłużej" msgstr "Najdłużej"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Najkrótsza" msgstr "Najkrótsza"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Najwyższa" msgstr "Najwyższa"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Najniższa" msgstr "Najniższa"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Najnowsza" msgstr "Najnowsza"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Najstarszy" msgstr "Najstarszy"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) duplikaty oznakowane." msgstr "%d / %d (%s / %s) duplikaty oznakowane."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " filtr: %s" msgstr " filtr: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Odczytaj rozmiar %d/%d plików"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Przeczytaj metadane %d/%d plików" msgstr "Przeczytaj metadane %d/%d plików"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Prawie skończone! Porządkowanie wyników..." msgstr "Prawie skończone! Porządkowanie wyników..."

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: Polish (Poland) (https://app.transifex.com/voltaicideas/teams/116153/pl_PL/)\n" "Language-Team: Polish (Poland) (https://app.transifex.com/voltaicideas/teams/116153/pl_PL/)\n"
"Language: pl_PL\n" "Language: pl_PL\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1166,7 +1166,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -5,21 +5,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/voltaicideas/teams/116153/pt_BR/)\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/voltaicideas/teams/116153/pt_BR/)\n"
"Language: pt_BR\n" "Language: pt_BR\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Não há duplicatas marcadas. Nada foi feito." msgstr "Não há duplicatas marcadas. Nada foi feito."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Não há duplicatas selecionadas. Nada foi feito." msgstr "Não há duplicatas selecionadas. Nada foi feito."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -27,23 +27,23 @@ msgstr ""
"Você está prestes a abrir muitos arquivos de uma vez. Problemas podem surgir" "Você está prestes a abrir muitos arquivos de uma vez. Problemas podem surgir"
" dependendo de qual app seja usado para abri-los. Deseja continuar?" " dependendo de qual app seja usado para abri-los. Deseja continuar?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Buscando por duplicatas" msgstr "Buscando por duplicatas"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Carregando" msgstr "Carregando"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Movendo" msgstr "Movendo"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Copiando" msgstr "Copiando"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Movendo para o Lixo" msgstr "Movendo para o Lixo"
@ -105,7 +105,7 @@ msgstr "Selecione um diretório para onde deseja mover os arquivos marcados"
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Selecione uma pasta para o CSV exportado" msgstr "Selecione uma pasta para o CSV exportado"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Não foi possível gravar no arquivo: {}" msgstr "Não foi possível gravar no arquivo: {}"
@ -114,23 +114,23 @@ msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Você não possui nenhum comando personalizado. Crie um nas preferências." "Você não possui nenhum comando personalizado. Crie um nas preferências."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Remover %d arquivo(s) dos resultados?" msgstr "Remover %d arquivo(s) dos resultados?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} grupos de duplicatas alterados ao repriorizar." msgstr "{} grupos de duplicatas alterados ao repriorizar."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "As pastas selecionadas não contém arquivos escaneáveis." msgstr "As pastas selecionadas não contém arquivos escaneáveis."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Juntando arquivos para escanear" msgstr "Juntando arquivos para escanear"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d rejeitado(s))" msgstr "%s (%d rejeitado(s))"
@ -174,23 +174,23 @@ msgstr "Nome do arquivo - campos (sem pedido)"
msgid "Tags" msgid "Tags"
msgstr "Tags" msgstr "Tags"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Conteúdo" msgstr "Conteúdo"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "%d/%d fotos analizadas" msgstr "%d/%d fotos analizadas"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "%d/%d resultados em blocos executados" msgstr "%d/%d resultados em blocos executados"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Preparando para comparação" msgstr "Preparando para comparação"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "%d/%d resultados verificados" msgstr "%d/%d resultados verificados"
@ -198,7 +198,7 @@ msgstr "%d/%d resultados verificados"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "EXIF lido em %d/%d fotos" msgstr "EXIF lido em %d/%d fotos"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Timestamp EXIF" msgstr "Timestamp EXIF"
@ -206,51 +206,55 @@ msgstr "Timestamp EXIF"
msgid "None" msgid "None"
msgstr "Nenhum" msgstr "Nenhum"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Termina com número" msgstr "Termina com número"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Não termina com número" msgstr "Não termina com número"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Mais longo" msgstr "Mais longo"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Mais curto" msgstr "Mais curto"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Maior" msgstr "Maior"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Menor" msgstr "Menor"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Mais recente" msgstr "Mais recente"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Mais antigo" msgstr "Mais antigo"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) duplicatas marcadas." msgstr "%d / %d (%s / %s) duplicatas marcadas."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " filtro: %s" msgstr " filtro: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Tamanho lido em %d/%d arquivos"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Metadados lidos em %d/%d arquivos" msgstr "Metadados lidos em %d/%d arquivos"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Quase pronto! Mexendo nos resultados ..." msgstr "Quase pronto! Mexendo nos resultados ..."

View File

@ -2,11 +2,10 @@
# Andrew Senetar <arsenetar@gmail.com>, 2021 # Andrew Senetar <arsenetar@gmail.com>, 2021
# Fuan <jcfrt@posteo.net>, 2021 # Fuan <jcfrt@posteo.net>, 2021
# AHOHNMYC <lqwh2h2cwa@protonmail.com>, 2023 # AHOHNMYC <lqwh2h2cwa@protonmail.com>, 2023
# Eugene Morozov <transifex@emorozov.net>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Eugene Morozov <transifex@emorozov.net>, 2023\n" "Last-Translator: AHOHNMYC <lqwh2h2cwa@protonmail.com>, 2023\n"
"Language-Team: Russian (https://app.transifex.com/voltaicideas/teams/116153/ru/)\n" "Language-Team: Russian (https://app.transifex.com/voltaicideas/teams/116153/ru/)\n"
"Language: ru\n" "Language: ru\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -50,7 +49,7 @@ msgstr "Копирование"
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Перемещение в Корзину" msgstr "Перемещение в Корзину"
#: core\app.py:289 #: core\app.py:293
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -58,39 +57,39 @@ msgstr ""
"Предыдущее действие до сих пор выполняется. Вы не можете начать новое. " "Предыдущее действие до сих пор выполняется. Вы не можете начать новое. "
"Подождите несколько секунд, затем повторите попытку." "Подождите несколько секунд, затем повторите попытку."
#: core\app.py:300 #: core\app.py:304
msgid "No duplicates found." msgid "No duplicates found."
msgstr "Дубликаты не найдены." msgstr "Дубликаты не найдены."
#: core\app.py:315 #: core\app.py:319
msgid "All marked files were copied successfully." msgid "All marked files were copied successfully."
msgstr "Все отмеченные файлы были скопированы успешно." msgstr "Все отмеченные файлы были скопированы успешно."
#: core\app.py:317 #: core\app.py:321
msgid "All marked files were moved successfully." msgid "All marked files were moved successfully."
msgstr "Все отмеченные файлы были перемещены успешно." msgstr "Все отмеченные файлы были перемещены успешно."
#: core\app.py:319 #: core\app.py:323
msgid "All marked files were deleted successfully." msgid "All marked files were deleted successfully."
msgstr "Все отмеченные файлы были удалены успешно." msgstr "Все отмеченные файлы были удалены успешно."
#: core\app.py:321 #: core\app.py:325
msgid "All marked files were successfully sent to Trash." msgid "All marked files were successfully sent to Trash."
msgstr "Все отмеченные файлы были успешно отправлены в Корзину." msgstr "Все отмеченные файлы были успешно отправлены в Корзину."
#: core\app.py:326 #: core\app.py:330
msgid "Could not load file: {}" msgid "Could not load file: {}"
msgstr "Не удалось загрузить файл: {}" msgstr "Не удалось загрузить файл: {}"
#: core\app.py:382 #: core\app.py:386
msgid "'{}' already is in the list." msgid "'{}' already is in the list."
msgstr "'{}' уже присутствует в списке." msgstr "'{}' уже присутствует в списке."
#: core\app.py:384 #: core\app.py:388
msgid "'{}' does not exist." msgid "'{}' does not exist."
msgstr "'{}' не существует." msgstr "'{}' не существует."
#: core\app.py:392 #: core\app.py:396
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
@ -98,51 +97,51 @@ msgstr ""
"Все выбранные %d совпадений будут игнорироваться при всех последующих " "Все выбранные %d совпадений будут игнорироваться при всех последующих "
"проверках. Продолжить?" "проверках. Продолжить?"
#: core\app.py:469 #: core\app.py:473
msgid "Select a directory to copy marked files to" msgid "Select a directory to copy marked files to"
msgstr "Выберите каталог, в который вы хотите скопировать отмеченные файлы" msgstr "Выберите каталог, в который вы хотите скопировать отмеченные файлы"
#: core\app.py:471 #: core\app.py:475
msgid "Select a directory to move marked files to" msgid "Select a directory to move marked files to"
msgstr "Выберите каталог, в который вы хотите переместить отмеченные файлы" msgstr "Выберите каталог, в который вы хотите переместить отмеченные файлы"
#: core\app.py:510 #: core\app.py:514
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Выберите назначение для экспортируемого " msgstr "Выберите назначение для экспортируемого "
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:520 core\app.py:781 core\app.py:791
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Не удалось записать в файл: {}" msgstr "Не удалось записать в файл: {}"
#: core\app.py:539 #: core\app.py:543
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "Вы не создали пользовательскую команду. Задайте её в настройках." msgstr "Вы не создали пользовательскую команду. Задайте её в настройках."
#: core\app.py:701 core\app.py:713 #: core\app.py:705 core\app.py:717
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Вы собираетесь удалить %d файлов из результата поиска. Продолжить?" msgstr "Вы собираетесь удалить %d файлов из результата поиска. Продолжить?"
#: core\app.py:749 #: core\app.py:753
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} групп дубликатов было изменено при реприоритезации." msgstr "{} групп дубликатов было изменено при реприоритезации."
#: core\app.py:797 #: core\app.py:801
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Выбранные каталоги не содержат файлов для сканирования." msgstr "Выбранные каталоги не содержат файлов для сканирования."
#: core\app.py:813 #: core\app.py:817
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Сбор файлов для сканирования" msgstr "Сбор файлов для сканирования"
#: core\app.py:863 #: core\app.py:867
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s. (%d отменено)" msgstr "%s. (%d отменено)"
#: core\directories.py:191 #: core\directories.py:190
msgid "Collected {} files to scan" msgid "Collected {} files to scan"
msgstr "Собрано {} файлов для сканирования" msgstr "Собрано {} файлов для сканирования"
#: core\directories.py:207 #: core\directories.py:206
msgid "Collected {} folders to scan" msgid "Collected {} folders to scan"
msgstr "Собрано {} каталогов для сканирования" msgstr "Собрано {} каталогов для сканирования"
@ -179,23 +178,23 @@ msgstr "Имя файла - Поля (без сортировки)"
msgid "Tags" msgid "Tags"
msgstr "Теги" msgstr "Теги"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Содержание" msgstr "Содержание"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Проанализировано %d из %d изображений" msgstr "Проанализировано %d из %d изображений"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Проверено %d/%d совпадений" msgstr "Проверено %d/%d совпадений"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Подготовка для сравнения" msgstr "Подготовка для сравнения"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Проверено %d/%d совпадений" msgstr "Проверено %d/%d совпадений"
@ -203,7 +202,7 @@ msgstr "Проверено %d/%d совпадений"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Прочитана EXIF-информация %d/%d фотографий" msgstr "Прочитана EXIF-информация %d/%d фотографий"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Метка времени EXIF" msgstr "Метка времени EXIF"
@ -243,21 +242,25 @@ msgstr "Новейший"
msgid "Oldest" msgid "Oldest"
msgstr "Старейший" msgstr "Старейший"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) дубликатов отмечено." msgstr "%d / %d (%s / %s) дубликатов отмечено."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "фильтр: %s" msgstr "фильтр: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Подсчитан размер %d/%d файлов"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Прочитаны метаданные %d/%d файлов" msgstr "Прочитаны метаданные %d/%d файлов"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Почти готово! Вожусь с результатами..." msgstr "Почти готово! Возиться с результатами..."
#: core\se\scanner.py:18 #: core\se\scanner.py:18
msgid "Folders" msgid "Folders"

View File

@ -3,11 +3,10 @@
# Andrew Senetar <arsenetar@gmail.com>, 2022 # Andrew Senetar <arsenetar@gmail.com>, 2022
# AHOHNMYC <lqwh2h2cwa@protonmail.com>, 2023 # AHOHNMYC <lqwh2h2cwa@protonmail.com>, 2023
# Captain Quake <elizabeth-keen.gardy@simplelogin.co>, 2023 # Captain Quake <elizabeth-keen.gardy@simplelogin.co>, 2023
# Eugene Morozov <transifex@emorozov.net>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Eugene Morozov <transifex@emorozov.net>, 2023\n" "Last-Translator: Captain Quake <elizabeth-keen.gardy@simplelogin.co>, 2023\n"
"Language-Team: Russian (https://app.transifex.com/voltaicideas/teams/116153/ru/)\n" "Language-Team: Russian (https://app.transifex.com/voltaicideas/teams/116153/ru/)\n"
"Language: ru\n" "Language: ru\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -98,7 +97,7 @@ msgstr ""
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0 #: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
msgid "Proceed" msgid "Proceed"
msgstr "Приступить" msgstr "Выполняется"
#: qt/deletion_options.py:60 cocoa/en.lproj/Localizable.strings:0 #: qt/deletion_options.py:60 cocoa/en.lproj/Localizable.strings:0
msgid "Cancel" msgid "Cancel"
@ -1173,7 +1172,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -5,21 +5,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2021\n" "Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2021\n"
"Language-Team: Turkish (https://app.transifex.com/voltaicideas/teams/116153/tr/)\n" "Language-Team: Turkish (https://www.transifex.com/voltaicideas/teams/116153/tr/)\n"
"Language: tr\n" "Language: tr\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "İmlenen kopya yok. İşlem yapılmadı." msgstr "İmlenen kopya yok. İşlem yapılmadı."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Seçilen kopya yok. İşlem yapılmadı." msgstr "Seçilen kopya yok. İşlem yapılmadı."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -27,23 +27,23 @@ msgstr ""
"Birden çok dosyayı aynı anda açmaya çalışıyorsunuz. Dosyaların açıldığı " "Birden çok dosyayı aynı anda açmaya çalışıyorsunuz. Dosyaların açıldığı "
"programlara bağlı olarak, bu sorun yaratabilir. Sürdürülsün mü?" "programlara bağlı olarak, bu sorun yaratabilir. Sürdürülsün mü?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Kopyalar aranıyor" msgstr "Kopyalar aranıyor"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Yükleniyor" msgstr "Yükleniyor"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Taşınıyor" msgstr "Taşınıyor"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Kopyalanıyor" msgstr "Kopyalanıyor"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Çöpe Gönderiliyor" msgstr "Çöpe Gönderiliyor"
@ -106,7 +106,7 @@ msgstr "İmlenen dosyaları taşımak için dizin seç"
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Dışa aktarılan CSV'niz için hedef seçin" msgstr "Dışa aktarılan CSV'niz için hedef seçin"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Dosyaya yazılamadı: {}" msgstr "Dosyaya yazılamadı: {}"
@ -114,23 +114,23 @@ msgstr "Dosyaya yazılamadı: {}"
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "Ayarlı özel komutunuz yok. Tercihlerinizden ayarlayınız." msgstr "Ayarlı özel komutunuz yok. Tercihlerinizden ayarlayınız."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "%d ögeyi sonuçlardan kaldırıyorsunuz. Sürdür?" msgstr "%d ögeyi sonuçlardan kaldırıyorsunuz. Sürdür?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} kopya küme, yeniden önceliklendirme tarafından değiştirildi." msgstr "{} kopya küme, yeniden önceliklendirme tarafından değiştirildi."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Seçili dizinler taranabilir dosya içermiyor." msgstr "Seçili dizinler taranabilir dosya içermiyor."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Taranacak dosyalar toplanıyor" msgstr "Taranacak dosyalar toplanıyor"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d göz ardı edilen)" msgstr "%s (%d göz ardı edilen)"
@ -175,23 +175,23 @@ msgstr "Dosya Adı - Alanlar (Düzen Yok)"
msgid "Tags" msgid "Tags"
msgstr "Etiketler" msgstr "Etiketler"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "İçindekiler" msgstr "İçindekiler"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "%d/%d fotoğraf incelendi" msgstr "%d/%d fotoğraf incelendi"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "%d/%d yığın eşleşmesi gerçekleştirildi" msgstr "%d/%d yığın eşleşmesi gerçekleştirildi"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Eşlemeye hazırlanıyor" msgstr "Eşlemeye hazırlanıyor"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "%d/%d eşleşme doğrulandı" msgstr "%d/%d eşleşme doğrulandı"
@ -199,7 +199,7 @@ msgstr "%d/%d eşleşme doğrulandı"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "%d/%d fotorğafın EXIF'i okundu" msgstr "%d/%d fotorğafın EXIF'i okundu"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "EXIF Zaman damgası" msgstr "EXIF Zaman damgası"
@ -207,51 +207,55 @@ msgstr "EXIF Zaman damgası"
msgid "None" msgid "None"
msgstr "Hiçbiri" msgstr "Hiçbiri"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Sayıyla bitenler" msgstr "Sayıyla bitenler"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Sayıyla bitmeyenler" msgstr "Sayıyla bitmeyenler"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "En uzun" msgstr "En uzun"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "En kısa" msgstr "En kısa"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "En yüksek" msgstr "En yüksek"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "En düşük" msgstr "En düşük"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "En yeni" msgstr "En yeni"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "En eski" msgstr "En eski"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) kopya imlendi." msgstr "%d / %d (%s / %s) kopya imlendi."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "süz: %s" msgstr "süz: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "%d/%d dosyanın boyutu okundu"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "%d/%d dosyanın üst verisi okundu" msgstr "%d/%d dosyanın üst verisi okundu"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Neredeyse bitti! Sonuçlarla uğraşılıyor..." msgstr "Neredeyse bitti! Sonuçlarla uğraşılıyor..."

View File

@ -1,11 +1,10 @@
# Translators: # Translators:
# Ahmet Haydar Işık <itsahmthydr@gmail.com>, 2022 # Ahmet Haydar Işık <itsahmthydr@gmail.com>, 2022
# Emin Tufan Çetin <etcetin@gmail.com>, 2022 # Emin Tufan Çetin <etcetin@gmail.com>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>, 2022\n"
"Language-Team: Turkish (https://app.transifex.com/voltaicideas/teams/116153/tr/)\n" "Language-Team: Turkish (https://app.transifex.com/voltaicideas/teams/116153/tr/)\n"
"Language: tr\n" "Language: tr\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1168,7 +1167,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -1121,7 +1121,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -5,21 +5,21 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
"Language-Team: Ukrainian (https://app.transifex.com/voltaicideas/teams/116153/uk/)\n" "Language-Team: Ukrainian (https://www.transifex.com/voltaicideas/teams/116153/uk/)\n"
"Language: uk\n" "Language: uk\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" "Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Немає позначених дублікатів - нічого робити." msgstr "Немає позначених дублікатів - нічого робити."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Немає обраних дублікатів - нічого робити." msgstr "Немає обраних дублікатів - нічого робити."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -27,23 +27,23 @@ msgstr ""
"Ви збираєтеся відкрити багато файлів одночасно.\n" "Ви збираєтеся відкрити багато файлів одночасно.\n"
"Залежно від того, з чим відкриваються ці файли, це може створити неабияку халепу. Продовжити?" "Залежно від того, з чим відкриваються ці файли, це може створити неабияку халепу. Продовжити?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Пошук дублікатів" msgstr "Пошук дублікатів"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Завантаження" msgstr "Завантаження"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Переміщення" msgstr "Переміщення"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Копіювання" msgstr "Копіювання"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Відправка до кошику" msgstr "Відправка до кошику"
@ -107,7 +107,7 @@ msgstr "Виберіть каталог, куди ви хочете перемі
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Виберіть каталог, куди потрібно скопіювати позначені файли" msgstr "Виберіть каталог, куди потрібно скопіювати позначені файли"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Не вдалося записати у файл: {}" msgstr "Не вдалося записати у файл: {}"
@ -115,25 +115,25 @@ msgstr "Не вдалося записати у файл: {}"
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "Власна команда не встановлена. Встановіть її у налаштуваннях." msgstr "Власна команда не встановлена. Встановіть її у налаштуваннях."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Ви збираєтеся видалити %d файлів з результату пошуку. Продовжити?" msgstr "Ви збираєтеся видалити %d файлів з результату пошуку. Продовжити?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "" msgstr ""
"{} повторюваних груп було змінено шляхом повторного встановлення " "{} повторюваних груп було змінено шляхом повторного встановлення "
"пріоритетів." "пріоритетів."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Обрані папки не містять файлів придатних для пошуку." msgstr "Обрані папки не містять файлів придатних для пошуку."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Збір файлів для пошуку" msgstr "Збір файлів для пошуку"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d відкинуто)" msgstr "%s (%d відкинуто)"
@ -177,23 +177,23 @@ msgstr "Назва файлу - поля (без замовлення)"
msgid "Tags" msgid "Tags"
msgstr "Теги" msgstr "Теги"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Зміст" msgstr "Зміст"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Проаналізовано %d/%d фотографій" msgstr "Проаналізовано %d/%d фотографій"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Виконано %d/%d порівнянь шматків" msgstr "Виконано %d/%d порівнянь шматків"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Підготовка до порівняння" msgstr "Підготовка до порівняння"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Перевірено %d/%d результатів" msgstr "Перевірено %d/%d результатів"
@ -201,7 +201,7 @@ msgstr "Перевірено %d/%d результатів"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Прочитано EXIF з %d/%d фотографій" msgstr "Прочитано EXIF з %d/%d фотографій"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Відмітка часу EXIF" msgstr "Відмітка часу EXIF"
@ -209,51 +209,55 @@ msgstr "Відмітка часу EXIF"
msgid "None" msgid "None"
msgstr "Жоден" msgstr "Жоден"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Закінчується номером" msgstr "Закінчується номером"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Не закінчується номером" msgstr "Не закінчується номером"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Найдовший" msgstr "Найдовший"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Найкоротший" msgstr "Найкоротший"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Найвища" msgstr "Найвища"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Найнижча" msgstr "Найнижча"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Найновіші" msgstr "Найновіші"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Найдавніший" msgstr "Найдавніший"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) дублікатів позначено." msgstr "%d / %d (%s / %s) дублікатів позначено."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr "фільтр: %s" msgstr "фільтр: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Прочитано розмір %d/%d файлів"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Прочитано метаданих з %d/%d файлів" msgstr "Прочитано метаданих з %d/%d файлів"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Майже зроблено! Возився з результатами..." msgstr "Майже зроблено! Возився з результатами..."

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: Ukrainian (https://app.transifex.com/voltaicideas/teams/116153/uk/)\n" "Language-Team: Ukrainian (https://app.transifex.com/voltaicideas/teams/116153/uk/)\n"
"Language: uk\n" "Language: uk\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1166,7 +1166,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -5,23 +5,23 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
"Language-Team: Vietnamese (https://app.transifex.com/voltaicideas/teams/116153/vi/)\n" "Language-Team: Vietnamese (https://www.transifex.com/voltaicideas/teams/116153/vi/)\n"
"Language: vi\n" "Language: vi\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
"Không có phần đánh dấu nào trùng nhau. Vẫn chưa thực hiện thao tác nào." "Không có phần đánh dấu nào trùng nhau. Vẫn chưa thực hiện thao tác nào."
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
"Không có phần đánh dấu nào trùng nhau. Vẫn chưa thực hiện thao tác nào." "Không có phần đánh dấu nào trùng nhau. Vẫn chưa thực hiện thao tác nào."
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
@ -29,23 +29,23 @@ msgstr ""
"Bạn chuẩn bị mở nhiều tập tin cùng lúc. Dựa trên chương trình các tập tin " "Bạn chuẩn bị mở nhiều tập tin cùng lúc. Dựa trên chương trình các tập tin "
"được mở, thao tác này có thể gây ra trạng thái lộn xộn. Vẫn muốn tiếp tục?" "được mở, thao tác này có thể gây ra trạng thái lộn xộn. Vẫn muốn tiếp tục?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Quét các phần trùng nhau" msgstr "Quét các phần trùng nhau"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "Đang tải" msgstr "Đang tải"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "Đang di chuyển" msgstr "Đang di chuyển"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "Đang sao chép" msgstr "Đang sao chép"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "Đang gửi vào thùng rác" msgstr "Đang gửi vào thùng rác"
@ -112,7 +112,7 @@ msgstr ""
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "Chọn một điểm xuất dữ liệu dạng CSV" msgstr "Chọn một điểm xuất dữ liệu dạng CSV"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "Không thể ghi vào tệp: {}" msgstr "Không thể ghi vào tệp: {}"
@ -122,23 +122,23 @@ msgstr ""
"Bạn vẫn chưa chỉnh sửa phần thiết lập dòng lệnh. Hãy sử dụng tính năng này " "Bạn vẫn chưa chỉnh sửa phần thiết lập dòng lệnh. Hãy sử dụng tính năng này "
"trong phần tùy biến của bạn." "trong phần tùy biến của bạn."
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Bạn chuẩn bị loại bỏ %d tập tin từ phần kết quả. Tiếp tục?" msgstr "Bạn chuẩn bị loại bỏ %d tập tin từ phần kết quả. Tiếp tục?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} các nhóm trùng nhau đã được thay đổi bởi thứ tự-tái ưu tiên." msgstr "{} các nhóm trùng nhau đã được thay đổi bởi thứ tự-tái ưu tiên."
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Các thứ mục được chọn chứa các tập tin không thể quét được." msgstr "Các thứ mục được chọn chứa các tập tin không thể quét được."
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Đang thu thập các tập tin để quét" msgstr "Đang thu thập các tập tin để quét"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d bị bỏ qua)" msgstr "%s (%d bị bỏ qua)"
@ -182,23 +182,23 @@ msgstr "Tên tệp - Trường (Không có thứ tự)"
msgid "Tags" msgid "Tags"
msgstr "Tags" msgstr "Tags"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "Nội dung" msgstr "Nội dung"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "Đã phân tích %d/%d hình ảnh" msgstr "Đã phân tích %d/%d hình ảnh"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "Đã thể thiện %d/%d các phần khớp nhau" msgstr "Đã thể thiện %d/%d các phần khớp nhau"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "Đang chuẩn bị phần khớp nhau" msgstr "Đang chuẩn bị phần khớp nhau"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "Đã xác nhận %d/%d phần khớp nhau" msgstr "Đã xác nhận %d/%d phần khớp nhau"
@ -206,7 +206,7 @@ msgstr "Đã xác nhận %d/%d phần khớp nhau"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Đọc thông tin EXIF của %d/%d hình ảnh" msgstr "Đọc thông tin EXIF của %d/%d hình ảnh"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "Dấu thời gian EXIF" msgstr "Dấu thời gian EXIF"
@ -214,51 +214,55 @@ msgstr "Dấu thời gian EXIF"
msgid "None" msgid "None"
msgstr "Không " msgstr "Không "
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "Tận cùng là số" msgstr "Tận cùng là số"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "Tận cùng không chứa số" msgstr "Tận cùng không chứa số"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "Dài nhất" msgstr "Dài nhất"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "Ngắn nhất" msgstr "Ngắn nhất"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "Cao nhất" msgstr "Cao nhất"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "Thấp nhất" msgstr "Thấp nhất"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "Mới nhất" msgstr "Mới nhất"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "Cũ nhất" msgstr "Cũ nhất"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "%d / %d (%s / %s) phần trùng nhau đã được đánh dấu." msgstr "%d / %d (%s / %s) phần trùng nhau đã được đánh dấu."
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " bộ lọc: %s" msgstr " bộ lọc: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "Đọc kích thước của các tập tin %d/%d"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "Đọc thông tin chi tiết của %d/%d tập tin" msgstr "Đọc thông tin chi tiết của %d/%d tập tin"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "Sắp xong! Loay hoay với kết quả..." msgstr "Sắp xong! Loay hoay với kết quả..."

View File

@ -1,10 +1,10 @@
# Translators: # Translators:
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Fuan <jcfrt@posteo.net>, 2022\n"
"Language-Team: Vietnamese (https://app.transifex.com/voltaicideas/teams/116153/vi/)\n" "Language-Team: Vietnamese (https://app.transifex.com/voltaicideas/teams/116153/vi/)\n"
"Language: vi\n" "Language: vi\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1167,7 +1167,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -3,48 +3,47 @@
# Chris Ocelot, 2021 # Chris Ocelot, 2021
# Fuan <jcfrt@posteo.net>, 2021 # Fuan <jcfrt@posteo.net>, 2021
# YaNing Lu, 2021 # YaNing Lu, 2021
# Mèng yáo, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Mèng yáo, 2023\n" "Last-Translator: YaNing Lu, 2021\n"
"Language-Team: Chinese (China) (https://app.transifex.com/voltaicideas/teams/116153/zh_CN/)\n" "Language-Team: Chinese (China) (https://www.transifex.com/voltaicideas/teams/116153/zh_CN/)\n"
"Language: zh_CN\n" "Language: zh_CN\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: core\app.py:44 #: core\app.py:42
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "没有已标记的重复项。无需任何操作。" msgstr "没有已标记的重复项。无需任何操作。"
#: core\app.py:45 #: core\app.py:43
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "没有已选定的重复项。无需任何操作。" msgstr "没有已选定的重复项。无需任何操作。"
#: core\app.py:46 #: core\app.py:44
msgid "" msgid ""
"You're about to open many files at once. Depending on what those files are " "You're about to open many files at once. Depending on what those files are "
"opened with, doing so can create quite a mess. Continue?" "opened with, doing so can create quite a mess. Continue?"
msgstr "您即将一次性打开多个文件。取决于这些文件的默认打开方式,此项操作可能导致非常混乱的状况。是否继续?" msgstr "您即将一次性打开多个文件。取决于这些文件的默认打开方式,此项操作可能导致非常混乱的状况。是否继续?"
#: core\app.py:73 #: core\app.py:71
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "正在扫描重复内容" msgstr "正在扫描重复内容"
#: core\app.py:74 #: core\app.py:72
msgid "Loading" msgid "Loading"
msgstr "载入中" msgstr "载入中"
#: core\app.py:75 #: core\app.py:73
msgid "Moving" msgid "Moving"
msgstr "移动中" msgstr "移动中"
#: core\app.py:76 #: core\app.py:74
msgid "Copying" msgid "Copying"
msgstr "复制中" msgstr "复制中"
#: core\app.py:77 #: core\app.py:75
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "正在移至回收站" msgstr "正在移至回收站"
@ -76,15 +75,15 @@ msgstr "所有已标记的文件已成功移至回收站。"
#: core\app.py:326 #: core\app.py:326
msgid "Could not load file: {}" msgid "Could not load file: {}"
msgstr "无法加载文件{}" msgstr "无法加载文件: {}"
#: core\app.py:382 #: core\app.py:382
msgid "'{}' already is in the list." msgid "'{}' already is in the list."
msgstr "“{}”已在列表中。" msgstr "'{}' 已在列表中。"
#: core\app.py:384 #: core\app.py:384
msgid "'{}' does not exist." msgid "'{}' does not exist."
msgstr "“{}”不存在。" msgstr "'{}' 不存在。"
#: core\app.py:392 #: core\app.py:392
msgid "" msgid ""
@ -104,45 +103,45 @@ msgstr "请选择要将标记文件移动到的目录"
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "选择您导出 CSV 的目标文件夹" msgstr "选择您导出 CSV 的目标文件夹"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:516 core\app.py:771 core\app.py:781
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "不能写入文件{}" msgstr "不能写入文件: {}"
#: core\app.py:539 #: core\app.py:539
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "您没有设定自定义命令。请在设置中进行设定。" msgstr "您没有设定自定义命令。请在设置中进行设定。"
#: core\app.py:701 core\app.py:713 #: core\app.py:695 core\app.py:707
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "您将从结果中移除 %d 个文件。是否继续?" msgstr "您将从结果中移除 %d 个文件。是否继续?"
#: core\app.py:749 #: core\app.py:743
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{} 个重复的组已被重新排列。" msgstr "{}个重复的组已被重新排列。"
#: core\app.py:797 #: core\app.py:790
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "所选目录中不包含可供扫描的文件。" msgstr "所选目录中不包含可供扫描的文件。"
#: core\app.py:813 #: core\app.py:803
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "收集文件以供扫描" msgstr "收集文件以供扫描"
#: core\app.py:863 #: core\app.py:850
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d 项已丢弃)" msgstr "%s (%d 项已丢弃)"
#: core\directories.py:191 #: core\directories.py:191
msgid "Collected {} files to scan" msgid "Collected {} files to scan"
msgstr "收集要扫描的 {}文件" msgstr "收集要扫描的{}文件"
#: core\directories.py:207 #: core\directories.py:207
msgid "Collected {} folders to scan" msgid "Collected {} folders to scan"
msgstr "收集要扫描的 {}文件夹" msgstr "收集要扫描的{}文件夹"
#: core\engine.py:27 #: core\engine.py:27
msgid "%d matches found from %d groups" msgid "%d matches found from %d groups"
msgstr "找到 %d 个匹配,来自于 %d 个组中" msgstr "从1%d组中找到1%d个匹配"
#: core\gui\deletion_options.py:71 #: core\gui\deletion_options.py:71
msgid "You are sending {} file(s) to the Trash." msgid "You are sending {} file(s) to the Trash."
@ -154,7 +153,7 @@ msgstr "正则表达式"
#: core\gui\ignore_list_dialog.py:25 #: core\gui\ignore_list_dialog.py:25
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "确定要从忽略列表中移除所有 %d 项吗" msgstr "确定要从忽略列表中移除所有 %d 项吗?"
#: core\me\scanner.py:20 core\se\scanner.py:16 #: core\me\scanner.py:20 core\se\scanner.py:16
msgid "Filename" msgid "Filename"
@ -162,41 +161,41 @@ msgstr "文件名"
#: core\me\scanner.py:21 #: core\me\scanner.py:21
msgid "Filename - Fields" msgid "Filename - Fields"
msgstr "分组比较文件名(如作者-歌曲名)" msgstr "分组比较文件名(如作者-歌曲名)"
#: core\me\scanner.py:22 #: core\me\scanner.py:22
msgid "Filename - Fields (No Order)" msgid "Filename - Fields (No Order)"
msgstr "分组比较文件名(不固定顺序,如:作者-歌曲名 或者 歌曲名-作者" msgstr "分组比较文件名(不固定顺序(如作者-歌曲名或者歌曲名-作者)"
#: core\me\scanner.py:23 #: core\me\scanner.py:23
msgid "Tags" msgid "Tags"
msgstr "标签" msgstr "标签"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "内容" msgstr "内容"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "已分析 %d 张图像(共 %d 张)" msgstr "已分析 %d/%d 图像"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "已执行 %d 个区块匹配(共 %d 个)" msgstr "已执行 %d/%d 个区块匹配"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "准备进行匹配" msgstr "准备进行匹配"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "已验证 %d 匹配项(共 %d 个)" msgstr "已验证 %d/%d 匹配项"
#: core\pe\matchexif.py:19 #: core\pe\matchexif.py:19
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "已读取 %d 张图片的 EXIF(共 %d 张)" msgstr "已读取 %d/%d 张图片的 EXIF"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "EXIF 时间戳" msgstr "EXIF 时间戳"
@ -204,51 +203,55 @@ msgstr "EXIF 时间戳"
msgid "None" msgid "None"
msgstr "无" msgstr "无"
#: core\prioritize.py:102 #: core\prioritize.py:100
msgid "Ends with number" msgid "Ends with number"
msgstr "以数字结尾" msgstr "以数字结尾"
#: core\prioritize.py:103 #: core\prioritize.py:101
msgid "Doesn't end with number" msgid "Doesn't end with number"
msgstr "不以数字结尾" msgstr "不以数字结尾"
#: core\prioritize.py:104 #: core\prioritize.py:102
msgid "Longest" msgid "Longest"
msgstr "最长" msgstr "最长"
#: core\prioritize.py:105 #: core\prioritize.py:103
msgid "Shortest" msgid "Shortest"
msgstr "最短" msgstr "最短"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Highest" msgid "Highest"
msgstr "最高" msgstr "最高"
#: core\prioritize.py:142 #: core\prioritize.py:140
msgid "Lowest" msgid "Lowest"
msgstr "最低" msgstr "最低"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Newest" msgid "Newest"
msgstr "最新" msgstr "最新"
#: core\prioritize.py:171 #: core\prioritize.py:169
msgid "Oldest" msgid "Oldest"
msgstr "最旧" msgstr "最旧"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "已标记 %d / %d (%s / %s) 个重复项。" msgstr "已标记 %d / %d (%s / %s) 个重复项。"
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " 过滤%s" msgstr " 过滤: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "已读取 %d/%d 文件大小"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "已读取 %d 个文件元数据(共 %d 个)" msgstr "已读取 %d/%d 文件元数据"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "即将完成!整理结果中..." msgstr "即将完成!整理结果中..."

View File

@ -1,13 +1,12 @@
# Translators: # Translators:
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# 太子 VC <taiziccf@gmail.com>, 2022 # 太子 VC <taiziccf@gmail.com>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Chris Ocelot, 2023 # Chris Ocelot, 2023
# Andrew Senetar <arsenetar@gmail.com>, 2023
# Mèng yáo, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Mèng yáo, 2023\n" "Last-Translator: Chris Ocelot, 2023\n"
"Language-Team: Chinese (China) (https://app.transifex.com/voltaicideas/teams/116153/zh_CN/)\n" "Language-Team: Chinese (China) (https://app.transifex.com/voltaicideas/teams/116153/zh_CN/)\n"
"Language: zh_CN\n" "Language: zh_CN\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -46,7 +45,7 @@ msgstr "打开调试记录"
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0 #: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
msgid "Do you really want to remove all your cached picture analysis?" msgid "Do you really want to remove all your cached picture analysis?"
msgstr "确定要移除所有缓存的图片分析吗?" msgstr "确定要移除所有缓存图片?"
#: qt/app.py:184 #: qt/app.py:184
msgid "Picture cache cleared." msgid "Picture cache cleared."
@ -90,7 +89,7 @@ msgstr "直接删除文件"
msgid "" msgid ""
"Instead of sending files to trash, delete them directly. This option is " "Instead of sending files to trash, delete them directly. This option is "
"usually used as a workaround when the normal deletion method doesn't work." "usually used as a workaround when the normal deletion method doesn't work."
msgstr "直接将文件删除,而不是将其移至回收站。此选项通常作为常规删除方法不起作用时的替代方案。" msgstr "直接将文件删除,而不是将其移至回收站。此选项通常作为普通删除方法不能正常使用时替代方案。"
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0 #: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
msgid "Proceed" msgid "Proceed"
@ -161,7 +160,7 @@ msgstr "标准"
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0 #: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
msgid "Scan Type:" msgid "Scan Type:"
msgstr "扫描类型" msgstr "扫描类型:"
#: qt/directories_dialog.py:135 #: qt/directories_dialog.py:135
msgid "More Options" msgid "More Options"
@ -169,7 +168,7 @@ msgstr "更多选项"
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0 #: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "请选择要扫描的文件夹,然后点击“扫描”。" msgstr "请选择要扫描的文件夹,然后点击 \"扫描\"。"
#: qt/directories_dialog.py:163 cocoa/en.lproj/Localizable.strings:0 #: qt/directories_dialog.py:163 cocoa/en.lproj/Localizable.strings:0
msgid "Load Results" msgid "Load Results"
@ -185,7 +184,7 @@ msgstr "未保存的结果"
#: qt/directories_dialog.py:231 cocoa/en.lproj/Localizable.strings:0 #: qt/directories_dialog.py:231 cocoa/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "您还没有保存扫描结果,确定要退出吗" msgstr "您还没有保存扫描结果,确定要退出吗?"
#: qt/directories_dialog.py:239 cocoa/en.lproj/Localizable.strings:0 #: qt/directories_dialog.py:239 cocoa/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
@ -248,7 +247,7 @@ msgstr "详细信息"
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0 #: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
msgid "Tags to scan:" msgid "Tags to scan:"
msgstr "扫描标签" msgstr "扫描标签:"
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0 #: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
msgid "Track" msgid "Track"
@ -307,7 +306,7 @@ msgstr "忽略硬链接到相同文件的重复文件"
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29 #: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0 #: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
msgid "Debug mode (restart required)" msgid "Debug mode (restart required)"
msgstr "调试模式(需要重新启动)" msgstr "调试模式 (需要重新启动)"
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0 #: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
msgid "Match pictures of different dimensions" msgid "Match pictures of different dimensions"
@ -315,7 +314,7 @@ msgstr "匹配不同尺寸的图像"
#: qt/preferences_dialog.py:43 #: qt/preferences_dialog.py:43
msgid "Filter Hardness:" msgid "Filter Hardness:"
msgstr "过滤强度" msgstr "过滤强度:"
#: qt/preferences_dialog.py:69 #: qt/preferences_dialog.py:69
msgid "More Results" msgid "More Results"
@ -327,15 +326,15 @@ msgstr "较少结果"
#: qt/preferences_dialog.py:81 #: qt/preferences_dialog.py:81
msgid "Font size:" msgid "Font size:"
msgstr "字体大小" msgstr "字体大小:"
#: qt/preferences_dialog.py:85 #: qt/preferences_dialog.py:85
msgid "Language:" msgid "Language:"
msgstr "语言" msgstr "语言:"
#: qt/preferences_dialog.py:91 cocoa/en.lproj/Localizable.strings:0 #: qt/preferences_dialog.py:91 cocoa/en.lproj/Localizable.strings:0
msgid "Copy and Move:" msgid "Copy and Move:"
msgstr "复制并移动" msgstr "复制并移动:"
#: qt/preferences_dialog.py:94 cocoa/en.lproj/Localizable.strings:0 #: qt/preferences_dialog.py:94 cocoa/en.lproj/Localizable.strings:0
msgid "Right in destination" msgid "Right in destination"
@ -351,11 +350,11 @@ msgstr "重建绝对路径"
#: qt/preferences_dialog.py:99 #: qt/preferences_dialog.py:99
msgid "Custom Command (arguments: %d for dupe, %r for ref):" msgid "Custom Command (arguments: %d for dupe, %r for ref):"
msgstr "自定义命令(参数:%d 指重复文件,%r 指源文件):" msgstr "自定义命令 (参数: %d 指重复文件, %r 指源文件):"
#: qt/preferences_dialog.py:174 #: qt/preferences_dialog.py:174
msgid "dupeGuru has to restart for language changes to take effect." msgid "dupeGuru has to restart for language changes to take effect."
msgstr "dupeGuru 需要重新启动以使语言修改生效。" msgstr "dupeGuru需要重新启动以使语言修改生效。"
#: qt/prioritize_dialog.py:75 cocoa/en.lproj/Localizable.strings:0 #: qt/prioritize_dialog.py:75 cocoa/en.lproj/Localizable.strings:0
msgid "Re-Prioritize duplicates" msgid "Re-Prioritize duplicates"
@ -370,7 +369,7 @@ msgstr "在右侧的框内添加规则然后点击确定,以将最符合规则
#: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0 #: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0
msgid "Problems!" msgid "Problems!"
msgstr "有问题" msgstr "有问题!"
#: qt/problem_dialog.py:37 cocoa/en.lproj/Localizable.strings:0 #: qt/problem_dialog.py:37 cocoa/en.lproj/Localizable.strings:0
msgid "" msgid ""
@ -502,7 +501,7 @@ msgstr "选择一个文件来保存您的结果"
#: qt/se/preferences_dialog.py:41 #: qt/se/preferences_dialog.py:41
msgid "Ignore files smaller than" msgid "Ignore files smaller than"
msgstr "忽略文件当其小于" msgstr "忽略文件当其小于"
#: qt/se/preferences_dialog.py:52 cocoa/en.lproj/Localizable.strings:0 #: qt/se/preferences_dialog.py:52 cocoa/en.lproj/Localizable.strings:0
msgid "KB" msgid "KB"
@ -550,7 +549,7 @@ msgstr "复制"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Custom command (arguments: %d for dupe, %r for ref):" msgid "Custom command (arguments: %d for dupe, %r for ref):"
msgstr "自定义命令(参数:%d 指重复文件,%r 指源文件):" msgstr "自定义命令 (参数: %d 指重复文件, %r 指源文件):"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Cut" msgid "Cut"
@ -610,7 +609,7 @@ msgstr "过滤器"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Filter hardness:" msgid "Filter hardness:"
msgstr "过滤强度" msgstr "过滤强度:"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Filter Results..." msgid "Filter Results..."
@ -622,7 +621,7 @@ msgstr "文件夹选择窗口"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Font Size:" msgid "Font Size:"
msgstr "字体大小" msgstr "字体大小:"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Hide dupeGuru" msgid "Hide dupeGuru"
@ -634,7 +633,7 @@ msgstr "隐藏其他"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Ignore files smaller than:" msgid "Ignore files smaller than:"
msgstr "忽略文件,当其小于:" msgstr "忽略文件当其小于:"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Load from file..." msgid "Load from file..."
@ -710,7 +709,7 @@ msgstr "开始重复内容扫描"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "The name '%@' already exists." msgid "The name '%@' already exists."
msgstr "名称“%@”已存在。" msgstr "名称 '%@' 已存在。"
#: cocoa/en.lproj/Localizable.strings:0 #: cocoa/en.lproj/Localizable.strings:0
msgid "Window" msgid "Window"
@ -742,7 +741,7 @@ msgstr "选择一个目录文件以载入"
#: qt\directories_dialog.py:338 #: qt\directories_dialog.py:338
msgid "dupeGuru Results (*.dupegurudirs)" msgid "dupeGuru Results (*.dupegurudirs)"
msgstr "dupeGuru 结果 (*.dupegurudirs)" msgstr "dupeGuru 结果 *.dupegurudirs"
#: qt\directories_dialog.py:347 #: qt\directories_dialog.py:347
msgid "Select a file to save your directories to" msgid "Select a file to save your directories to"
@ -750,7 +749,7 @@ msgstr "选择一个文件来保存您的目录"
#: qt\directories_dialog.py:348 #: qt\directories_dialog.py:348
msgid "dupeGuru Directories (*.dupegurudirs)" msgid "dupeGuru Directories (*.dupegurudirs)"
msgstr "dupeGuru 目录 (*.dupegurudirs)" msgstr "dupeGuru 目录 *.dupegurudirs"
#: qt\exclude_list_dialog.py:44 #: qt\exclude_list_dialog.py:44
msgid "Add" msgid "Add"
@ -766,7 +765,7 @@ msgstr "测试字符串"
#: qt\exclude_list_dialog.py:83 #: qt\exclude_list_dialog.py:83
msgid "Type a python regular expression here..." msgid "Type a python regular expression here..."
msgstr "在此输入一个 python 正则表达式..." msgstr "在此输入一个python正则表达式..."
#: qt\exclude_list_dialog.py:85 #: qt\exclude_list_dialog.py:85
msgid "Type a file system path or filename here..." msgid "Type a file system path or filename here..."
@ -779,7 +778,7 @@ msgid ""
"Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the test string feature by pasting a fake path in it:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the test string feature by pasting a fake path in it:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
"这些(大小写敏感)的 python 正则表达式会在扫描过程中筛选文件。<br>如果目录的名称和某一个正则表达式匹配的话,它们的<strong>默认状态</strong>将为被设为排除状态。<br>每一个被采集的文件都会被进行两种不同的测试来决定它是否会被排除掉:<br><li>1. 没有路径分隔符的正则表达式只会和文件名作比较。</li>\n" "这些大小写敏感的python正则表达式会在扫描过程中筛选文件。<br>如果目录的名称和某一个正则表达式匹配的话,它们的<strong>默认状态</strong>将为被设为排除状态。<br>每一个被采集的文件都会被进行两种不同的测试来决定它是否会被排除掉:<br><li>1. 没有路径分隔符的正则表达式只会和文件名作比较。</li>\n"
"<li>2. 有路径分隔符的正则表达式,会和文件的完整路径作比较。</li><br>\n" "<li>2. 有路径分隔符的正则表达式,会和文件的完整路径作比较。</li><br>\n"
"如:假如您想要仅从“我的图片”目录排除掉 .PNG 文件的话:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>您可以使用测试字符串功能来测试正则表达式,只需要在其中粘贴一个假的路径:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "如:假如您想要仅从“我的图片”目录排除掉 .PNG 文件的话:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>您可以使用测试字符串功能来测试正则表达式,只需要在其中粘贴一个假的路径:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"匹配的正则表达式会被高亮。<br>假如至少有一个高亮的话,在扫描中这个路径将会被忽略。<br><br>以“.”开头的目录和文件默认就会被忽略。<br><br>" "匹配的正则表达式会被高亮。<br>假如至少有一个高亮的话,在扫描中这个路径将会被忽略。<br><br>以“.”开头的目录和文件默认就会被忽略。<br><br>"
@ -837,15 +836,15 @@ msgstr "当图片尺寸大于显示窗口时,显示滚动条来移动图片。
#: qt\preferences_dialog.py:156 #: qt\preferences_dialog.py:156
msgid "Use default position for tab bar (requires restart)" msgid "Use default position for tab bar (requires restart)"
msgstr "在默认位置显示标签栏(需要重启)" msgstr "在默认位置显示Tab Bar(需要重启)"
#: qt\preferences_dialog.py:158 #: qt\preferences_dialog.py:158
msgid "" msgid ""
"Place the tab bar below the main menu instead of next to it\n" "Place the tab bar below the main menu instead of next to it\n"
"On MacOS, the tab bar will fill up the window's width instead." "On MacOS, the tab bar will fill up the window's width instead."
msgstr "" msgstr ""
"把标签栏放在主菜单下面而不是旁边\n" "把Tab Bar放在主菜单下面而不是旁边\n"
"在 MacOS 上,标签栏会填充满整个窗口的宽度。" "在MacOS上Tab Bar会填充满整个窗口的宽度。"
#: qt\preferences_dialog.py:172 #: qt\preferences_dialog.py:172
msgid "Use bold font for references" msgid "Use bold font for references"
@ -888,7 +887,7 @@ msgstr "把标题栏从顶部横向改为左侧竖直"
#: qt\tabbed_window.py:44 #: qt\tabbed_window.py:44
msgid "Show tab bar" msgid "Show tab bar"
msgstr "显示标签栏" msgstr "显示 Tab Bar"
#: qt\exclude_list_dialog.py:152 #: qt\exclude_list_dialog.py:152
msgid "" msgid ""
@ -897,10 +896,10 @@ msgid ""
"Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
"这些 python 正则表达式(区分大小写)将在扫描期间过滤掉文件。<br>如果目录的名称恰好与某个选定的正则表达式匹配,则目录的<strong>默认状态</strong>也将在“目录”选项卡中设置为“已排除”。<br>对于收集的每个文件,将执行以下两个测试以确定是否完全忽略它:<br><li>1、没有路径分隔符的正则表达式将仅与文件名进行比较。</li>\n" "这些大小写敏感的python正则表达式会在扫描过程中对结果进行过滤。<br>除非目录名称和正则表达式匹配,它们的<strong>默认状态</strong>会被设成从目录标签排除。<br>每一个文件都会经过两种测试,以确定它是否会被完全忽略:<br><li>1. 没有路径分隔符的正则表达式,仅用于和文件名进行比较。</li>\n"
"<li>2、包含至少一个路径分隔符的正则表达式将与文件的完整路径进行比较。</li><br>\n" "<li>2. 至少有一个路径分隔符的正则表达式,会被用于和文件的完整路径进行比较。</li><br>\n"
"示例:如果只想从“我的图片”目录中过滤掉 .PNG 文件:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>那么在测试框中粘贴如下虚拟路径后,可以使用“测试字符串”按钮测试正则表达式<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "例如:如果你想要仅在“图片”目录中排除所有.PNG文件<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>你可以使用“测试字符串”按钮来测试你的正则表达式,只需要将虚拟的路径输入测试框即可<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"匹配的正则表达式将突出显示。<br>如果至少有一个突出显示,则在扫描过程中将忽略测试的路径或文件名。<br><br>默认情况下,以英文句点“.”开头的目录和文件将被过滤掉。<br><br>" "匹配的正则表达式会被高亮。<br>假如有至少一个高亮,测试文件的文件名或者路径就会在扫描中被忽略。<br><br>以“.”开头的目录或文件默认会被忽略。<br><br>"
#: qt\app.py:256 #: qt\app.py:256
msgid "Results" msgid "Results"
@ -908,7 +907,7 @@ msgstr "结果"
#: qt\preferences_dialog.py:150 #: qt\preferences_dialog.py:150
msgid "General Interface" msgid "General Interface"
msgstr "通用面" msgstr "通用面"
#: qt\preferences_dialog.py:176 #: qt\preferences_dialog.py:176
msgid "Result Table" msgid "Result Table"
@ -920,15 +919,15 @@ msgstr "详细信息窗口"
#: qt\preferences_dialog.py:285 #: qt\preferences_dialog.py:285
msgid "General" msgid "General"
msgstr "常规" msgstr "一般"
#: qt\preferences_dialog.py:286 #: qt\preferences_dialog.py:286
msgid "Display" msgid "Display"
msgstr "示" msgstr "示"
#: qt\se\preferences_dialog.py:70 #: qt\se\preferences_dialog.py:70
msgid "Partially hash files bigger than" msgid "Partially hash files bigger than"
msgstr "只计算部分哈希值,如果文件大于" msgstr "只计算部分hash,如果文件大于"
#: qt\se\preferences_dialog.py:80 #: qt\se\preferences_dialog.py:80
msgid "MB" msgid "MB"
@ -956,10 +955,7 @@ msgstr "清除缓存"
msgid "" msgid ""
"Do you really want to clear the cache? This will remove all cached file " "Do you really want to clear the cache? This will remove all cached file "
"hashes and picture analysis." "hashes and picture analysis."
msgstr "" msgstr "你确定要清除缓存吗所有缓存的文件hash和图片分析都会被移除。"
"确定要清除缓存吗?\n"
"\n"
"这将删除所有缓存的文件哈希和图片分析。"
#: qt\app.py:299 #: qt\app.py:299
msgid "Cache cleared." msgid "Cache cleared."
@ -979,7 +975,7 @@ msgstr "将扫描操作保存为配置,并保存日志用于优化。"
#: qt\preferences_dialog.py:246 #: qt\preferences_dialog.py:246
msgid "Logs located in: <a href=\"{}\">{}</a>" msgid "Logs located in: <a href=\"{}\">{}</a>"
msgstr "日志位于:<a href=\"{}\">{}</a>" msgstr "日志位于:<a href=\"{}\">{}"
#: qt\preferences_dialog.py:291 #: qt\preferences_dialog.py:291
msgid "Debug" msgid "Debug"
@ -995,11 +991,11 @@ msgstr "版本 {}"
#: qt\about_box.py:49 qt\about_box.py:75 #: qt\about_box.py:49 qt\about_box.py:75
msgid "Checking for updates..." msgid "Checking for updates..."
msgstr "正在检查更新..." msgstr "检查更新..."
#: qt\about_box.py:54 #: qt\about_box.py:54
msgid "Licensed under GPLv3" msgid "Licensed under GPLv3"
msgstr "本项目基于 GPLv3 开源协议发布" msgstr "本项目基于GPLv3开源协议发布"
#: qt\about_box.py:68 #: qt\about_box.py:68
msgid "No update available." msgid "No update available."
@ -1007,7 +1003,7 @@ msgstr "没有新版本。"
#: qt\about_box.py:71 #: qt\about_box.py:71
msgid "New version {} available, download <a href=\"{}\">here</a>." msgid "New version {} available, download <a href=\"{}\">here</a>."
msgstr "新版本 {} 可用,<a href=\"{}\">这里</a>下载。" msgstr "新版本{}可用,<a href=\"{}\">这里</a>下载。"
#: qt\error_report_dialog.py:50 #: qt\error_report_dialog.py:50
msgid "Error Report" msgid "Error Report"
@ -1139,11 +1135,11 @@ msgstr "载入缓存摘要时忽略mtime的不同"
#: qt\progress_window.py:64 #: qt\progress_window.py:64
msgid "Cancel?" msgid "Cancel?"
msgstr "取消?" msgstr ""
#: qt\progress_window.py:65 #: qt\progress_window.py:65
msgid "Are you sure you want to cancel? All progress will be lost." msgid "Are you sure you want to cancel? All progress will be lost."
msgstr "确定要取消吗?这将会导致所有进展都付诸东流。" msgstr ""
#: qt\exclude_list_dialog.py:161 #: qt\exclude_list_dialog.py:161
msgid "" msgid ""
@ -1151,10 +1147,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
"这些 python 正则表达式(区分大小写)将在扫描期间过滤掉文件。<br>如果目录的名称恰好与某个选定的正则表达式匹配,则目录的<strong>默认状态</strong>也将在“目录”选项卡中设置为“已排除”。<br>对于收集的每个文件,将执行以下两个测试以确定是否完全忽略它:<br><li>1、没有路径分隔符的正则表达式将仅与文件名进行比较。</li>\n"
"<li>2、包含至少一个路径分隔符的正则表达式将与文件的完整路径进行比较。</li><br>示例:如果只想从“我的图片”目录中过滤掉 .PNG 文件:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>那么在测试框中粘贴如下虚拟路径后,可以使用“测试字符串”按钮测试正则表达式:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"匹配的正则表达式将突出显示。<br>如果至少有一个突出显示,则在扫描过程中将忽略测试的路径或文件名。<br><br>默认情况下,以英文句点“.”开头的目录和文件将被过滤掉。<br><br>"
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Chris Ocelot, 2022\n" "Last-Translator: Chris Ocelot, 2022\n"
"Language-Team: Chinese (Taiwan) (https://app.transifex.com/voltaicideas/teams/116153/zh_TW/)\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/voltaicideas/teams/116153/zh_TW/)\n"
"Language: zh_TW\n" "Language: zh_TW\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: utf-8\n" "Content-Transfer-Encoding: utf-8\n"
@ -47,95 +47,95 @@ msgstr "复制中"
msgid "Sending to Trash" msgid "Sending to Trash"
msgstr "正在移至回收站" msgstr "正在移至回收站"
#: core\app.py:289 #: core\app.py:291
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
msgstr "前一项操作还在执行,无法启动新操作。请等待几秒钟后再重试一次。" msgstr "前一项操作还在执行,无法启动新操作。请等待几秒钟后再重试一次。"
#: core\app.py:300 #: core\app.py:302
msgid "No duplicates found." msgid "No duplicates found."
msgstr "没有找到重复文件。" msgstr "没有找到重复文件。"
#: core\app.py:315 #: core\app.py:317
msgid "All marked files were copied successfully." msgid "All marked files were copied successfully."
msgstr "所有已标记的文件已复制成功。" msgstr "所有已标记的文件已复制成功。"
#: core\app.py:317 #: core\app.py:319
msgid "All marked files were moved successfully." msgid "All marked files were moved successfully."
msgstr "所有已标记的文件已移动成功。" msgstr "所有已标记的文件已移动成功。"
#: core\app.py:319 #: core\app.py:321
msgid "All marked files were deleted successfully." msgid "All marked files were deleted successfully."
msgstr "已复制所有标记文件" msgstr "已复制所有标记文件"
#: core\app.py:321 #: core\app.py:323
msgid "All marked files were successfully sent to Trash." msgid "All marked files were successfully sent to Trash."
msgstr "所有已标记的文件已成功移至回收站。" msgstr "所有已标记的文件已成功移至回收站。"
#: core\app.py:326 #: core\app.py:328
msgid "Could not load file: {}" msgid "Could not load file: {}"
msgstr "无法加载文件: {}" msgstr "无法加载文件: {}"
#: core\app.py:382 #: core\app.py:384
msgid "'{}' already is in the list." msgid "'{}' already is in the list."
msgstr "'{}' 已在列表中。" msgstr "'{}' 已在列表中。"
#: core\app.py:384 #: core\app.py:386
msgid "'{}' does not exist." msgid "'{}' does not exist."
msgstr "'{}' 不存在。" msgstr "'{}' 不存在。"
#: core\app.py:392 #: core\app.py:394
msgid "" msgid ""
"All selected %d matches are going to be ignored in all subsequent scans. " "All selected %d matches are going to be ignored in all subsequent scans. "
"Continue?" "Continue?"
msgstr "目前已选的 %d 个匹配项将在后续的扫描中被忽略。是否继续?" msgstr "目前已选的 %d 个匹配项将在后续的扫描中被忽略。是否继续?"
#: core\app.py:469 #: core\app.py:471
msgid "Select a directory to copy marked files to" msgid "Select a directory to copy marked files to"
msgstr "请选择要将标记文件复制到的目录" msgstr "请选择要将标记文件复制到的目录"
#: core\app.py:471 #: core\app.py:473
msgid "Select a directory to move marked files to" msgid "Select a directory to move marked files to"
msgstr "请选择要将标记文件移动到的目录" msgstr "请选择要将标记文件移动到的目录"
#: core\app.py:510 #: core\app.py:512
msgid "Select a destination for your exported CSV" msgid "Select a destination for your exported CSV"
msgstr "选择您导出 CSV 的目标文件夹" msgstr "选择您导出 CSV 的目标文件夹"
#: core\app.py:516 core\app.py:777 core\app.py:787 #: core\app.py:518 core\app.py:773 core\app.py:783
msgid "Couldn't write to file: {}" msgid "Couldn't write to file: {}"
msgstr "不能写入文件: {}" msgstr "不能写入文件: {}"
#: core\app.py:539 #: core\app.py:541
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "您没有设定自定义命令。请在设置中进行设定。" msgstr "您没有设定自定义命令。请在设置中进行设定。"
#: core\app.py:701 core\app.py:713 #: core\app.py:697 core\app.py:709
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "您将从结果中移除 %d 个文件。是否继续?" msgstr "您将从结果中移除 %d 个文件。是否继续?"
#: core\app.py:749 #: core\app.py:745
msgid "{} duplicate groups were changed by the re-prioritization." msgid "{} duplicate groups were changed by the re-prioritization."
msgstr "{}个重复的组已被重新排列。" msgstr "{}个重复的组已被重新排列。"
#: core\app.py:797 #: core\app.py:792
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "所选目录中不包含可供扫描的文件。" msgstr "所选目录中不包含可供扫描的文件。"
#: core\app.py:813 #: core\app.py:808
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "收集文件以供扫描" msgstr "收集文件以供扫描"
#: core\app.py:863 #: core\app.py:858
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d 项已丢弃)" msgstr "%s (%d 项已丢弃)"
#: core\directories.py:191 #: core\directories.py:190
msgid "Collected {} files to scan" msgid "Collected {} files to scan"
msgstr "收集要扫描的{}文件" msgstr "收集要扫描的{}文件"
#: core\directories.py:207 #: core\directories.py:206
msgid "Collected {} folders to scan" msgid "Collected {} folders to scan"
msgstr "收集要扫描的{}文件夹" msgstr "收集要扫描的{}文件夹"
@ -171,23 +171,23 @@ msgstr "分组比较文件名(不固定顺序(如作者-歌曲名或者歌
msgid "Tags" msgid "Tags"
msgstr "标签" msgstr "标签"
#: core\me\scanner.py:24 core\pe\scanner.py:22 core\se\scanner.py:17 #: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
msgid "Contents" msgid "Contents"
msgstr "内容" msgstr "内容"
#: core\pe\matchblock.py:66 #: core\pe\matchblock.py:72
msgid "Analyzed %d/%d pictures" msgid "Analyzed %d/%d pictures"
msgstr "已分析 %d/%d 图像" msgstr "已分析 %d/%d 图像"
#: core\pe\matchblock.py:183 #: core\pe\matchblock.py:177
msgid "Performed %d/%d chunk matches" msgid "Performed %d/%d chunk matches"
msgstr "已执行 %d/%d 个区块匹配" msgstr "已执行 %d/%d 个区块匹配"
#: core\pe\matchblock.py:191 #: core\pe\matchblock.py:185
msgid "Preparing for matching" msgid "Preparing for matching"
msgstr "准备进行匹配" msgstr "准备进行匹配"
#: core\pe\matchblock.py:240 #: core\pe\matchblock.py:234
msgid "Verified %d/%d matches" msgid "Verified %d/%d matches"
msgstr "已验证 %d/%d 匹配项" msgstr "已验证 %d/%d 匹配项"
@ -195,7 +195,7 @@ msgstr "已验证 %d/%d 匹配项"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "已读取 %d/%d 张图片的 EXIF" msgstr "已读取 %d/%d 张图片的 EXIF"
#: core\pe\scanner.py:23 #: core\pe\scanner.py:22
msgid "EXIF Timestamp" msgid "EXIF Timestamp"
msgstr "EXIF 时间戳" msgstr "EXIF 时间戳"
@ -235,19 +235,23 @@ msgstr "最新"
msgid "Oldest" msgid "Oldest"
msgstr "最旧" msgstr "最旧"
#: core\results.py:135 #: core\results.py:134
msgid "%d / %d (%s / %s) duplicates marked." msgid "%d / %d (%s / %s) duplicates marked."
msgstr "已标记 %d / %d (%s / %s) 个重复项。" msgstr "已标记 %d / %d (%s / %s) 个重复项。"
#: core\results.py:142 #: core\results.py:141
msgid " filter: %s" msgid " filter: %s"
msgstr " 过滤: %s" msgstr " 过滤: %s"
#: core\scanner.py:114 #: core\scanner.py:90
msgid "Read size of %d/%d files"
msgstr "已读取 %d/%d 文件大小"
#: core\scanner.py:116
msgid "Read metadata of %d/%d files" msgid "Read metadata of %d/%d files"
msgstr "已读取 %d/%d 文件元数据" msgstr "已读取 %d/%d 文件元数据"
#: core\scanner.py:152 #: core\scanner.py:154
msgid "Almost done! Fiddling with results..." msgid "Almost done! Fiddling with results..."
msgstr "即将完成!整理结果中..." msgstr "即将完成!整理结果中..."

View File

@ -1,12 +1,12 @@
# Translators: # Translators:
# Fuan <jcfrt@posteo.net>, 2022 # Fuan <jcfrt@posteo.net>, 2022
# 太子 VC <taiziccf@gmail.com>, 2022 # 太子 VC <taiziccf@gmail.com>, 2022
# Andrew Senetar <arsenetar@gmail.com>, 2022
# Chris Ocelot, 2023 # Chris Ocelot, 2023
# Andrew Senetar <arsenetar@gmail.com>, 2023
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2023\n" "Last-Translator: Chris Ocelot, 2023\n"
"Language-Team: Chinese (Taiwan) (https://app.transifex.com/voltaicideas/teams/116153/zh_TW/)\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/voltaicideas/teams/116153/zh_TW/)\n"
"Language: zh_TW\n" "Language: zh_TW\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -1147,7 +1147,3 @@ msgid ""
"<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n" "<li>2. Regular expressions with at least one path separator in them will be compared to the full path to the file.</li><br>Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>" "Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr "" msgstr ""
#: qt\pe\preferences_dialog.py:24
msgid "Match pictures of different rotations"
msgstr ""

View File

@ -58,44 +58,36 @@ class ViewerToolBar(QToolBar):
( (
"actionZoomIn", "actionZoomIn",
QKeySequence.ZoomIn, QKeySequence.ZoomIn,
(
QIcon.fromTheme("zoom-in") QIcon.fromTheme("zoom-in")
if ISLINUX and not self.parent.app.prefs.details_dialog_override_theme_icons if ISLINUX and not self.parent.app.prefs.details_dialog_override_theme_icons
else QIcon(QPixmap(":/" + "zoom_in")) else QIcon(QPixmap(":/" + "zoom_in")),
),
tr("Increase zoom"), tr("Increase zoom"),
controller.zoomIn, controller.zoomIn,
), ),
( (
"actionZoomOut", "actionZoomOut",
QKeySequence.ZoomOut, QKeySequence.ZoomOut,
(
QIcon.fromTheme("zoom-out") QIcon.fromTheme("zoom-out")
if ISLINUX and not self.parent.app.prefs.details_dialog_override_theme_icons if ISLINUX and not self.parent.app.prefs.details_dialog_override_theme_icons
else QIcon(QPixmap(":/" + "zoom_out")) else QIcon(QPixmap(":/" + "zoom_out")),
),
tr("Decrease zoom"), tr("Decrease zoom"),
controller.zoomOut, controller.zoomOut,
), ),
( (
"actionNormalSize", "actionNormalSize",
tr("Ctrl+/"), tr("Ctrl+/"),
(
QIcon.fromTheme("zoom-original") QIcon.fromTheme("zoom-original")
if ISLINUX and not self.parent.app.prefs.details_dialog_override_theme_icons if ISLINUX and not self.parent.app.prefs.details_dialog_override_theme_icons
else QIcon(QPixmap(":/" + "zoom_original")) else QIcon(QPixmap(":/" + "zoom_original")),
),
tr("Normal size"), tr("Normal size"),
controller.zoomNormalSize, controller.zoomNormalSize,
), ),
( (
"actionBestFit", "actionBestFit",
tr("Ctrl+*"), tr("Ctrl+*"),
(
QIcon.fromTheme("zoom-best-fit") QIcon.fromTheme("zoom-best-fit")
if ISLINUX and not self.parent.app.prefs.details_dialog_override_theme_icons if ISLINUX and not self.parent.app.prefs.details_dialog_override_theme_icons
else QIcon(QPixmap(":/" + "zoom_best_fit")) else QIcon(QPixmap(":/" + "zoom_best_fit")),
),
tr("Best fit"), tr("Best fit"),
controller.zoomBestFit, controller.zoomBestFit,
), ),

View File

@ -29,7 +29,7 @@ class File(PhotoBase):
def _plat_get_blocks(self, block_count_per_side, orientation): def _plat_get_blocks(self, block_count_per_side, orientation):
image = QImage(str(self.path)) image = QImage(str(self.path))
image = image.convertToFormat(QImage.Format_RGB888) image = image.convertToFormat(QImage.Format_RGB888)
if not isinstance(orientation, int): if type(orientation) != int:
logging.warning( logging.warning(
"Orientation for file '%s' was a %s '%s', not an int.", "Orientation for file '%s' was a %s '%s', not an int.",
str(self.path), str(self.path),