Compare commits
217 Commits
6abcedddda
...
4.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
4a40b346a4
|
|||
|
035cdc23b1
|
|||
|
fbdb333457
|
|||
|
e36aab177c
|
|||
|
77116ba94b
|
|||
|
d7f79aefd2
|
|||
|
4c939f379c
|
|||
|
d098fe2281
|
|||
| 09cfbad38d | |||
|
|
528dedd813 | ||
| b30d67b834 | |||
|
|
3e6e74e2a9 | ||
|
|
b919b3ddc8 | ||
|
|
be3862fa8f | ||
|
|
da09920553 | ||
|
|
2baba3bfa0 | ||
|
a659a70dbe
|
|||
|
c9e48a5e3b
|
|||
|
68711162d1
|
|||
|
0b0fd36629
|
|||
|
bf5d151799
|
|||
|
e29a427caf
|
|||
|
95ccbad92b
|
|||
| 421a58a61c | |||
|
|
b5a3313f80 | ||
|
|
116ac18e13 | ||
|
|
32dcd90b50 | ||
|
|
c2fef8d624 | ||
|
fd0adc77b3
|
|||
|
6a03e1e399
|
|||
|
ae51842007
|
|||
| ab6acd9e88 | |||
|
6a2c1eb293
|
|||
| 7b4c31d262 | |||
|
|
5553414205 | ||
|
|
b138dfad33 | ||
| 701e6d4bb2 | |||
|
b44d1652b6
|
|||
|
|
990eaaa797 | ||
|
|
348ce95f83 | ||
|
|
3255bdf0a2 | ||
|
|
1058247b44 | ||
|
|
7414f82e28 | ||
|
|
8105bb709f | ||
|
ec628751af
|
|||
|
|
288023d03e | ||
|
|
7740dfca0e | ||
|
1e12ad8d4c
|
|||
|
|
c1d94d6771 | ||
| 7f691d3c31 | |||
|
|
a93bd3aeee | ||
|
|
39d353d073 | ||
|
|
b76e86686a | ||
|
|
b5f59d27c9 | ||
|
|
f0d3dec517 | ||
|
|
90c7c067b7 | ||
|
c8cfa954d5
|
|||
|
|
e533a396fb | ||
|
|
4b4cc04e87 | ||
|
e822a67b38
|
|||
|
c30c3400d4
|
|||
|
d539517525
|
|||
|
|
07eba09ec2 | ||
|
|
7f19647e4b | ||
| bf7d720126 | |||
|
|
6bc619055e | ||
|
|
452d1604bd | ||
|
|
680cb581c1 | ||
| 1d05f8910d | |||
|
|
bd09b30468 | ||
| 8d9933d035 | |||
|
|
cf5ba038d7 | ||
|
|
59ce740369 | ||
|
|
92feba5f08 | ||
|
|
a265b71d36 | ||
| 8d26c921a0 | |||
|
|
32d66cd19b | ||
|
|
735ba2fd0e | ||
|
|
b16b6ecf4d | ||
|
|
2875448c71 | ||
|
|
51b76385c0 | ||
|
|
b9f8dd6ea0 | ||
|
|
6623b04403 | ||
|
|
424d34a7ed | ||
|
|
2a032d24bc | ||
|
|
b8af2a4eb5 | ||
|
|
a55e02b36d | ||
|
|
18c933b4bf | ||
|
|
ea11a566af | ||
|
|
584e9c92d9 | ||
|
|
4a1641e39d | ||
|
|
26d18945b1 | ||
|
|
3382bd5e5b | ||
|
|
9f223f3964 | ||
|
|
2eaf7e7893 | ||
|
|
a26de27c47 | ||
|
|
21e62b7374 | ||
| 9e6b117327 | |||
|
|
3333d26557 | ||
|
|
6e81042989 | ||
|
|
470307aa3c | ||
|
|
089f00adb8 | ||
|
|
76fbfc2822 | ||
|
|
866bf996cf | ||
|
|
0104d8922c | ||
|
|
fbd7c4fe5f | ||
|
|
de5e61293b | ||
|
|
a3e402a3af | ||
|
|
056fa819cc | ||
|
|
3be1ee87c6 | ||
|
|
628d772766 | ||
|
|
acdeb01206 | ||
| ab402d4024 | |||
|
|
d2cdcc989b | ||
|
|
2620d0080c | ||
|
|
63a9f00552 | ||
|
|
87f9317805 | ||
|
|
a542168a0d | ||
|
|
86e1b55b02 | ||
|
|
1b3b40543b | ||
|
|
dd6ffe08d7 | ||
|
|
11254381a8 | ||
|
|
23642815f6 | ||
|
|
7e4f371841 | ||
|
|
9b8637ffc8 | ||
|
|
79613f9b1e | ||
|
|
fa54e93236 | ||
|
|
8fb82ae3d8 | ||
|
|
eab5003e61 | ||
|
|
da8c493c9f | ||
|
|
9795f14176 | ||
|
|
1937120ad7 | ||
|
|
1823575af4 | ||
|
|
7dc9f25b06 | ||
| 5502b48089 | |||
| f02b66fd54 | |||
| d2235f9bc9 | |||
|
|
5f5f9232c1 | ||
| c36fd84512 | |||
|
|
63b2f95cfa | ||
|
|
d193e1fd12 | ||
|
|
f0adf35db4 | ||
|
|
49a1beb225 | ||
|
|
f19b5d6ea6 | ||
|
|
730fadf63f | ||
|
|
9ae0d7e5cf | ||
| 1167519730 | |||
|
|
cf64565012 | ||
|
|
298f659f6e | ||
|
|
3539263437 | ||
|
|
6213d50670 | ||
|
|
ac941037ff | ||
|
|
733b3b0ed4 | ||
|
|
9168d72f38 | ||
|
|
75621cc816 | ||
|
|
3c816b2f11 | ||
|
|
85d6e05cd4 | ||
|
|
66127d025e | ||
|
|
58c675d1fa | ||
|
|
95b8406c7b | ||
|
|
3eddeb6aeb | ||
|
|
56912a7108 | ||
|
|
7ab299874d | ||
|
|
a4265e7fff | ||
|
|
db228ec8a3 | ||
|
|
61fc4f07ae | ||
|
|
b0a256f0d4 | ||
|
|
4ee9479a5f | ||
|
|
e7b3252534 | ||
|
|
36ab84423a | ||
|
|
370b582c9b | ||
|
|
9f15139d5f | ||
|
|
011939f5ee | ||
|
|
977c20f7c4 | ||
|
|
aa79b31aae | ||
|
|
970bb5e19d | ||
|
|
a706d0ebe5 | ||
|
|
b7abcf2989 | ||
|
|
8103cb3664 | ||
|
|
c3797918d2 | ||
|
|
60ddb9b596 | ||
|
|
a29f3fb407 | ||
|
|
c6162914ed | ||
|
|
02bd822ca0 | ||
|
|
ea6197626b | ||
|
|
468a736bfb | ||
|
|
f42df12a29 | ||
|
|
9b48e1851d | ||
|
|
c973224fa4 | ||
|
092cf1471b
|
|||
|
|
5cbe342d5b | ||
|
4f252480d3
|
|||
|
5cc439d846
|
|||
|
|
c6f5031dd8 | ||
|
|
eb6946343b | ||
|
|
e41a6b878c | ||
|
ee2671a5f3
|
|||
|
e05c72ad8c
|
|||
| 7658cdafbc | |||
|
ecf005fad0
|
|||
| de0542d2a8 | |||
|
|
bcb26507fe | ||
| c35db7f698 | |||
|
d2193328a7
|
|||
|
|
ed64428c80 | ||
|
|
e89156e55c | ||
|
4c9309ea9c
|
|||
| 1c00331bc2 | |||
| 427e32f406 | |||
|
|
b048fa5968 | ||
| d5a6ca7488 | |||
|
|
d15dea7aa0 | ||
|
|
ccb1c75f22 | ||
|
|
dffbed8e22 | ||
|
|
50ce010212 | ||
|
|
0e8cd32a6e | ||
|
|
ea191a8924 |
24
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,24 +0,0 @@
|
||||
# Instructions
|
||||
1. Provide a short descriptive title for the issue. A good example is 'Results window appears off screen.', a non-optimal example is 'Problem with App'.
|
||||
2. Please fill out either the 'Bug / Issue' or the 'Feature Request' section. Replace values in ` `.
|
||||
3. Delete these instructions and the unused sections.
|
||||
|
||||
# Bug / issue Report
|
||||
System Information:
|
||||
- DupeGuru Version: `version`
|
||||
- Operating System: `Windows/Linux/OSX` `distribution` `version`
|
||||
|
||||
If using the source distribution and building yourself also provide (otherwise remove):
|
||||
- Python Version: `version ex. 3.6.6` `32/64bit`
|
||||
- Complier: `gcc/llvm/msvc` `version`
|
||||
|
||||
## Description
|
||||
`Provide a detailed description of the issue to help reproduce it. If it happens after a specific sequence of events provide them here.`
|
||||
|
||||
## Debug Log
|
||||
```
|
||||
If reporting an error provide the debug log and/or the error message information. If the debug log is short < 40 lines you can provide it here, otherwise attach the text file to this issue.
|
||||
```
|
||||
|
||||
# Feature Requests
|
||||
`Provide a detailed description of the feature.`
|
||||
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. Windows 10 / OSX 10.15 / Ubuntu 20.04 / Arch Linux]
|
||||
- Version [e.g. 4.1.0]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here. You may include the debug log although it is normally best to attach it as a file.
|
||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: feature
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
5
.gitignore
vendored
@@ -19,7 +19,10 @@ cocoa/autogen
|
||||
/qt/*_rc.py
|
||||
/help/*/conf.py
|
||||
/help/*/changelog.rst
|
||||
/transifex
|
||||
|
||||
*.pyd
|
||||
*.exe
|
||||
*.spec
|
||||
*.spec
|
||||
|
||||
.vscode
|
||||
|
||||
20
.travis.yml
@@ -12,18 +12,16 @@ matrix:
|
||||
dist: "xenial"
|
||||
python: "3.7"
|
||||
- os: "linux"
|
||||
dist: "xenial"
|
||||
dist: "focal"
|
||||
python: "3.8"
|
||||
- os: "linux"
|
||||
dist: "focal"
|
||||
python: "3.9"
|
||||
- os: "windows"
|
||||
language: shell
|
||||
python: "3.7"
|
||||
env: "PATH=/c/python37:/c/python37/Scripts:$PATH"
|
||||
python: "3.8"
|
||||
env: "PATH=/c/python38:/c/python38/Scripts:$PATH"
|
||||
before_install:
|
||||
- choco install python --version=3.7.6
|
||||
- choco install make
|
||||
- cp /c/python37/python.exe /c/python37/python3.exe
|
||||
before_script:
|
||||
- pip3 install -r requirements-windows.txt
|
||||
- python3 build.py
|
||||
script:
|
||||
- tox -e WINDOWS
|
||||
- choco install python --version=3.8.6
|
||||
- cp /c/python38/python.exe /c/python38/python3.exe
|
||||
script: tox -e py38
|
||||
|
||||
2
CREDITS
@@ -1,6 +1,8 @@
|
||||
To know who contributed to dupeGuru, you can look at the commit log, but not all contributions
|
||||
result in a commit. This file lists contributors who don't necessarily appear in the commit log.
|
||||
|
||||
* Jason Cho, Exchange icon
|
||||
* schollidesign (https://findicons.com/pack/1035/human_o2), Zoom-in, Zoom-out, Zoom-best-fit, Zoom-original icons
|
||||
* Jérôme Cantin, Main icon
|
||||
* Gregor Tätzner, German localization
|
||||
* Frank Weber, German localization
|
||||
|
||||
46
Makefile
@@ -1,7 +1,7 @@
|
||||
PYTHON ?= python3
|
||||
PYTHON_VERSION_MINOR := $(shell ${PYTHON} -c "import sys; print(sys.version_info.minor)")
|
||||
PYRCC5 ?= pyrcc5
|
||||
REQ_MINOR_VERSION = 4
|
||||
REQ_MINOR_VERSION = 6
|
||||
PREFIX ?= /usr/local
|
||||
|
||||
# Window compatability via Msys2
|
||||
@@ -15,7 +15,7 @@ ifeq ($(shell ${PYTHON} -c "import platform; print(platform.system())"), Windows
|
||||
VENV_OPTIONS =
|
||||
else
|
||||
BIN = bin
|
||||
SO = cpython-3$(PYTHON_VERSION_MINOR)*.so
|
||||
SO = *.so
|
||||
VENV_OPTIONS = --system-site-packages
|
||||
endif
|
||||
|
||||
@@ -43,16 +43,16 @@ mofiles = $(patsubst %.po,%.mo,$(pofiles))
|
||||
vpath %.po $(localedirs)
|
||||
vpath %.mo $(localedirs)
|
||||
|
||||
all : | env i18n modules qt/dg_rc.py
|
||||
all: | env i18n modules qt/dg_rc.py
|
||||
@echo "Build complete! You can run dupeGuru with 'make run'"
|
||||
|
||||
run:
|
||||
$(VENV_PYTHON) run.py
|
||||
|
||||
pyc:
|
||||
${PYTHON} -m compileall ${packages}
|
||||
pyc: | env
|
||||
${VENV_PYTHON} -m compileall ${packages}
|
||||
|
||||
reqs :
|
||||
reqs:
|
||||
ifneq ($(shell test $(PYTHON_VERSION_MINOR) -gt $(REQ_MINOR_VERSION); echo $$?),0)
|
||||
$(error "Python 3.${REQ_MINOR_VERSION}+ required. Aborting.")
|
||||
endif
|
||||
@@ -63,7 +63,7 @@ endif
|
||||
@${PYTHON} -c 'import PyQt5' >/dev/null 2>&1 || \
|
||||
{ echo "PyQt 5.4+ required. Install it and try again. Aborting"; exit 1; }
|
||||
|
||||
env : | reqs
|
||||
env: | reqs
|
||||
ifndef NO_VENV
|
||||
@echo "Creating our virtualenv"
|
||||
${PYTHON} -m venv env
|
||||
@@ -73,40 +73,26 @@ ifndef NO_VENV
|
||||
${PYTHON} -m venv --upgrade ${VENV_OPTIONS} env
|
||||
endif
|
||||
|
||||
build/help : | env
|
||||
build/help: | env
|
||||
$(VENV_PYTHON) build.py --doc
|
||||
|
||||
qt/dg_rc.py : qt/dg.qrc
|
||||
qt/dg_rc.py: qt/dg.qrc
|
||||
$(PYRCC5) qt/dg.qrc > qt/dg_rc.py
|
||||
|
||||
i18n: $(mofiles)
|
||||
|
||||
%.mo : %.po
|
||||
%.mo: %.po
|
||||
msgfmt -o $@ $<
|
||||
|
||||
core/pe/_block.$(SO) : core/pe/modules/block.c core/pe/modules/common.c
|
||||
$(PYTHON) hscommon/build_ext.py $^ _block
|
||||
mv _block.$(SO) core/pe
|
||||
modules: | env
|
||||
$(VENV_PYTHON) build.py --modules
|
||||
|
||||
core/pe/_cache.$(SO) : core/pe/modules/cache.c core/pe/modules/common.c
|
||||
$(PYTHON) hscommon/build_ext.py $^ _cache
|
||||
mv _cache.$(SO) core/pe
|
||||
|
||||
qt/pe/_block_qt.$(SO) : qt/pe/modules/block.c
|
||||
$(PYTHON) hscommon/build_ext.py $^ _block_qt
|
||||
mv _block_qt.$(SO) qt/pe
|
||||
|
||||
modules : core/pe/_block.$(SO) core/pe/_cache.$(SO) qt/pe/_block_qt.$(SO)
|
||||
|
||||
mergepot :
|
||||
mergepot: | env
|
||||
$(VENV_PYTHON) build.py --mergepot
|
||||
|
||||
normpo :
|
||||
normpo: | env
|
||||
$(VENV_PYTHON) build.py --normpo
|
||||
|
||||
srcpkg :
|
||||
./scripts/srcpkg.sh
|
||||
|
||||
install: all pyc
|
||||
mkdir -p ${DESTDIR}${PREFIX}/share/dupeguru
|
||||
cp -rf ${packages} locale ${DESTDIR}${PREFIX}/share/dupeguru
|
||||
@@ -123,7 +109,7 @@ installdocs: build/help
|
||||
mkdir -p ${DESTDIR}${PREFIX}/share/dupeguru
|
||||
cp -rf build/help ${DESTDIR}${PREFIX}/share/dupeguru
|
||||
|
||||
uninstall :
|
||||
uninstall:
|
||||
rm -rf "${DESTDIR}${PREFIX}/share/dupeguru"
|
||||
rm -f "${DESTDIR}${PREFIX}/bin/dupeguru"
|
||||
rm -f "${DESTDIR}${PREFIX}/share/applications/dupeguru.desktop"
|
||||
@@ -134,4 +120,4 @@ clean:
|
||||
-rm locale/*/LC_MESSAGES/*.mo
|
||||
-rm core/pe/*.$(SO) qt/pe/*.$(SO)
|
||||
|
||||
.PHONY : clean srcpkg normpo mergepot modules i18n reqs run pyc install uninstall all
|
||||
.PHONY: clean normpo mergepot modules i18n reqs run pyc install uninstall all
|
||||
|
||||
70
README.md
@@ -1,19 +1,18 @@
|
||||
# dupeGuru
|
||||
|
||||
[dupeGuru][dupeguru] is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in
|
||||
a system. It's written mostly in Python 3 and has the peculiarity of using
|
||||
a system. It is written mostly in Python 3 and has the peculiarity of using
|
||||
[multiple GUI toolkits][cross-toolkit], all using the same core Python code. On OS X, the UI layer
|
||||
is written in Objective-C and uses Cocoa. On Linux, it's written in Python and uses Qt5.
|
||||
is written in Objective-C and uses Cocoa. On Linux, it is written in Python and uses Qt5.
|
||||
|
||||
The Cocoa UI of dupeGuru is hosted in a separate repo: https://github.com/hsoft/dupeguru-cocoa
|
||||
The Cocoa UI of dupeGuru is hosted in a separate repo: https://github.com/arsenetar/dupeguru-cocoa
|
||||
|
||||
## Current status
|
||||
|
||||
Development has been slow this past year, however very close to getting all the different 4.0.4 releases posted. Most of the work this past year (2019) has been towards packaging the application and issues related to that.
|
||||
|
||||
Still looking for additional help especially with regards to:
|
||||
- OSX maintenance (reproducing bugs & cocoa version)
|
||||
- Linux maintenance (reproducing bugs)
|
||||
* OSX maintenance: reproducing bugs & cocoa version, building package with Cocoa UI.
|
||||
* Linux maintenance: reproducing bugs, maintaining PPA repository, Debian package.
|
||||
* Translations: updating missing strings, transifex project at https://www.transifex.com/voltaicideas/dupeguru-1
|
||||
* Documentation: keeping it up-to-date.
|
||||
|
||||
## Contents of this folder
|
||||
|
||||
@@ -31,26 +30,61 @@ This folder contains the source for dupeGuru. Its documentation is in `help`, bu
|
||||
|
||||
## How to build dupeGuru from source
|
||||
|
||||
### Windows
|
||||
### Windows & macOS specific additional instructions
|
||||
For windows instructions see the [Windows Instructions](Windows.md).
|
||||
|
||||
### Prerequisites
|
||||
For macos instructions (qt version) see the [macOS Instructions](macos.md).
|
||||
|
||||
* [Python 3.5+][python]
|
||||
### Prerequisites
|
||||
* [Python 3.6+][python]
|
||||
* PyQt5
|
||||
|
||||
### make
|
||||
### System Setup
|
||||
When running in a linux based environment the following system packages or equivalents are needed to build:
|
||||
* python3-pyqt5
|
||||
* pyqt5-dev-tools (on some systems, see note)
|
||||
* python3-wheel (for hsaudiotag3k)
|
||||
* python3-venv (only if using a virtual environment)
|
||||
* python3-dev
|
||||
* build-essential
|
||||
|
||||
dupeGuru is built with "make":
|
||||
|
||||
$ make
|
||||
$ make run
|
||||
Note: On some linux systems pyrcc5 is not put on the path when installing python3-pyqt5, this will cause some issues with the resource files (and icons). These systems should have a respective pyqt5-dev-tools package, which should also be installed. The presence of pyrcc5 can be checked with `which pyrcc5`. Debian based systems need the extra package, and Arch does not.
|
||||
|
||||
### Generate Debian/Ubuntu package
|
||||
To create packages the following are also needed:
|
||||
* python3-setuptools
|
||||
* debhelper
|
||||
|
||||
$ bash -c "python3 -m venv --system-site-packages env && source env/bin/activate && pip install -r requirements.txt && python3 build.py --clean && python3 package.py"
|
||||
### Building with Make
|
||||
dupeGuru comes with a makefile that can be used to build and run:
|
||||
|
||||
### Running tests
|
||||
$ make && make run
|
||||
|
||||
### Building without Make
|
||||
|
||||
$ cd <dupeGuru directory>
|
||||
$ python3 -m venv --system-site-packages ./env
|
||||
$ source ./env/bin/activate
|
||||
$ pip install -r requirements.txt
|
||||
$ python build.py
|
||||
$ python run.py
|
||||
|
||||
### Generating Debian/Ubuntu package
|
||||
To generate packages the extra requirements in requirements-extra.txt must be installed, the
|
||||
steps are as follows:
|
||||
|
||||
$ cd <dupeGuru directory>
|
||||
$ python3 -m venv --system-site-packages ./env
|
||||
$ source ./env/bin/activate
|
||||
$ pip install -r requirements.txt -r requirements-extra.txt
|
||||
$ python build.py --clean
|
||||
$ python package.py
|
||||
|
||||
This can be made a one-liner (once in the directory) as:
|
||||
|
||||
$ bash -c "python3 -m venv --system-site-packages env && source env/bin/activate && pip install -r requirements.txt -r requirements-extra.txt && python build.py --clean && python package.py"
|
||||
|
||||
## Running tests
|
||||
|
||||
The complete test suite is run with [Tox 1.7+][tox]. If you have it installed system-wide, you
|
||||
don't even need to set up a virtualenv. Just `cd` into the root project folder and run `tox`.
|
||||
|
||||
30
Windows.md
@@ -2,26 +2,26 @@
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- [Python 3.5+][python]
|
||||
- [Visual Studio 2017][vs] or [Visual Studio Build Tools 2017][vsBuildTools] with the Windows 10 SDK
|
||||
- [Python 3.6+][python]
|
||||
- [Visual Studio 2019][vs] or [Visual Studio Build Tools 2019][vsBuildTools] with the Windows 10 SDK
|
||||
- [nsis][nsis] (for installer creation)
|
||||
- [msys2][msys2] (for using makefile method)
|
||||
|
||||
When installing Visual Studio or the Visual Studio Build Tools with the Windows 10 SDK on versions of Windows below 10 be sure to make sure that the Universal CRT is installed before installing Visual studio as noted in the [Windows 10 SDK Notes][win10sdk] and found at [KB2999226][KB2999226].
|
||||
NOTE: When installing Visual Studio or the Visual Studio Build Tools with the Windows 10 SDK on versions of Windows below 10 be sure to make sure that the Universal CRT is installed before installing Visual studio as noted in the [Windows 10 SDK Notes][win10sdk] and found at [KB2999226][KB2999226].
|
||||
|
||||
After installing python it is recommended to update setuptools before compiling packages. To update run (example is for python launcher and 3.7):
|
||||
After installing python it is recommended to update setuptools before compiling packages. To update run (example is for python launcher and 3.8):
|
||||
|
||||
$ py -3.7 -m pip install --upgrade setuptools
|
||||
$ py -3.8 -m pip install --upgrade setuptools
|
||||
|
||||
More details on setting up python for compiling packages on windows can be found on the [python wiki][pythonWindowsCompilers]
|
||||
More details on setting up python for compiling packages on windows can be found on the [python wiki][pythonWindowsCompilers] Take note of the required vc++ versions.
|
||||
|
||||
### With build.py (preferred)
|
||||
To build with a different python version 3.5 vs 3.7 or 32 bit vs 64 bit specify that version instead of -3.7 to the `py` command below. If you want to build additional versions while keeping all virtual environments setup use a different location for each vritual environment.
|
||||
To build with a different python version 3.6 vs 3.8 or 32 bit vs 64 bit specify that version instead of -3.8 to the `py` command below. If you want to build additional versions while keeping all virtual environments setup use a different location for each virtual environment.
|
||||
|
||||
$ cd <dupeGuru directory>
|
||||
$ py -3.7 -m venv .\env
|
||||
$ py -3.8 -m venv .\env
|
||||
$ .\env\Scripts\activate
|
||||
$ pip install -r requirements.txt -r requirements-windows.txt
|
||||
$ pip install -r requirements.txt
|
||||
$ python build.py
|
||||
$ python run.py
|
||||
|
||||
@@ -34,23 +34,21 @@ It is possible to build dupeGuru with the makefile on windows using a compatable
|
||||
Then the following execution of the makefile should work. Pass the correct value for PYTHON to the makefile if not on the path as python3.
|
||||
|
||||
$ cd <dupeGuru directory>
|
||||
$ make PYTHON='py -3.7'
|
||||
$ make PYTHON='py -3.8'
|
||||
$ make run
|
||||
|
||||
NOTE: Install PyQt5 & cx-Freeze with requirements-windows.txt into the venv before running the packaging scripts in the section below.
|
||||
|
||||
### Generate Windows Installer Packages
|
||||
You need to use the respective x86 or x64 version of python to build the 32 bit and 64 bit versions. The build scripts will automatically detect the python architecture for you. When using build.py make sure the resulting python works before continuing to package.py. NOTE: package.py looks for the 'makensis' executable in the default location for a 64 bit windows system. Run the following in the respective virtual environment.
|
||||
You need to use the respective x86 or x64 version of python to build the 32 bit and 64 bit versions. The build scripts will automatically detect the python architecture for you. When using build.py make sure the resulting python works before continuing to package.py. NOTE: package.py looks for the 'makensis' executable in the default location for a 64 bit windows system. The extra requirements need to be installed to run packaging: `pip install -r requirements-extra.txt`. Run the following in the respective virtual environment.
|
||||
|
||||
$ python package.py
|
||||
|
||||
### Running tests
|
||||
The complete test suite can be run with tox just like on linux.
|
||||
The complete test suite can be run with tox just like on linux. NOTE: The extra requirements need to be installed to run unit tests: `pip install -r requirements-extra.txt`.
|
||||
|
||||
[python]: http://www.python.org/
|
||||
[nsis]: http://nsis.sourceforge.net/Main_Page
|
||||
[vs]: https://www.visualstudio.com/downloads/#visual-studio-community-2017
|
||||
[vsBuildTools]: https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017
|
||||
[vs]: https://www.visualstudio.com/downloads/#visual-studio-community-2019
|
||||
[vsBuildTools]: https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2019
|
||||
[win10sdk]: https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
|
||||
[KB2999226]: https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows
|
||||
[pythonWindowsCompilers]: https://wiki.python.org/moin/WindowsCompilers
|
||||
|
||||
53
build.py
@@ -8,6 +8,7 @@ import os
|
||||
import os.path as op
|
||||
from optparse import OptionParser
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
|
||||
from setuptools import setup, Extension
|
||||
|
||||
@@ -54,6 +55,18 @@ def parse_args():
|
||||
dest="normpo",
|
||||
help="Normalize all PO files (do this before commit).",
|
||||
)
|
||||
parser.add_option(
|
||||
"--modules",
|
||||
action="store_true",
|
||||
dest="modules",
|
||||
help="Build the python modules.",
|
||||
)
|
||||
parser.add_option(
|
||||
"--importpo",
|
||||
action="store_true",
|
||||
dest="importpo",
|
||||
help="Import all PO files downloaded from transifex.",
|
||||
)
|
||||
(options, args) = parser.parse_args()
|
||||
return options
|
||||
|
||||
@@ -64,7 +77,7 @@ def build_help():
|
||||
help_basepath = op.join(current_path, "help", "en")
|
||||
help_destpath = op.join(current_path, "build", "help")
|
||||
changelog_path = op.join(current_path, "help", "changelog")
|
||||
tixurl = "https://github.com/hsoft/dupeguru/issues/{}"
|
||||
tixurl = "https://github.com/arsenetar/dupeguru/issues/{}"
|
||||
confrepl = {"language": "en"}
|
||||
changelogtmpl = op.join(current_path, "help", "changelog.tmpl")
|
||||
conftmpl = op.join(current_path, "help", "conf.tmpl")
|
||||
@@ -114,13 +127,40 @@ def build_mergepot():
|
||||
print("Updating .po files using .pot files")
|
||||
loc.merge_pots_into_pos("locale")
|
||||
loc.merge_pots_into_pos(op.join("qtlib", "locale"))
|
||||
loc.merge_pots_into_pos(op.join("cocoalib", "locale"))
|
||||
# loc.merge_pots_into_pos(op.join("cocoalib", "locale"))
|
||||
|
||||
|
||||
def build_normpo():
|
||||
loc.normalize_all_pos("locale")
|
||||
loc.normalize_all_pos(op.join("qtlib", "locale"))
|
||||
loc.normalize_all_pos(op.join("cocoalib", "locale"))
|
||||
# loc.normalize_all_pos(op.join("cocoalib", "locale"))
|
||||
|
||||
|
||||
def build_importpo():
|
||||
basePath = Path.cwd()
|
||||
# expect a folder named transifex with all the .po files from the exports
|
||||
translationsPath = basePath.joinpath("transifex")
|
||||
# locations where the translation files go
|
||||
qtlibPath = basePath.joinpath("qtlib", "locale")
|
||||
localePath = basePath.joinpath("locale")
|
||||
for translation in translationsPath.iterdir():
|
||||
# transifex files are named resource_lang.po so split on first '_'
|
||||
parts = translation.stem.split("_", 1)
|
||||
resource = parts[0]
|
||||
language = parts[1]
|
||||
# make sure qtlib resources go to dedicated folder
|
||||
if resource == "qtlib":
|
||||
outputPath = qtlibPath
|
||||
else:
|
||||
outputPath = localePath
|
||||
outputFolder = outputPath.joinpath(language, "LC_MESSAGES")
|
||||
# create the language folder if it is new
|
||||
if not outputFolder.exists():
|
||||
outputFolder.mkdir(parents=True)
|
||||
# copy the po file over
|
||||
shutil.copy(translation, outputFolder.joinpath(resource + ".po"))
|
||||
# normalize files after complete
|
||||
build_normpo()
|
||||
|
||||
|
||||
def build_pe_modules():
|
||||
@@ -143,7 +183,8 @@ def build_pe_modules():
|
||||
]
|
||||
exts.append(Extension("_block_qt", [op.join("qt", "pe", "modules", "block.c")]))
|
||||
setup(
|
||||
script_args=["build_ext", "--inplace"], ext_modules=exts,
|
||||
script_args=["build_ext", "--inplace"],
|
||||
ext_modules=exts,
|
||||
)
|
||||
move_all("_block_qt*", op.join("qt", "pe"))
|
||||
move_all("_block*", op.join("core", "pe"))
|
||||
@@ -182,6 +223,10 @@ def main():
|
||||
build_mergepot()
|
||||
elif options.normpo:
|
||||
build_normpo()
|
||||
elif options.modules:
|
||||
build_pe_modules()
|
||||
elif options.importpo:
|
||||
build_importpo()
|
||||
else:
|
||||
build_normal()
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
__version__ = "4.0.4"
|
||||
__version__ = "4.1.1"
|
||||
__appname__ = "dupeGuru"
|
||||
|
||||
39
core/app.py
@@ -26,11 +26,13 @@ from .pe.photo import get_delta_dimensions
|
||||
from .util import cmp_value, fix_surrogate_encoding
|
||||
from . import directories, results, export, fs, prioritize
|
||||
from .ignore import IgnoreList
|
||||
from .exclude import ExcludeDict as ExcludeList
|
||||
from .scanner import ScanType
|
||||
from .gui.deletion_options import DeletionOptions
|
||||
from .gui.details_panel import DetailsPanel
|
||||
from .gui.directory_tree import DirectoryTree
|
||||
from .gui.ignore_list_dialog import IgnoreListDialog
|
||||
from .gui.exclude_list_dialog import ExcludeListDialogCore
|
||||
from .gui.problem_dialog import ProblemDialog
|
||||
from .gui.stats_label import StatsLabel
|
||||
|
||||
@@ -137,7 +139,8 @@ class DupeGuru(Broadcaster):
|
||||
os.makedirs(self.appdata)
|
||||
self.app_mode = AppMode.Standard
|
||||
self.discarded_file_count = 0
|
||||
self.directories = directories.Directories()
|
||||
self.exclude_list = ExcludeList()
|
||||
self.directories = directories.Directories(self.exclude_list)
|
||||
self.results = results.Results(self)
|
||||
self.ignore_list = IgnoreList()
|
||||
# In addition to "app-level" options, this dictionary also holds options that will be
|
||||
@@ -155,6 +158,7 @@ class DupeGuru(Broadcaster):
|
||||
self.directory_tree = DirectoryTree(self)
|
||||
self.problem_dialog = ProblemDialog(self)
|
||||
self.ignore_list_dialog = IgnoreListDialog(self)
|
||||
self.exclude_list_dialog = ExcludeListDialogCore(self)
|
||||
self.stats_label = StatsLabel(self)
|
||||
self.result_table = None
|
||||
self.deletion_options = DeletionOptions()
|
||||
@@ -259,7 +263,7 @@ class DupeGuru(Broadcaster):
|
||||
|
||||
def _create_file(self, path):
|
||||
# We add fs.Folder to fileclasses in case the file we're loading contains folder paths.
|
||||
return fs.get_file(path, self.fileclasses + [fs.Folder])
|
||||
return fs.get_file(path, self.fileclasses + [se.fs.Folder])
|
||||
|
||||
def _get_file(self, str_path):
|
||||
path = Path(str_path)
|
||||
@@ -478,9 +482,9 @@ class DupeGuru(Broadcaster):
|
||||
if not self.results.mark_count:
|
||||
self.view.show_message(MSG_NO_MARKED_DUPES)
|
||||
return
|
||||
opname = tr("copy") if copy else tr("move")
|
||||
prompt = tr("Select a directory to {} marked files to").format(opname)
|
||||
destination = self.view.select_dest_folder(prompt)
|
||||
destination = self.view.select_dest_folder(
|
||||
tr("Select a directory to copy marked files to") if copy
|
||||
else tr("Select a directory to move marked files to"))
|
||||
if destination:
|
||||
desttype = self.options["copymove_dest_type"]
|
||||
jobid = JobType.Copy if copy else JobType.Move
|
||||
@@ -539,8 +543,8 @@ class DupeGuru(Broadcaster):
|
||||
return dupe.get_display_info(group, delta)
|
||||
except Exception as e:
|
||||
logging.warning(
|
||||
"Exception on GetDisplayInfo for %s: %s", str(dupe.path), str(e)
|
||||
)
|
||||
"Exception (type: %s) on GetDisplayInfo for %s: %s",
|
||||
type(e), str(dupe.path), str(e))
|
||||
return empty_data()
|
||||
|
||||
def invoke_custom_command(self):
|
||||
@@ -587,6 +591,15 @@ class DupeGuru(Broadcaster):
|
||||
p = op.join(self.appdata, "ignore_list.xml")
|
||||
self.ignore_list.load_from_xml(p)
|
||||
self.ignore_list_dialog.refresh()
|
||||
p = op.join(self.appdata, "exclude_list.xml")
|
||||
self.exclude_list.load_from_xml(p)
|
||||
self.exclude_list_dialog.refresh()
|
||||
|
||||
def load_directories(self, filepath):
|
||||
# Clear out previous entries
|
||||
self.directories.__init__()
|
||||
self.directories.load_from_file(filepath)
|
||||
self.notify("directories_changed")
|
||||
|
||||
def load_from(self, filename):
|
||||
"""Start an async job to load results from ``filename``.
|
||||
@@ -773,6 +786,8 @@ class DupeGuru(Broadcaster):
|
||||
self.directories.save_to_file(op.join(self.appdata, "last_directories.xml"))
|
||||
p = op.join(self.appdata, "ignore_list.xml")
|
||||
self.ignore_list.save_to_xml(p)
|
||||
p = op.join(self.appdata, "exclude_list.xml")
|
||||
self.exclude_list.save_to_xml(p)
|
||||
self.notify("save_session")
|
||||
|
||||
def save_as(self, filename):
|
||||
@@ -785,6 +800,16 @@ class DupeGuru(Broadcaster):
|
||||
except OSError as e:
|
||||
self.view.show_message(tr("Couldn't write to file: {}").format(str(e)))
|
||||
|
||||
def save_directories_as(self, filename):
|
||||
"""Save directories in ``filename``.
|
||||
|
||||
:param str filename: path of the file to save directories (as XML) to.
|
||||
"""
|
||||
try:
|
||||
self.directories.save_to_file(filename)
|
||||
except OSError as e:
|
||||
self.view.show_message(tr("Couldn't write to file: {}").format(str(e)))
|
||||
|
||||
def start_scanning(self):
|
||||
"""Starts an async job to scan for duplicates.
|
||||
|
||||
|
||||
@@ -54,10 +54,11 @@ class Directories:
|
||||
"""
|
||||
|
||||
# ---Override
|
||||
def __init__(self):
|
||||
def __init__(self, exclude_list=None):
|
||||
self._dirs = []
|
||||
# {path: state}
|
||||
self.states = {}
|
||||
self._exclude_list = exclude_list
|
||||
|
||||
def __contains__(self, path):
|
||||
for p in self._dirs:
|
||||
@@ -76,39 +77,62 @@ class Directories:
|
||||
|
||||
# ---Private
|
||||
def _default_state_for_path(self, path):
|
||||
# New logic with regex filters
|
||||
if self._exclude_list is not None and self._exclude_list.mark_count > 0:
|
||||
# We iterate even if we only have one item here
|
||||
for denied_path_re in self._exclude_list.compiled:
|
||||
if denied_path_re.match(str(path.name)):
|
||||
return DirectoryState.Excluded
|
||||
# return # We still use the old logic to force state on hidden dirs
|
||||
# Override this in subclasses to specify the state of some special folders.
|
||||
if path.name.startswith("."): # hidden
|
||||
if path.name.startswith("."):
|
||||
return DirectoryState.Excluded
|
||||
|
||||
def _get_files(self, from_path, fileclasses, j):
|
||||
for root, dirs, files in os.walk(str(from_path)):
|
||||
j.check_if_cancelled()
|
||||
root = Path(root)
|
||||
state = self.get_state(root)
|
||||
rootPath = Path(root)
|
||||
state = self.get_state(rootPath)
|
||||
if state == DirectoryState.Excluded:
|
||||
# Recursively get files from folders with lots of subfolder is expensive. However, there
|
||||
# might be a subfolder in this path that is not excluded. What we want to do is to skim
|
||||
# through self.states and see if we must continue, or we can stop right here to save time
|
||||
if not any(p[: len(root)] == root for p in self.states):
|
||||
if not any(p[: len(rootPath)] == rootPath for p in self.states):
|
||||
del dirs[:]
|
||||
try:
|
||||
if state != DirectoryState.Excluded:
|
||||
found_files = [
|
||||
fs.get_file(root + f, fileclasses=fileclasses) for f in files
|
||||
]
|
||||
# Old logic
|
||||
if self._exclude_list is None or not self._exclude_list.mark_count:
|
||||
found_files = [fs.get_file(rootPath + f, fileclasses=fileclasses) for f in files]
|
||||
else:
|
||||
found_files = []
|
||||
# print(f"len of files: {len(files)} {files}")
|
||||
for f in files:
|
||||
found = False
|
||||
for expr in self._exclude_list.compiled_files:
|
||||
if expr.match(f):
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
for expr in self._exclude_list.compiled_paths:
|
||||
if expr.match(root + os.sep + f):
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
found_files.append(fs.get_file(rootPath + f, fileclasses=fileclasses))
|
||||
found_files = [f for f in found_files if f is not None]
|
||||
# In some cases, directories can be considered as files by dupeGuru, which is
|
||||
# why we have this line below. In fact, there only one case: Bundle files under
|
||||
# OS X... In other situations, this forloop will do nothing.
|
||||
for d in dirs[:]:
|
||||
f = fs.get_file(root + d, fileclasses=fileclasses)
|
||||
f = fs.get_file(rootPath + d, fileclasses=fileclasses)
|
||||
if f is not None:
|
||||
found_files.append(f)
|
||||
dirs.remove(d)
|
||||
logging.debug(
|
||||
"Collected %d files in folder %s",
|
||||
len(found_files),
|
||||
str(from_path),
|
||||
str(rootPath),
|
||||
)
|
||||
for file in found_files:
|
||||
file.is_ref = state == DirectoryState.Reference
|
||||
@@ -194,8 +218,14 @@ class Directories:
|
||||
if path in self.states:
|
||||
return self.states[path]
|
||||
state = self._default_state_for_path(path) or DirectoryState.Normal
|
||||
# Save non-default states in cache, necessary for _get_files()
|
||||
if state != DirectoryState.Normal:
|
||||
self.states[path] = state
|
||||
return state
|
||||
|
||||
prevlen = 0
|
||||
# we loop through the states to find the longest matching prefix
|
||||
# if the parent has a state in cache, return that state
|
||||
for p, s in self.states.items():
|
||||
if p.is_parent_of(path) and len(p) > prevlen:
|
||||
prevlen = len(p)
|
||||
@@ -224,7 +254,7 @@ class Directories:
|
||||
root = ET.parse(infile).getroot()
|
||||
except Exception:
|
||||
return
|
||||
for rdn in root.getiterator("root_directory"):
|
||||
for rdn in root.iter("root_directory"):
|
||||
attrib = rdn.attrib
|
||||
if "path" not in attrib:
|
||||
continue
|
||||
@@ -233,7 +263,7 @@ class Directories:
|
||||
self.add_path(Path(path))
|
||||
except (AlreadyThereError, InvalidPathError):
|
||||
pass
|
||||
for sn in root.getiterator("state"):
|
||||
for sn in root.iter("state"):
|
||||
attrib = sn.attrib
|
||||
if not ("path" in attrib and "value" in attrib):
|
||||
continue
|
||||
|
||||
499
core/exclude.py
Normal file
@@ -0,0 +1,499 @@
|
||||
# This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
from .markable import Markable
|
||||
from xml.etree import ElementTree as ET
|
||||
# TODO: perhaps use regex module for better Unicode support? https://pypi.org/project/regex/
|
||||
# also https://pypi.org/project/re2/
|
||||
# TODO update the Result list with newly added regexes if possible
|
||||
import re
|
||||
from os import sep
|
||||
import logging
|
||||
import functools
|
||||
from hscommon.util import FileOrPath
|
||||
from hscommon.plat import ISWINDOWS
|
||||
import time
|
||||
|
||||
default_regexes = [r"^thumbs\.db$", # Obsolete after WindowsXP
|
||||
r"^desktop\.ini$", # Windows metadata
|
||||
r"^\.DS_Store$", # MacOS metadata
|
||||
r"^\.Trash\-.*", # Linux trash directories
|
||||
r"^\$Recycle\.Bin$", # Windows
|
||||
r"^\..*", # Hidden files on Unix-like
|
||||
]
|
||||
# These are too broad
|
||||
forbidden_regexes = [r".*", r"\/.*", r".*\/.*", r".*\\\\.*", r".*\..*"]
|
||||
|
||||
|
||||
def timer(func):
|
||||
@functools.wraps(func)
|
||||
def wrapper_timer(*args):
|
||||
start = time.perf_counter_ns()
|
||||
value = func(*args)
|
||||
end = time.perf_counter_ns()
|
||||
print(f"DEBUG: func {func.__name__!r} took {end - start} ns.")
|
||||
return value
|
||||
return wrapper_timer
|
||||
|
||||
|
||||
def memoize(func):
|
||||
func.cache = dict()
|
||||
|
||||
@functools.wraps(func)
|
||||
def _memoize(*args):
|
||||
if args not in func.cache:
|
||||
func.cache[args] = func(*args)
|
||||
return func.cache[args]
|
||||
return _memoize
|
||||
|
||||
|
||||
class AlreadyThereException(Exception):
|
||||
"""Expression already in the list"""
|
||||
def __init__(self, arg="Expression is already in excluded list."):
|
||||
super().__init__(arg)
|
||||
|
||||
|
||||
class ExcludeList(Markable):
|
||||
"""A list of lists holding regular expression strings and the compiled re.Pattern"""
|
||||
|
||||
# Used to filter out directories and files that we would rather avoid scanning.
|
||||
# The list() class allows us to preserve item order without too much hassle.
|
||||
# The downside is we have to compare strings every time we look for an item in the list
|
||||
# since we use regex strings as keys.
|
||||
# If _use_union is True, the compiled regexes will be combined into one single
|
||||
# Pattern instead of separate Patterns which may or may not give better
|
||||
# performance compared to looping through each Pattern individually.
|
||||
|
||||
# ---Override
|
||||
def __init__(self, union_regex=True):
|
||||
Markable.__init__(self)
|
||||
self._use_union = union_regex
|
||||
# list([str regex, bool iscompilable, re.error exception, Pattern compiled], ...)
|
||||
self._excluded = []
|
||||
self._excluded_compiled = set()
|
||||
self._dirty = True
|
||||
|
||||
def __iter__(self):
|
||||
"""Iterate in order."""
|
||||
for item in self._excluded:
|
||||
regex = item[0]
|
||||
yield self.is_marked(regex), regex
|
||||
|
||||
def __contains__(self, item):
|
||||
return self.isExcluded(item)
|
||||
|
||||
def __len__(self):
|
||||
"""Returns the total number of regexes regardless of mark status."""
|
||||
return len(self._excluded)
|
||||
|
||||
def __getitem__(self, key):
|
||||
"""Returns the list item corresponding to key."""
|
||||
for item in self._excluded:
|
||||
if item[0] == key:
|
||||
return item
|
||||
raise KeyError(f"Key {key} is not in exclusion list.")
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
# TODO if necessary
|
||||
pass
|
||||
|
||||
def __delitem__(self, key):
|
||||
# TODO if necessary
|
||||
pass
|
||||
|
||||
def get_compiled(self, key):
|
||||
"""Returns the (precompiled) Pattern for key"""
|
||||
return self.__getitem__(key)[3]
|
||||
|
||||
def is_markable(self, regex):
|
||||
return self._is_markable(regex)
|
||||
|
||||
def _is_markable(self, regex):
|
||||
"""Return the cached result of "compilable" property"""
|
||||
for item in self._excluded:
|
||||
if item[0] == regex:
|
||||
return item[1]
|
||||
return False # should not be necessary, the regex SHOULD be in there
|
||||
|
||||
def _did_mark(self, regex):
|
||||
self._add_compiled(regex)
|
||||
|
||||
def _did_unmark(self, regex):
|
||||
self._remove_compiled(regex)
|
||||
|
||||
def _add_compiled(self, regex):
|
||||
self._dirty = True
|
||||
if self._use_union:
|
||||
return
|
||||
for item in self._excluded:
|
||||
# FIXME probably faster to just rebuild the set from the compiled instead of comparing strings
|
||||
if item[0] == regex:
|
||||
# no need to test if already present since it's a set()
|
||||
self._excluded_compiled.add(item[3])
|
||||
break
|
||||
|
||||
def _remove_compiled(self, regex):
|
||||
self._dirty = True
|
||||
if self._use_union:
|
||||
return
|
||||
for item in self._excluded_compiled:
|
||||
if regex in item.pattern:
|
||||
self._excluded_compiled.remove(item)
|
||||
break
|
||||
|
||||
# @timer
|
||||
@memoize
|
||||
def _do_compile(self, expr):
|
||||
try:
|
||||
return re.compile(expr)
|
||||
except Exception as e:
|
||||
raise(e)
|
||||
|
||||
# @timer
|
||||
# @memoize # probably not worth memoizing this one if we memoize the above
|
||||
def compile_re(self, regex):
|
||||
compiled = None
|
||||
try:
|
||||
compiled = self._do_compile(regex)
|
||||
except Exception as e:
|
||||
return False, e, compiled
|
||||
return True, None, compiled
|
||||
|
||||
def error(self, regex):
|
||||
"""Return the compilation error Exception for regex.
|
||||
It should have a "msg" attr."""
|
||||
for item in self._excluded:
|
||||
if item[0] == regex:
|
||||
return item[2]
|
||||
|
||||
def build_compiled_caches(self, union=False):
|
||||
if not union:
|
||||
self._cached_compiled_files =\
|
||||
[x for x in self._excluded_compiled if not has_sep(x.pattern)]
|
||||
self._cached_compiled_paths =\
|
||||
[x for x in self._excluded_compiled if has_sep(x.pattern)]
|
||||
return
|
||||
marked_count = [x for marked, x in self if marked]
|
||||
# If there is no item, the compiled Pattern will be '' and match everything!
|
||||
if not marked_count:
|
||||
self._cached_compiled_union_all = []
|
||||
self._cached_compiled_union_files = []
|
||||
self._cached_compiled_union_paths = []
|
||||
else:
|
||||
# HACK returned as a tuple to get a free iterator and keep interface
|
||||
# the same regardless of whether the client asked for union or not
|
||||
self._cached_compiled_union_all =\
|
||||
(re.compile('|'.join(marked_count)),)
|
||||
files_marked = [x for x in marked_count if not has_sep(x)]
|
||||
if not files_marked:
|
||||
self._cached_compiled_union_files = tuple()
|
||||
else:
|
||||
self._cached_compiled_union_files =\
|
||||
(re.compile('|'.join(files_marked)),)
|
||||
paths_marked = [x for x in marked_count if has_sep(x)]
|
||||
if not paths_marked:
|
||||
self._cached_compiled_union_paths = tuple()
|
||||
else:
|
||||
self._cached_compiled_union_paths =\
|
||||
(re.compile('|'.join(paths_marked)),)
|
||||
|
||||
@property
|
||||
def compiled(self):
|
||||
"""Should be used by other classes to retrieve the up-to-date list of patterns."""
|
||||
if self._use_union:
|
||||
if self._dirty:
|
||||
self.build_compiled_caches(True)
|
||||
self._dirty = False
|
||||
return self._cached_compiled_union_all
|
||||
return self._excluded_compiled
|
||||
|
||||
@property
|
||||
def compiled_files(self):
|
||||
"""When matching against filenames only, we probably won't be seeing any
|
||||
directory separator, so we filter out regexes with os.sep in them.
|
||||
The interface should be expected to be a generator, even if it returns only
|
||||
one item (one Pattern in the union case)."""
|
||||
if self._dirty:
|
||||
self.build_compiled_caches(True if self._use_union else False)
|
||||
self._dirty = False
|
||||
return self._cached_compiled_union_files if self._use_union\
|
||||
else self._cached_compiled_files
|
||||
|
||||
@property
|
||||
def compiled_paths(self):
|
||||
"""Returns patterns with only separators in them, for more precise filtering."""
|
||||
if self._dirty:
|
||||
self.build_compiled_caches(True if self._use_union else False)
|
||||
self._dirty = False
|
||||
return self._cached_compiled_union_paths if self._use_union\
|
||||
else self._cached_compiled_paths
|
||||
|
||||
# ---Public
|
||||
def add(self, regex, forced=False):
|
||||
"""This interface should throw exceptions if there is an error during
|
||||
regex compilation"""
|
||||
if self.isExcluded(regex):
|
||||
# This exception should never be ignored
|
||||
raise AlreadyThereException()
|
||||
if regex in forbidden_regexes:
|
||||
raise Exception("Forbidden (dangerous) expression.")
|
||||
|
||||
iscompilable, exception, compiled = self.compile_re(regex)
|
||||
if not iscompilable and not forced:
|
||||
# This exception can be ignored, but taken into account
|
||||
# to avoid adding to compiled set
|
||||
raise exception
|
||||
else:
|
||||
self._do_add(regex, iscompilable, exception, compiled)
|
||||
|
||||
def _do_add(self, regex, iscompilable, exception, compiled):
|
||||
# We need to insert at the top
|
||||
self._excluded.insert(0, [regex, iscompilable, exception, compiled])
|
||||
|
||||
@property
|
||||
def marked_count(self):
|
||||
"""Returns the number of marked regexes only."""
|
||||
return len([x for marked, x in self if marked])
|
||||
|
||||
def isExcluded(self, regex):
|
||||
for item in self._excluded:
|
||||
if regex == item[0]:
|
||||
return True
|
||||
return False
|
||||
|
||||
def remove(self, regex):
|
||||
for item in self._excluded:
|
||||
if item[0] == regex:
|
||||
self._excluded.remove(item)
|
||||
self._remove_compiled(regex)
|
||||
|
||||
def rename(self, regex, newregex):
|
||||
if regex == newregex:
|
||||
return
|
||||
found = False
|
||||
was_marked = False
|
||||
is_compilable = False
|
||||
for item in self._excluded:
|
||||
if item[0] == regex:
|
||||
found = True
|
||||
was_marked = self.is_marked(regex)
|
||||
is_compilable, exception, compiled = self.compile_re(newregex)
|
||||
# We overwrite the found entry
|
||||
self._excluded[self._excluded.index(item)] =\
|
||||
[newregex, is_compilable, exception, compiled]
|
||||
self._remove_compiled(regex)
|
||||
break
|
||||
if not found:
|
||||
return
|
||||
if is_compilable and was_marked:
|
||||
# Not marked by default when added, add it back
|
||||
self.mark(newregex)
|
||||
|
||||
# def change_index(self, regex, new_index):
|
||||
# """Internal list must be a list, not dict."""
|
||||
# item = self._excluded.pop(regex)
|
||||
# self._excluded.insert(new_index, item)
|
||||
|
||||
def restore_defaults(self):
|
||||
for _, regex in self:
|
||||
if regex not in default_regexes:
|
||||
self.unmark(regex)
|
||||
for default_regex in default_regexes:
|
||||
if not self.isExcluded(default_regex):
|
||||
self.add(default_regex)
|
||||
self.mark(default_regex)
|
||||
|
||||
def load_from_xml(self, infile):
|
||||
"""Loads the ignore list from a XML created with save_to_xml.
|
||||
|
||||
infile can be a file object or a filename.
|
||||
"""
|
||||
try:
|
||||
root = ET.parse(infile).getroot()
|
||||
except Exception as e:
|
||||
logging.warning(f"Error while loading {infile}: {e}")
|
||||
self.restore_defaults()
|
||||
return e
|
||||
|
||||
marked = set()
|
||||
exclude_elems = (e for e in root if e.tag == "exclude")
|
||||
for exclude_item in exclude_elems:
|
||||
regex_string = exclude_item.get("regex")
|
||||
if not regex_string:
|
||||
continue
|
||||
try:
|
||||
# "forced" avoids compilation exceptions and adds anyway
|
||||
self.add(regex_string, forced=True)
|
||||
except AlreadyThereException:
|
||||
logging.error(f"Regex \"{regex_string}\" \
|
||||
loaded from XML was already present in the list.")
|
||||
continue
|
||||
if exclude_item.get("marked") == "y":
|
||||
marked.add(regex_string)
|
||||
|
||||
for item in marked:
|
||||
self.mark(item)
|
||||
|
||||
def save_to_xml(self, outfile):
|
||||
"""Create a XML file that can be used by load_from_xml.
|
||||
outfile can be a file object or a filename."""
|
||||
root = ET.Element("exclude_list")
|
||||
# reversed in order to keep order of entries when reloading from xml later
|
||||
for item in reversed(self._excluded):
|
||||
exclude_node = ET.SubElement(root, "exclude")
|
||||
exclude_node.set("regex", str(item[0]))
|
||||
exclude_node.set("marked", ("y" if self.is_marked(item[0]) else "n"))
|
||||
tree = ET.ElementTree(root)
|
||||
with FileOrPath(outfile, "wb") as fp:
|
||||
tree.write(fp, encoding="utf-8")
|
||||
|
||||
|
||||
class ExcludeDict(ExcludeList):
|
||||
"""Exclusion list holding a set of regular expressions as keys, the compiled
|
||||
Pattern, compilation error and compilable boolean as values."""
|
||||
# Implemntation around a dictionary instead of a list, which implies
|
||||
# to keep the index of each string-key as its sub-element and keep it updated
|
||||
# whenever insert/remove is done.
|
||||
|
||||
def __init__(self, union_regex=False):
|
||||
Markable.__init__(self)
|
||||
self._use_union = union_regex
|
||||
# { "regex string":
|
||||
# {
|
||||
# "index": int,
|
||||
# "compilable": bool,
|
||||
# "error": str,
|
||||
# "compiled": Pattern or None
|
||||
# }
|
||||
# }
|
||||
self._excluded = {}
|
||||
self._excluded_compiled = set()
|
||||
self._dirty = True
|
||||
|
||||
def __iter__(self):
|
||||
"""Iterate in order."""
|
||||
for regex in ordered_keys(self._excluded):
|
||||
yield self.is_marked(regex), regex
|
||||
|
||||
def __getitem__(self, key):
|
||||
"""Returns the dict item correponding to key"""
|
||||
return self._excluded.__getitem__(key)
|
||||
|
||||
def get_compiled(self, key):
|
||||
"""Returns the compiled item for key"""
|
||||
return self.__getitem__(key).get("compiled")
|
||||
|
||||
def is_markable(self, regex):
|
||||
return self._is_markable(regex)
|
||||
|
||||
def _is_markable(self, regex):
|
||||
"""Return the cached result of "compilable" property"""
|
||||
exists = self._excluded.get(regex)
|
||||
if exists:
|
||||
return exists.get("compilable")
|
||||
return False
|
||||
|
||||
def _add_compiled(self, regex):
|
||||
self._dirty = True
|
||||
if self._use_union:
|
||||
return
|
||||
try:
|
||||
self._excluded_compiled.add(self._excluded[regex]["compiled"])
|
||||
except Exception as e:
|
||||
logging.warning(f"Exception while adding regex {regex} to compiled set: {e}")
|
||||
return
|
||||
|
||||
def is_compilable(self, regex):
|
||||
"""Returns the cached "compilable" value"""
|
||||
return self._excluded[regex]["compilable"]
|
||||
|
||||
def error(self, regex):
|
||||
"""Return the compilation error message for regex string"""
|
||||
return self._excluded.get(regex).get("error")
|
||||
|
||||
# ---Public
|
||||
def _do_add(self, regex, iscompilable, exception, compiled):
|
||||
# We always insert at the top, so index should be 0
|
||||
# and other indices should be pushed by one
|
||||
for value in self._excluded.values():
|
||||
value["index"] += 1
|
||||
self._excluded[regex] = {
|
||||
"index": 0,
|
||||
"compilable": iscompilable,
|
||||
"error": exception,
|
||||
"compiled": compiled
|
||||
}
|
||||
|
||||
def isExcluded(self, regex):
|
||||
if regex in self._excluded.keys():
|
||||
return True
|
||||
return False
|
||||
|
||||
def remove(self, regex):
|
||||
old_value = self._excluded.pop(regex)
|
||||
# Bring down all indices which where above it
|
||||
index = old_value["index"]
|
||||
if index == len(self._excluded) - 1: # we start at 0...
|
||||
# Old index was at the end, no need to update other indices
|
||||
self._remove_compiled(regex)
|
||||
return
|
||||
|
||||
for value in self._excluded.values():
|
||||
if value.get("index") > old_value["index"]:
|
||||
value["index"] -= 1
|
||||
self._remove_compiled(regex)
|
||||
|
||||
def rename(self, regex, newregex):
|
||||
if regex == newregex or regex not in self._excluded.keys():
|
||||
return
|
||||
was_marked = self.is_marked(regex)
|
||||
previous = self._excluded.pop(regex)
|
||||
iscompilable, error, compiled = self.compile_re(newregex)
|
||||
self._excluded[newregex] = {
|
||||
"index": previous["index"],
|
||||
"compilable": iscompilable,
|
||||
"error": error,
|
||||
"compiled": compiled
|
||||
}
|
||||
self._remove_compiled(regex)
|
||||
if was_marked and iscompilable:
|
||||
self.mark(newregex)
|
||||
|
||||
def save_to_xml(self, outfile):
|
||||
"""Create a XML file that can be used by load_from_xml.
|
||||
|
||||
outfile can be a file object or a filename.
|
||||
"""
|
||||
root = ET.Element("exclude_list")
|
||||
# reversed in order to keep order of entries when reloading from xml later
|
||||
reversed_list = []
|
||||
for key in ordered_keys(self._excluded):
|
||||
reversed_list.append(key)
|
||||
for item in reversed(reversed_list):
|
||||
exclude_node = ET.SubElement(root, "exclude")
|
||||
exclude_node.set("regex", str(item))
|
||||
exclude_node.set("marked", ("y" if self.is_marked(item) else "n"))
|
||||
tree = ET.ElementTree(root)
|
||||
with FileOrPath(outfile, "wb") as fp:
|
||||
tree.write(fp, encoding="utf-8")
|
||||
|
||||
|
||||
def ordered_keys(_dict):
|
||||
"""Returns an iterator over the keys of dictionary sorted by "index" key"""
|
||||
if not len(_dict):
|
||||
return
|
||||
list_of_items = []
|
||||
for item in _dict.items():
|
||||
list_of_items.append(item)
|
||||
list_of_items.sort(key=lambda x: x[1].get("index"))
|
||||
for item in list_of_items:
|
||||
yield item[0]
|
||||
|
||||
|
||||
if ISWINDOWS:
|
||||
def has_sep(x):
|
||||
return '\\' + sep in x
|
||||
else:
|
||||
def has_sep(x):
|
||||
return sep in x
|
||||
71
core/gui/exclude_list_dialog.py
Normal file
@@ -0,0 +1,71 @@
|
||||
# Created On: 2012/03/13
|
||||
# Copyright 2015 Hardcoded Software (http://www.hardcoded.net)
|
||||
#
|
||||
# This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
# from hscommon.trans import tr
|
||||
from .exclude_list_table import ExcludeListTable
|
||||
import logging
|
||||
|
||||
|
||||
class ExcludeListDialogCore:
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
self.exclude_list = self.app.exclude_list # Markable from exclude.py
|
||||
self.exclude_list_table = ExcludeListTable(self, app) # GUITable, this is the "model"
|
||||
|
||||
def restore_defaults(self):
|
||||
self.exclude_list.restore_defaults()
|
||||
self.refresh()
|
||||
|
||||
def refresh(self):
|
||||
self.exclude_list_table.refresh()
|
||||
|
||||
def remove_selected(self):
|
||||
for row in self.exclude_list_table.selected_rows:
|
||||
self.exclude_list_table.remove(row)
|
||||
self.exclude_list.remove(row.regex)
|
||||
self.refresh()
|
||||
|
||||
def rename_selected(self, newregex):
|
||||
"""Renames the selected regex to ``newregex``.
|
||||
If there's more than one selected row, the first one is used.
|
||||
:param str newregex: The regex to rename the row's regex to.
|
||||
"""
|
||||
try:
|
||||
r = self.exclude_list_table.selected_rows[0]
|
||||
self.exclude_list.rename(r.regex, newregex)
|
||||
self.refresh()
|
||||
return True
|
||||
except Exception as e:
|
||||
logging.warning(f"Error while renaming regex to {newregex}: {e}")
|
||||
return False
|
||||
|
||||
def add(self, regex):
|
||||
try:
|
||||
self.exclude_list.add(regex)
|
||||
except Exception as e:
|
||||
raise(e)
|
||||
self.exclude_list.mark(regex)
|
||||
self.exclude_list_table.add(regex)
|
||||
|
||||
def test_string(self, test_string):
|
||||
"""Sets property on row to highlight if its regex matches test_string supplied."""
|
||||
matched = False
|
||||
for row in self.exclude_list_table.rows:
|
||||
compiled_regex = self.exclude_list.get_compiled(row.regex)
|
||||
if compiled_regex and compiled_regex.match(test_string):
|
||||
matched = True
|
||||
row.highlight = True
|
||||
else:
|
||||
row.highlight = False
|
||||
return matched
|
||||
|
||||
def reset_rows_highlight(self):
|
||||
for row in self.exclude_list_table.rows:
|
||||
row.highlight = False
|
||||
|
||||
def show(self):
|
||||
self.view.show()
|
||||
98
core/gui/exclude_list_table.py
Normal file
@@ -0,0 +1,98 @@
|
||||
# This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
from .base import DupeGuruGUIObject
|
||||
from hscommon.gui.table import GUITable, Row
|
||||
from hscommon.gui.column import Column, Columns
|
||||
from hscommon.trans import trget
|
||||
tr = trget("ui")
|
||||
|
||||
|
||||
class ExcludeListTable(GUITable, DupeGuruGUIObject):
|
||||
COLUMNS = [
|
||||
Column("marked", ""),
|
||||
Column("regex", tr("Regular Expressions"))
|
||||
]
|
||||
|
||||
def __init__(self, exclude_list_dialog, app):
|
||||
GUITable.__init__(self)
|
||||
DupeGuruGUIObject.__init__(self, app)
|
||||
self.columns = Columns(self)
|
||||
self.dialog = exclude_list_dialog
|
||||
|
||||
def rename_selected(self, newname):
|
||||
row = self.selected_row
|
||||
if row is None:
|
||||
return False
|
||||
row._data = None
|
||||
return self.dialog.rename_selected(newname)
|
||||
|
||||
# --- Virtual
|
||||
def _do_add(self, regex):
|
||||
"""(Virtual) Creates a new row, adds it in the table.
|
||||
Returns ``(row, insert_index)``."""
|
||||
# Return index 0 to insert at the top
|
||||
return ExcludeListRow(self, self.dialog.exclude_list.is_marked(regex), regex), 0
|
||||
|
||||
def _do_delete(self):
|
||||
self.dalog.exclude_list.remove(self.selected_row.regex)
|
||||
|
||||
# --- Override
|
||||
def add(self, regex):
|
||||
row, insert_index = self._do_add(regex)
|
||||
self.insert(insert_index, row)
|
||||
self.view.refresh()
|
||||
|
||||
def _fill(self):
|
||||
for enabled, regex in self.dialog.exclude_list:
|
||||
self.append(ExcludeListRow(self, enabled, regex))
|
||||
|
||||
def refresh(self, refresh_view=True):
|
||||
"""Override to avoid keeping previous selection in case of multiple rows
|
||||
selected previously."""
|
||||
self.cancel_edits()
|
||||
del self[:]
|
||||
self._fill()
|
||||
if refresh_view:
|
||||
self.view.refresh()
|
||||
|
||||
|
||||
class ExcludeListRow(Row):
|
||||
def __init__(self, table, enabled, regex):
|
||||
Row.__init__(self, table)
|
||||
self._app = table.app
|
||||
self._data = None
|
||||
self.enabled = str(enabled)
|
||||
self.regex = str(regex)
|
||||
self.highlight = False
|
||||
|
||||
@property
|
||||
def data(self):
|
||||
if self._data is None:
|
||||
self._data = {"marked": self.enabled, "regex": self.regex}
|
||||
return self._data
|
||||
|
||||
@property
|
||||
def markable(self):
|
||||
return self._app.exclude_list.is_markable(self.regex)
|
||||
|
||||
@property
|
||||
def marked(self):
|
||||
return self._app.exclude_list.is_marked(self.regex)
|
||||
|
||||
@marked.setter
|
||||
def marked(self, value):
|
||||
if value:
|
||||
self._app.exclude_list.mark(self.regex)
|
||||
else:
|
||||
self._app.exclude_list.unmark(self.regex)
|
||||
|
||||
@property
|
||||
def error(self):
|
||||
# This assumes error() returns an Exception()
|
||||
message = self._app.exclude_list.error(self.regex)
|
||||
if hasattr(message, "msg"):
|
||||
return self._app.exclude_list.error(self.regex).msg
|
||||
else:
|
||||
return message # Exception object
|
||||
@@ -17,7 +17,7 @@ class IgnoreListDialog:
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
self.ignore_list = self.app.ignore_list
|
||||
self.ignore_list_table = IgnoreListTable(self)
|
||||
self.ignore_list_table = IgnoreListTable(self) # GUITable
|
||||
|
||||
def clear(self):
|
||||
if not self.ignore_list:
|
||||
|
||||
@@ -72,13 +72,15 @@ class PrioritizeDialog(GUIObject):
|
||||
# Add selected criteria in criteria_list to prioritization_list.
|
||||
if self.criteria_list.selected_index is None:
|
||||
return
|
||||
crit = self.criteria[self.criteria_list.selected_index]
|
||||
self.prioritizations.append(crit)
|
||||
del crit
|
||||
for i in self.criteria_list.selected_indexes:
|
||||
crit = self.criteria[i]
|
||||
self.prioritizations.append(crit)
|
||||
del crit
|
||||
self.prioritization_list[:] = [crit.display for crit in self.prioritizations]
|
||||
|
||||
def remove_selected(self):
|
||||
self.prioritization_list.remove_selected()
|
||||
self.prioritization_list.select([])
|
||||
|
||||
def perform_reprioritization(self):
|
||||
self.app.reprioritize_groups(self._sort_key)
|
||||
|
||||
@@ -254,6 +254,7 @@ def getmatches(pictures, cache_path, threshold, match_scaled=False, j=job.nulljo
|
||||
ref.dimensions # pre-read dimensions for display in results
|
||||
other.dimensions
|
||||
result.append(get_match(ref, other, percentage))
|
||||
pool.join()
|
||||
return result
|
||||
|
||||
|
||||
|
||||
@@ -241,13 +241,13 @@ class Results(Markable):
|
||||
|
||||
self.apply_filter(None)
|
||||
root = ET.parse(infile).getroot()
|
||||
group_elems = list(root.getiterator("group"))
|
||||
group_elems = list(root.iter("group"))
|
||||
groups = []
|
||||
marked = set()
|
||||
for group_elem in j.iter_with_progress(group_elems, every=100):
|
||||
group = engine.Group()
|
||||
dupes = []
|
||||
for file_elem in group_elem.getiterator("file"):
|
||||
for file_elem in group_elem.iter("file"):
|
||||
path = file_elem.get("path")
|
||||
words = file_elem.get("words", "")
|
||||
if not path:
|
||||
@@ -260,7 +260,7 @@ class Results(Markable):
|
||||
dupes.append(file)
|
||||
if file_elem.get("marked") == "y":
|
||||
marked.add(file)
|
||||
for match_elem in group_elem.getiterator("match"):
|
||||
for match_elem in group_elem.iter("match"):
|
||||
try:
|
||||
attrs = match_elem.attrib
|
||||
first_file = dupes[int(attrs["first"])]
|
||||
|
||||
@@ -8,7 +8,7 @@ import os
|
||||
import os.path as op
|
||||
import logging
|
||||
|
||||
from pytest import mark
|
||||
import pytest
|
||||
from hscommon.path import Path
|
||||
import hscommon.conflict
|
||||
import hscommon.util
|
||||
@@ -109,7 +109,7 @@ class TestCaseDupeGuru:
|
||||
add_fake_files_to_directories(app.directories, [f1, f2])
|
||||
app.start_scanning() # no exception
|
||||
|
||||
@mark.skipif("not hasattr(os, 'link')")
|
||||
@pytest.mark.skipif("not hasattr(os, 'link')")
|
||||
def test_ignore_hardlink_matches(self, tmpdir):
|
||||
# If the ignore_hardlink_matches option is set, don't match files hardlinking to the same
|
||||
# inode.
|
||||
@@ -133,8 +133,9 @@ class TestCaseDupeGuru:
|
||||
|
||||
|
||||
class TestCaseDupeGuru_clean_empty_dirs:
|
||||
def pytest_funcarg__do_setup(self, request):
|
||||
monkeypatch = request.getfuncargvalue("monkeypatch")
|
||||
@pytest.fixture
|
||||
def do_setup(self, request):
|
||||
monkeypatch = request.getfixturevalue("monkeypatch")
|
||||
monkeypatch.setattr(
|
||||
hscommon.util,
|
||||
"delete_if_empty",
|
||||
@@ -175,7 +176,8 @@ class TestCaseDupeGuru_clean_empty_dirs:
|
||||
|
||||
|
||||
class TestCaseDupeGuruWithResults:
|
||||
def pytest_funcarg__do_setup(self, request):
|
||||
@pytest.fixture
|
||||
def do_setup(self, request):
|
||||
app = TestApp()
|
||||
self.app = app.app
|
||||
self.objects, self.matches, self.groups = GetTestGroups()
|
||||
@@ -184,7 +186,7 @@ class TestCaseDupeGuruWithResults:
|
||||
self.dtree = app.dtree
|
||||
self.rtable = app.rtable
|
||||
self.rtable.refresh()
|
||||
tmpdir = request.getfuncargvalue("tmpdir")
|
||||
tmpdir = request.getfixturevalue("tmpdir")
|
||||
tmppath = Path(str(tmpdir))
|
||||
tmppath["foo"].mkdir()
|
||||
tmppath["bar"].mkdir()
|
||||
@@ -430,8 +432,9 @@ class TestCaseDupeGuruWithResults:
|
||||
|
||||
|
||||
class TestCaseDupeGuru_renameSelected:
|
||||
def pytest_funcarg__do_setup(self, request):
|
||||
tmpdir = request.getfuncargvalue("tmpdir")
|
||||
@pytest.fixture
|
||||
def do_setup(self, request):
|
||||
tmpdir = request.getfixturevalue("tmpdir")
|
||||
p = Path(str(tmpdir))
|
||||
fp = open(str(p["foo bar 1"]), mode="w")
|
||||
fp.close()
|
||||
@@ -493,8 +496,9 @@ class TestCaseDupeGuru_renameSelected:
|
||||
|
||||
|
||||
class TestAppWithDirectoriesInTree:
|
||||
def pytest_funcarg__do_setup(self, request):
|
||||
tmpdir = request.getfuncargvalue("tmpdir")
|
||||
@pytest.fixture
|
||||
def do_setup(self, request):
|
||||
tmpdir = request.getfixturevalue("tmpdir")
|
||||
p = Path(str(tmpdir))
|
||||
p["sub1"].mkdir()
|
||||
p["sub2"].mkdir()
|
||||
|
||||
@@ -147,6 +147,8 @@ def GetTestGroups():
|
||||
|
||||
|
||||
class TestApp(TestAppBase):
|
||||
__test__ = False
|
||||
|
||||
def __init__(self):
|
||||
def link_gui(gui):
|
||||
gui.view = self.make_logger()
|
||||
|
||||
@@ -1 +1 @@
|
||||
from hscommon.testutil import pytest_funcarg__app # noqa
|
||||
from hscommon.testutil import app # noqa
|
||||
|
||||
@@ -12,6 +12,7 @@ import shutil
|
||||
from pytest import raises
|
||||
from hscommon.path import Path
|
||||
from hscommon.testutil import eq_
|
||||
from hscommon.plat import ISWINDOWS
|
||||
|
||||
from ..fs import File
|
||||
from ..directories import (
|
||||
@@ -20,6 +21,7 @@ from ..directories import (
|
||||
AlreadyThereError,
|
||||
InvalidPathError,
|
||||
)
|
||||
from ..exclude import ExcludeList, ExcludeDict
|
||||
|
||||
|
||||
def create_fake_fs(rootpath):
|
||||
@@ -341,3 +343,200 @@ def test_default_path_state_override(tmpdir):
|
||||
d.set_state(p1["foobar"], DirectoryState.Normal)
|
||||
eq_(d.get_state(p1["foobar"]), DirectoryState.Normal)
|
||||
eq_(len(list(d.get_files())), 2)
|
||||
|
||||
|
||||
class TestExcludeList():
|
||||
def setup_method(self, method):
|
||||
self.d = Directories(exclude_list=ExcludeList(union_regex=False))
|
||||
|
||||
def get_files_and_expect_num_result(self, num_result):
|
||||
"""Calls get_files(), get the filenames only, print for debugging.
|
||||
num_result is how many files are expected as a result."""
|
||||
print(f"EXCLUDED REGEX: paths {self.d._exclude_list.compiled_paths} \
|
||||
files: {self.d._exclude_list.compiled_files} all: {self.d._exclude_list.compiled}")
|
||||
files = list(self.d.get_files())
|
||||
files = [file.name for file in files]
|
||||
print(f"FINAL FILES {files}")
|
||||
eq_(len(files), num_result)
|
||||
return files
|
||||
|
||||
def test_exclude_recycle_bin_by_default(self, tmpdir):
|
||||
regex = r"^.*Recycle\.Bin$"
|
||||
self.d._exclude_list.add(regex)
|
||||
self.d._exclude_list.mark(regex)
|
||||
p1 = Path(str(tmpdir))
|
||||
p1["$Recycle.Bin"].mkdir()
|
||||
p1["$Recycle.Bin"]["subdir"].mkdir()
|
||||
self.d.add_path(p1)
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]), DirectoryState.Excluded)
|
||||
# By default, subdirs should be excluded too, but this can be overriden separately
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdir"]), DirectoryState.Excluded)
|
||||
self.d.set_state(p1["$Recycle.Bin"]["subdir"], DirectoryState.Normal)
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdir"]), DirectoryState.Normal)
|
||||
|
||||
def test_exclude_refined(self, tmpdir):
|
||||
regex1 = r"^\$Recycle\.Bin$"
|
||||
self.d._exclude_list.add(regex1)
|
||||
self.d._exclude_list.mark(regex1)
|
||||
p1 = Path(str(tmpdir))
|
||||
p1["$Recycle.Bin"].mkdir()
|
||||
p1["$Recycle.Bin"]["somefile.png"].open("w").close()
|
||||
p1["$Recycle.Bin"]["some_unwanted_file.jpg"].open("w").close()
|
||||
p1["$Recycle.Bin"]["subdir"].mkdir()
|
||||
p1["$Recycle.Bin"]["subdir"]["somesubdirfile.png"].open("w").close()
|
||||
p1["$Recycle.Bin"]["subdir"]["unwanted_subdirfile.gif"].open("w").close()
|
||||
p1["$Recycle.Bin"]["subdar"].mkdir()
|
||||
p1["$Recycle.Bin"]["subdar"]["somesubdarfile.jpeg"].open("w").close()
|
||||
p1["$Recycle.Bin"]["subdar"]["unwanted_subdarfile.png"].open("w").close()
|
||||
self.d.add_path(p1["$Recycle.Bin"])
|
||||
|
||||
# Filter should set the default state to Excluded
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]), DirectoryState.Excluded)
|
||||
# The subdir should inherit its parent state
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdir"]), DirectoryState.Excluded)
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdar"]), DirectoryState.Excluded)
|
||||
# Override a child path's state
|
||||
self.d.set_state(p1["$Recycle.Bin"]["subdir"], DirectoryState.Normal)
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdir"]), DirectoryState.Normal)
|
||||
# Parent should keep its default state, and the other child too
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]), DirectoryState.Excluded)
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdar"]), DirectoryState.Excluded)
|
||||
# print(f"get_folders(): {[x for x in self.d.get_folders()]}")
|
||||
|
||||
# only the 2 files directly under the Normal directory
|
||||
files = self.get_files_and_expect_num_result(2)
|
||||
assert "somefile.png" not in files
|
||||
assert "some_unwanted_file.jpg" not in files
|
||||
assert "somesubdarfile.jpeg" not in files
|
||||
assert "unwanted_subdarfile.png" not in files
|
||||
assert "somesubdirfile.png" in files
|
||||
assert "unwanted_subdirfile.gif" in files
|
||||
# Overriding the parent should enable all children
|
||||
self.d.set_state(p1["$Recycle.Bin"], DirectoryState.Normal)
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdar"]), DirectoryState.Normal)
|
||||
# all files there
|
||||
files = self.get_files_and_expect_num_result(6)
|
||||
assert "somefile.png" in files
|
||||
assert "some_unwanted_file.jpg" in files
|
||||
|
||||
# This should still filter out files under directory, despite the Normal state
|
||||
regex2 = r".*unwanted.*"
|
||||
self.d._exclude_list.add(regex2)
|
||||
self.d._exclude_list.mark(regex2)
|
||||
files = self.get_files_and_expect_num_result(3)
|
||||
assert "somefile.png" in files
|
||||
assert "some_unwanted_file.jpg" not in files
|
||||
assert "unwanted_subdirfile.gif" not in files
|
||||
assert "unwanted_subdarfile.png" not in files
|
||||
|
||||
if ISWINDOWS:
|
||||
regex3 = r".*Recycle\.Bin\\.*unwanted.*subdirfile.*"
|
||||
else:
|
||||
regex3 = r".*Recycle\.Bin\/.*unwanted.*subdirfile.*"
|
||||
self.d._exclude_list.rename(regex2, regex3)
|
||||
assert self.d._exclude_list.error(regex3) is None
|
||||
# print(f"get_folders(): {[x for x in self.d.get_folders()]}")
|
||||
# Directory shouldn't change its state here, unless explicitely done by user
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdir"]), DirectoryState.Normal)
|
||||
files = self.get_files_and_expect_num_result(5)
|
||||
assert "unwanted_subdirfile.gif" not in files
|
||||
assert "unwanted_subdarfile.png" in files
|
||||
|
||||
# using end of line character should only filter the directory, or file ending with subdir
|
||||
regex4 = r".*subdir$"
|
||||
self.d._exclude_list.rename(regex3, regex4)
|
||||
assert self.d._exclude_list.error(regex4) is None
|
||||
p1["$Recycle.Bin"]["subdar"]["file_ending_with_subdir"].open("w").close()
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdir"]), DirectoryState.Excluded)
|
||||
files = self.get_files_and_expect_num_result(4)
|
||||
assert "file_ending_with_subdir" not in files
|
||||
assert "somesubdarfile.jpeg" in files
|
||||
assert "somesubdirfile.png" not in files
|
||||
assert "unwanted_subdirfile.gif" not in files
|
||||
self.d.set_state(p1["$Recycle.Bin"]["subdir"], DirectoryState.Normal)
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdir"]), DirectoryState.Normal)
|
||||
# print(f"get_folders(): {[x for x in self.d.get_folders()]}")
|
||||
files = self.get_files_and_expect_num_result(6)
|
||||
assert "file_ending_with_subdir" not in files
|
||||
assert "somesubdirfile.png" in files
|
||||
assert "unwanted_subdirfile.gif" in files
|
||||
|
||||
regex5 = r".*subdir.*"
|
||||
self.d._exclude_list.rename(regex4, regex5)
|
||||
# Files containing substring should be filtered
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["subdir"]), DirectoryState.Normal)
|
||||
# The path should not match, only the filename, the "subdir" in the directory name shouldn't matter
|
||||
p1["$Recycle.Bin"]["subdir"]["file_which_shouldnt_match"].open("w").close()
|
||||
files = self.get_files_and_expect_num_result(5)
|
||||
assert "somesubdirfile.png" not in files
|
||||
assert "unwanted_subdirfile.gif" not in files
|
||||
assert "file_ending_with_subdir" not in files
|
||||
assert "file_which_shouldnt_match" in files
|
||||
|
||||
def test_japanese_unicode(self, tmpdir):
|
||||
p1 = Path(str(tmpdir))
|
||||
p1["$Recycle.Bin"].mkdir()
|
||||
p1["$Recycle.Bin"]["somerecycledfile.png"].open("w").close()
|
||||
p1["$Recycle.Bin"]["some_unwanted_file.jpg"].open("w").close()
|
||||
p1["$Recycle.Bin"]["subdir"].mkdir()
|
||||
p1["$Recycle.Bin"]["subdir"]["過去白濁物語~]_カラー.jpg"].open("w").close()
|
||||
p1["$Recycle.Bin"]["思叫物語"].mkdir()
|
||||
p1["$Recycle.Bin"]["思叫物語"]["なししろ会う前"].open("w").close()
|
||||
p1["$Recycle.Bin"]["思叫物語"]["堂~ロ"].open("w").close()
|
||||
self.d.add_path(p1["$Recycle.Bin"])
|
||||
regex3 = r".*物語.*"
|
||||
self.d._exclude_list.add(regex3)
|
||||
self.d._exclude_list.mark(regex3)
|
||||
# print(f"get_folders(): {[x for x in self.d.get_folders()]}")
|
||||
eq_(self.d.get_state(p1["$Recycle.Bin"]["思叫物語"]), DirectoryState.Excluded)
|
||||
files = self.get_files_and_expect_num_result(2)
|
||||
assert "過去白濁物語~]_カラー.jpg" not in files
|
||||
assert "なししろ会う前" not in files
|
||||
assert "堂~ロ" not in files
|
||||
# using end of line character should only filter that directory, not affecting its files
|
||||
regex4 = r".*物語$"
|
||||
self.d._exclude_list.rename(regex3, regex4)
|
||||
assert self.d._exclude_list.error(regex4) is None
|
||||
self.d.set_state(p1["$Recycle.Bin"]["思叫物語"], DirectoryState.Normal)
|
||||
files = self.get_files_and_expect_num_result(5)
|
||||
assert "過去白濁物語~]_カラー.jpg" in files
|
||||
assert "なししろ会う前" in files
|
||||
assert "堂~ロ" in files
|
||||
|
||||
def test_get_state_returns_excluded_for_hidden_directories_and_files(self, tmpdir):
|
||||
# This regex only work for files, not paths
|
||||
regex = r"^\..*$"
|
||||
self.d._exclude_list.add(regex)
|
||||
self.d._exclude_list.mark(regex)
|
||||
p1 = Path(str(tmpdir))
|
||||
p1["foobar"].mkdir()
|
||||
p1["foobar"][".hidden_file.txt"].open("w").close()
|
||||
p1["foobar"][".hidden_dir"].mkdir()
|
||||
p1["foobar"][".hidden_dir"]["foobar.jpg"].open("w").close()
|
||||
p1["foobar"][".hidden_dir"][".hidden_subfile.png"].open("w").close()
|
||||
self.d.add_path(p1["foobar"])
|
||||
# It should not inherit its parent's state originally
|
||||
eq_(self.d.get_state(p1["foobar"][".hidden_dir"]), DirectoryState.Excluded)
|
||||
self.d.set_state(p1["foobar"][".hidden_dir"], DirectoryState.Normal)
|
||||
# The files should still be filtered
|
||||
files = self.get_files_and_expect_num_result(1)
|
||||
eq_(len(self.d._exclude_list.compiled_paths), 0)
|
||||
eq_(len(self.d._exclude_list.compiled_files), 1)
|
||||
assert ".hidden_file.txt" not in files
|
||||
assert ".hidden_subfile.png" not in files
|
||||
assert "foobar.jpg" in files
|
||||
|
||||
|
||||
class TestExcludeDict(TestExcludeList):
|
||||
def setup_method(self, method):
|
||||
self.d = Directories(exclude_list=ExcludeDict(union_regex=False))
|
||||
|
||||
|
||||
class TestExcludeListunion(TestExcludeList):
|
||||
def setup_method(self, method):
|
||||
self.d = Directories(exclude_list=ExcludeList(union_regex=True))
|
||||
|
||||
|
||||
class TestExcludeDictunion(TestExcludeList):
|
||||
def setup_method(self, method):
|
||||
self.d = Directories(exclude_list=ExcludeDict(union_regex=True))
|
||||
|
||||
282
core/tests/exclude_test.py
Normal file
@@ -0,0 +1,282 @@
|
||||
# Copyright 2016 Hardcoded Software (http://www.hardcoded.net)
|
||||
#
|
||||
# This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import io
|
||||
# import os.path as op
|
||||
|
||||
from xml.etree import ElementTree as ET
|
||||
|
||||
# from pytest import raises
|
||||
from hscommon.testutil import eq_
|
||||
from hscommon.plat import ISWINDOWS
|
||||
|
||||
from .base import DupeGuru
|
||||
from ..exclude import ExcludeList, ExcludeDict, default_regexes, AlreadyThereException
|
||||
|
||||
from re import error
|
||||
|
||||
|
||||
# Two slightly different implementations here, one around a list of lists,
|
||||
# and another around a dictionary.
|
||||
|
||||
|
||||
class TestCaseListXMLLoading:
|
||||
def setup_method(self, method):
|
||||
self.exclude_list = ExcludeList()
|
||||
|
||||
def test_load_non_existant_file(self):
|
||||
# Loads the pre-defined regexes
|
||||
self.exclude_list.load_from_xml("non_existant.xml")
|
||||
eq_(len(default_regexes), len(self.exclude_list))
|
||||
# they should also be marked by default
|
||||
eq_(len(default_regexes), self.exclude_list.marked_count)
|
||||
|
||||
def test_save_to_xml(self):
|
||||
f = io.BytesIO()
|
||||
self.exclude_list.save_to_xml(f)
|
||||
f.seek(0)
|
||||
doc = ET.parse(f)
|
||||
root = doc.getroot()
|
||||
eq_("exclude_list", root.tag)
|
||||
|
||||
def test_save_and_load(self, tmpdir):
|
||||
e1 = ExcludeList()
|
||||
e2 = ExcludeList()
|
||||
eq_(len(e1), 0)
|
||||
e1.add(r"one")
|
||||
e1.mark(r"one")
|
||||
e1.add(r"two")
|
||||
tmpxml = str(tmpdir.join("exclude_testunit.xml"))
|
||||
e1.save_to_xml(tmpxml)
|
||||
e2.load_from_xml(tmpxml)
|
||||
# We should have the default regexes
|
||||
assert r"one" in e2
|
||||
assert r"two" in e2
|
||||
eq_(len(e2), 2)
|
||||
eq_(e2.marked_count, 1)
|
||||
|
||||
def test_load_xml_with_garbage_and_missing_elements(self):
|
||||
root = ET.Element("foobar") # The root element shouldn't matter
|
||||
exclude_node = ET.SubElement(root, "bogus")
|
||||
exclude_node.set("regex", "None")
|
||||
exclude_node.set("marked", "y")
|
||||
|
||||
exclude_node = ET.SubElement(root, "exclude")
|
||||
exclude_node.set("regex", "one")
|
||||
# marked field invalid
|
||||
exclude_node.set("markedddd", "y")
|
||||
|
||||
exclude_node = ET.SubElement(root, "exclude")
|
||||
exclude_node.set("regex", "two")
|
||||
# missing marked field
|
||||
|
||||
exclude_node = ET.SubElement(root, "exclude")
|
||||
exclude_node.set("regex", "three")
|
||||
exclude_node.set("markedddd", "pazjbjepo")
|
||||
|
||||
f = io.BytesIO()
|
||||
tree = ET.ElementTree(root)
|
||||
tree.write(f, encoding="utf-8")
|
||||
f.seek(0)
|
||||
self.exclude_list.load_from_xml(f)
|
||||
print(f"{[x for x in self.exclude_list]}")
|
||||
# only the two "exclude" nodes should be added,
|
||||
eq_(3, len(self.exclude_list))
|
||||
# None should be marked
|
||||
eq_(0, self.exclude_list.marked_count)
|
||||
|
||||
|
||||
class TestCaseDictXMLLoading(TestCaseListXMLLoading):
|
||||
def setup_method(self, method):
|
||||
self.exclude_list = ExcludeDict()
|
||||
|
||||
|
||||
class TestCaseListEmpty:
|
||||
def setup_method(self, method):
|
||||
self.app = DupeGuru()
|
||||
self.app.exclude_list = ExcludeList(union_regex=False)
|
||||
self.exclude_list = self.app.exclude_list
|
||||
|
||||
def test_add_mark_and_remove_regex(self):
|
||||
regex1 = r"one"
|
||||
regex2 = r"two"
|
||||
self.exclude_list.add(regex1)
|
||||
assert(regex1 in self.exclude_list)
|
||||
self.exclude_list.add(regex2)
|
||||
self.exclude_list.mark(regex1)
|
||||
self.exclude_list.mark(regex2)
|
||||
eq_(len(self.exclude_list), 2)
|
||||
eq_(len(self.exclude_list.compiled), 2)
|
||||
compiled_files = [x for x in self.exclude_list.compiled_files]
|
||||
eq_(len(compiled_files), 2)
|
||||
self.exclude_list.remove(regex2)
|
||||
assert(regex2 not in self.exclude_list)
|
||||
eq_(len(self.exclude_list), 1)
|
||||
|
||||
def test_add_duplicate(self):
|
||||
self.exclude_list.add(r"one")
|
||||
eq_(1 , len(self.exclude_list))
|
||||
try:
|
||||
self.exclude_list.add(r"one")
|
||||
except Exception:
|
||||
pass
|
||||
eq_(1 , len(self.exclude_list))
|
||||
|
||||
def test_add_not_compilable(self):
|
||||
# Trying to add a non-valid regex should not work and raise exception
|
||||
regex = r"one))"
|
||||
try:
|
||||
self.exclude_list.add(regex)
|
||||
except Exception as e:
|
||||
# Make sure we raise a re.error so that the interface can process it
|
||||
eq_(type(e), error)
|
||||
added = self.exclude_list.mark(regex)
|
||||
eq_(added, False)
|
||||
eq_(len(self.exclude_list), 0)
|
||||
eq_(len(self.exclude_list.compiled), 0)
|
||||
compiled_files = [x for x in self.exclude_list.compiled_files]
|
||||
eq_(len(compiled_files), 0)
|
||||
|
||||
def test_force_add_not_compilable(self):
|
||||
"""Used when loading from XML for example"""
|
||||
regex = r"one))"
|
||||
try:
|
||||
self.exclude_list.add(regex, forced=True)
|
||||
except Exception as e:
|
||||
# Should not get an exception here unless it's a duplicate regex
|
||||
raise e
|
||||
marked = self.exclude_list.mark(regex)
|
||||
eq_(marked, False) # can't be marked since not compilable
|
||||
eq_(len(self.exclude_list), 1)
|
||||
eq_(len(self.exclude_list.compiled), 0)
|
||||
compiled_files = [x for x in self.exclude_list.compiled_files]
|
||||
eq_(len(compiled_files), 0)
|
||||
# adding a duplicate
|
||||
regex = r"one))"
|
||||
try:
|
||||
self.exclude_list.add(regex, forced=True)
|
||||
except Exception as e:
|
||||
# we should have this exception, and it shouldn't be added
|
||||
assert type(e) is AlreadyThereException
|
||||
eq_(len(self.exclude_list), 1)
|
||||
eq_(len(self.exclude_list.compiled), 0)
|
||||
|
||||
def test_rename_regex(self):
|
||||
regex = r"one"
|
||||
self.exclude_list.add(regex)
|
||||
self.exclude_list.mark(regex)
|
||||
regex_renamed = r"one))"
|
||||
# Not compilable, can't be marked
|
||||
self.exclude_list.rename(regex, regex_renamed)
|
||||
assert regex not in self.exclude_list
|
||||
assert regex_renamed in self.exclude_list
|
||||
eq_(self.exclude_list.is_marked(regex_renamed), False)
|
||||
self.exclude_list.mark(regex_renamed)
|
||||
eq_(self.exclude_list.is_marked(regex_renamed), False)
|
||||
regex_renamed_compilable = r"two"
|
||||
self.exclude_list.rename(regex_renamed, regex_renamed_compilable)
|
||||
assert regex_renamed_compilable in self.exclude_list
|
||||
eq_(self.exclude_list.is_marked(regex_renamed), False)
|
||||
self.exclude_list.mark(regex_renamed_compilable)
|
||||
eq_(self.exclude_list.is_marked(regex_renamed_compilable), True)
|
||||
eq_(len(self.exclude_list), 1)
|
||||
# Should still be marked after rename
|
||||
regex_compilable = r"three"
|
||||
self.exclude_list.rename(regex_renamed_compilable, regex_compilable)
|
||||
eq_(self.exclude_list.is_marked(regex_compilable), True)
|
||||
|
||||
def test_restore_default(self):
|
||||
"""Only unmark previously added regexes and mark the pre-defined ones"""
|
||||
regex = r"one"
|
||||
self.exclude_list.add(regex)
|
||||
self.exclude_list.mark(regex)
|
||||
self.exclude_list.restore_defaults()
|
||||
eq_(len(default_regexes), self.exclude_list.marked_count)
|
||||
# added regex shouldn't be marked
|
||||
eq_(self.exclude_list.is_marked(regex), False)
|
||||
# added regex shouldn't be in compiled list either
|
||||
compiled = [x for x in self.exclude_list.compiled]
|
||||
assert regex not in compiled
|
||||
# Only default regexes marked and in compiled list
|
||||
for re in default_regexes:
|
||||
assert self.exclude_list.is_marked(re)
|
||||
found = False
|
||||
for compiled_re in compiled:
|
||||
if compiled_re.pattern == re:
|
||||
found = True
|
||||
if not found:
|
||||
raise(Exception(f"Default RE {re} not found in compiled list."))
|
||||
continue
|
||||
eq_(len(default_regexes), len(self.exclude_list.compiled))
|
||||
|
||||
|
||||
class TestCaseDictEmpty(TestCaseListEmpty):
|
||||
"""Same, but with dictionary implementation"""
|
||||
def setup_method(self, method):
|
||||
self.app = DupeGuru()
|
||||
self.app.exclude_list = ExcludeDict(union_regex=False)
|
||||
self.exclude_list = self.app.exclude_list
|
||||
|
||||
|
||||
def split_union(pattern_object):
|
||||
"""Returns list of strings for each union pattern"""
|
||||
return [x for x in pattern_object.pattern.split("|")]
|
||||
|
||||
|
||||
class TestCaseCompiledList():
|
||||
"""Test consistency between union or and separate versions."""
|
||||
def setup_method(self, method):
|
||||
self.e_separate = ExcludeList(union_regex=False)
|
||||
self.e_separate.restore_defaults()
|
||||
self.e_union = ExcludeList(union_regex=True)
|
||||
self.e_union.restore_defaults()
|
||||
|
||||
def test_same_number_of_expressions(self):
|
||||
# We only get one union Pattern item in a tuple, which is made of however many parts
|
||||
eq_(len(split_union(self.e_union.compiled[0])), len(default_regexes))
|
||||
# We get as many as there are marked items
|
||||
eq_(len(self.e_separate.compiled), len(default_regexes))
|
||||
exprs = split_union(self.e_union.compiled[0])
|
||||
# We should have the same number and the same expressions
|
||||
eq_(len(exprs), len(self.e_separate.compiled))
|
||||
for expr in self.e_separate.compiled:
|
||||
assert expr.pattern in exprs
|
||||
|
||||
def test_compiled_files(self):
|
||||
# is path separator checked properly to yield the output
|
||||
if ISWINDOWS:
|
||||
regex1 = r"test\\one\\sub"
|
||||
else:
|
||||
regex1 = r"test/one/sub"
|
||||
self.e_separate.add(regex1)
|
||||
self.e_separate.mark(regex1)
|
||||
self.e_union.add(regex1)
|
||||
self.e_union.mark(regex1)
|
||||
separate_compiled_dirs = self.e_separate.compiled
|
||||
separate_compiled_files = [x for x in self.e_separate.compiled_files]
|
||||
# HACK we need to call compiled property FIRST to generate the cache
|
||||
union_compiled_dirs = self.e_union.compiled
|
||||
# print(f"type: {type(self.e_union.compiled_files[0])}")
|
||||
# A generator returning only one item... ugh
|
||||
union_compiled_files = [x for x in self.e_union.compiled_files][0]
|
||||
print(f"compiled files: {union_compiled_files}")
|
||||
# Separate should give several plus the one added
|
||||
eq_(len(separate_compiled_dirs), len(default_regexes) + 1)
|
||||
# regex1 shouldn't be in the "files" version
|
||||
eq_(len(separate_compiled_files), len(default_regexes))
|
||||
# Only one Pattern returned, which when split should be however many + 1
|
||||
eq_(len(split_union(union_compiled_dirs[0])), len(default_regexes) + 1)
|
||||
# regex1 shouldn't be here either
|
||||
eq_(len(split_union(union_compiled_files)), len(default_regexes))
|
||||
|
||||
|
||||
class TestCaseCompiledDict(TestCaseCompiledList):
|
||||
"""Test the dictionary version"""
|
||||
def setup_method(self, method):
|
||||
self.e_separate = ExcludeDict(union_regex=False)
|
||||
self.e_separate.restore_defaults()
|
||||
self.e_union = ExcludeDict(union_regex=True)
|
||||
self.e_union.restore_defaults()
|
||||
@@ -414,12 +414,12 @@ class TestCaseResultsMarkings:
|
||||
f.seek(0)
|
||||
doc = ET.parse(f)
|
||||
root = doc.getroot()
|
||||
g1, g2 = root.getiterator("group")
|
||||
d1, d2, d3 = g1.getiterator("file")
|
||||
g1, g2 = root.iter("group")
|
||||
d1, d2, d3 = g1.iter("file")
|
||||
eq_("n", d1.get("marked"))
|
||||
eq_("n", d2.get("marked"))
|
||||
eq_("y", d3.get("marked"))
|
||||
d1, d2 = g2.getiterator("file")
|
||||
d1, d2 = g2.iter("file")
|
||||
eq_("n", d1.get("marked"))
|
||||
eq_("y", d2.get("marked"))
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import pytest
|
||||
|
||||
from hscommon.jobprogress import job
|
||||
from hscommon.path import Path
|
||||
from hscommon.testutil import eq_
|
||||
@@ -33,10 +35,11 @@ class NamedObject:
|
||||
no = NamedObject
|
||||
|
||||
|
||||
def pytest_funcarg__fake_fileexists(request):
|
||||
@pytest.fixture
|
||||
def fake_fileexists(request):
|
||||
# This is a hack to avoid invalidating all previous tests since the scanner started to test
|
||||
# for file existence before doing the match grouping.
|
||||
monkeypatch = request.getfuncargvalue("monkeypatch")
|
||||
monkeypatch = request.getfixturevalue("monkeypatch")
|
||||
monkeypatch.setattr(Path, "exists", lambda _: True)
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,38 @@
|
||||
=== 4.1.1 (2021-03-21)
|
||||
|
||||
* Add Japanese
|
||||
* Update internationalization and translations to be up to date with current UI.
|
||||
* Minor translation and UI language updates
|
||||
* Fix language selection issues on Windows (#760)
|
||||
* Add some additional notes about builds on Linux based systems
|
||||
* Add import from transifex export to build.py
|
||||
|
||||
=== 4.1.0 (2020-12-29)
|
||||
|
||||
* Use tabs instead of separate windows (#688)
|
||||
* Show the shortcut for "mark selected" in results dialog (#656, #641)
|
||||
* Add image comparison features to details dialog (#683)
|
||||
* Add the ability to use regex based exclusion filters (#705)
|
||||
* Change reference row background color, and allow user to adjust the color (#701)
|
||||
* Save / Load directories as XML (#706)
|
||||
* Workaround for EXIF IFD type mismatch in parsing function (#630, #698)
|
||||
* Progress dialog stuck at "Verified X/X matches" (#693, #694)
|
||||
* Fix word wrap in ignore list dialog (#687)
|
||||
* Fix issue with result window action on creation (#685)
|
||||
* Colorize details table differences, allow moving rows (#682)
|
||||
* Fix loading Result of 'Scan Type: Folders' shows only '---' in every table cell (#677, #676)
|
||||
* Fix issue with details and results dialog row trimming (#655, #654)
|
||||
* Add option to enable/disable bold font (#646, #314)
|
||||
* Use relative icon path for themes to override more easily (#746)
|
||||
* Fix issues with Python 3.8 compatibility (#665)
|
||||
* Fix flake8 issues (#672)
|
||||
* Update to use newer pytest and expand flake8 checking, cleanup various Deprecation Warnings
|
||||
* Add warnings to packaging script when files are not built (#691)
|
||||
* Use relative icon path for themes to override more easily (#746)
|
||||
* Update Packaging for Ubuntu (#593)
|
||||
* Minor Build Updates (#627, #575, #628, #614)
|
||||
* Update CI builds and add windows CI (#572, #669)
|
||||
|
||||
=== 4.0.4 (2019-05-13)
|
||||
|
||||
* Update qt/platform.py to support other Unix style OSes (#444)
|
||||
|
||||
@@ -295,7 +295,7 @@ def build_debian_changelog(
|
||||
return [s.strip() for s in result if s.strip()]
|
||||
|
||||
ENTRY_MODEL = (
|
||||
"{pkg} ({version}-1) {distribution}; urgency=low\n\n{changes}\n "
|
||||
"{pkg} ({version}) {distribution}; urgency=low\n\n{changes}\n "
|
||||
"-- Virgil Dupras <hsoft@hardcoded.net> {date}\n\n"
|
||||
)
|
||||
CHANGE_MODEL = " * {description}\n"
|
||||
@@ -557,7 +557,7 @@ def fix_qt_resource_file(path):
|
||||
with open(path, "rb") as fp:
|
||||
contents = fp.read()
|
||||
lines = contents.split(b"\n")
|
||||
lines = [l for l in lines if not l.startswith(b"#")]
|
||||
lines = [line for line in lines if not line.startswith(b"#")]
|
||||
with open(path, "wb") as fp:
|
||||
fp.write(b"\n".join(lines))
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
from collections import Sequence, MutableSequence
|
||||
from collections.abc import Sequence, MutableSequence
|
||||
|
||||
from .base import GUIObject
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
from collections import MutableSequence, namedtuple
|
||||
from collections.abc import MutableSequence
|
||||
from collections import namedtuple
|
||||
|
||||
from .base import GUIObject
|
||||
from .selectable_list import Selectable
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
from collections import MutableSequence
|
||||
from collections.abc import MutableSequence
|
||||
|
||||
from .base import GUIObject
|
||||
|
||||
|
||||
@@ -45,7 +45,10 @@ def generate_pot(folders, outpath, keywords, merge=False):
|
||||
pygettext.main(pyfiles, outpath=genpath, keywords=keywords)
|
||||
if merge:
|
||||
merge_po_and_preserve(genpath, outpath)
|
||||
os.remove(genpath)
|
||||
try:
|
||||
os.remove(genpath)
|
||||
except Exception:
|
||||
print("Exception while removing temporary folder %s\n", genpath)
|
||||
|
||||
|
||||
def compile_all_po(base_folder):
|
||||
|
||||
@@ -257,6 +257,6 @@ def log_io_error(func):
|
||||
msg = 'Error "{0}" during operation "{1}" on "{2}": "{3}"'
|
||||
classname = e.__class__.__name__
|
||||
funcname = func.__name__
|
||||
logging.warn(msg.format(classname, funcname, str(path), str(e)))
|
||||
logging.warning(msg.format(classname, funcname, str(path), str(e)))
|
||||
|
||||
return wrapper
|
||||
|
||||
@@ -6,7 +6,15 @@
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
from ..conflict import *
|
||||
import pytest
|
||||
|
||||
from ..conflict import (
|
||||
get_conflicted_name,
|
||||
get_unconflicted_name,
|
||||
is_conflicted,
|
||||
smart_copy,
|
||||
smart_move,
|
||||
)
|
||||
from ..path import Path
|
||||
from ..testutil import eq_
|
||||
|
||||
@@ -59,8 +67,9 @@ class TestCase_IsConflicted:
|
||||
|
||||
|
||||
class TestCase_move_copy:
|
||||
def pytest_funcarg__do_setup(self, request):
|
||||
tmpdir = request.getfuncargvalue("tmpdir")
|
||||
@pytest.fixture
|
||||
def do_setup(self, request):
|
||||
tmpdir = request.getfixturevalue("tmpdir")
|
||||
self.path = Path(str(tmpdir))
|
||||
self.path["foo"].open("w").close()
|
||||
self.path["bar"].open("w").close()
|
||||
|
||||
@@ -28,8 +28,8 @@ class HelloRepeater(Repeater):
|
||||
|
||||
def create_pair():
|
||||
b = Broadcaster()
|
||||
l = HelloListener(b)
|
||||
return b, l
|
||||
listener = HelloListener(b)
|
||||
return b, listener
|
||||
|
||||
|
||||
def test_disconnect_during_notification():
|
||||
@@ -60,53 +60,53 @@ def test_disconnect_during_notification():
|
||||
|
||||
def test_disconnect():
|
||||
# After a disconnect, the listener doesn't hear anything.
|
||||
b, l = create_pair()
|
||||
l.connect()
|
||||
l.disconnect()
|
||||
b, listener = create_pair()
|
||||
listener.connect()
|
||||
listener.disconnect()
|
||||
b.notify("hello")
|
||||
eq_(l.hello_count, 0)
|
||||
eq_(listener.hello_count, 0)
|
||||
|
||||
|
||||
def test_disconnect_when_not_connected():
|
||||
# When disconnecting an already disconnected listener, nothing happens.
|
||||
b, l = create_pair()
|
||||
l.disconnect()
|
||||
b, listener = create_pair()
|
||||
listener.disconnect()
|
||||
|
||||
|
||||
def test_not_connected_on_init():
|
||||
# A listener is not initialized connected.
|
||||
b, l = create_pair()
|
||||
b, listener = create_pair()
|
||||
b.notify("hello")
|
||||
eq_(l.hello_count, 0)
|
||||
eq_(listener.hello_count, 0)
|
||||
|
||||
|
||||
def test_notify():
|
||||
# The listener listens to the broadcaster.
|
||||
b, l = create_pair()
|
||||
l.connect()
|
||||
b, listener = create_pair()
|
||||
listener.connect()
|
||||
b.notify("hello")
|
||||
eq_(l.hello_count, 1)
|
||||
eq_(listener.hello_count, 1)
|
||||
|
||||
|
||||
def test_reconnect():
|
||||
# It's possible to reconnect a listener after disconnection.
|
||||
b, l = create_pair()
|
||||
l.connect()
|
||||
l.disconnect()
|
||||
l.connect()
|
||||
b, listener = create_pair()
|
||||
listener.connect()
|
||||
listener.disconnect()
|
||||
listener.connect()
|
||||
b.notify("hello")
|
||||
eq_(l.hello_count, 1)
|
||||
eq_(listener.hello_count, 1)
|
||||
|
||||
|
||||
def test_repeater():
|
||||
b = Broadcaster()
|
||||
r = HelloRepeater(b)
|
||||
l = HelloListener(r)
|
||||
listener = HelloListener(r)
|
||||
r.connect()
|
||||
l.connect()
|
||||
listener.connect()
|
||||
b.notify("hello")
|
||||
eq_(r.hello_count, 1)
|
||||
eq_(l.hello_count, 1)
|
||||
eq_(listener.hello_count, 1)
|
||||
|
||||
|
||||
def test_repeater_with_repeated_notifications():
|
||||
@@ -124,15 +124,15 @@ def test_repeater_with_repeated_notifications():
|
||||
|
||||
b = Broadcaster()
|
||||
r = MyRepeater(b)
|
||||
l = HelloListener(r)
|
||||
listener = HelloListener(r)
|
||||
r.connect()
|
||||
l.connect()
|
||||
listener.connect()
|
||||
b.notify("hello")
|
||||
b.notify(
|
||||
"foo"
|
||||
) # if the repeater repeated this notif, we'd get a crash on HelloListener
|
||||
eq_(r.hello_count, 1)
|
||||
eq_(l.hello_count, 1)
|
||||
eq_(listener.hello_count, 1)
|
||||
eq_(r.foo_count, 1)
|
||||
|
||||
|
||||
@@ -140,18 +140,18 @@ def test_repeater_doesnt_try_to_dispatch_to_self_if_it_cant():
|
||||
# if a repeater doesn't handle a particular message, it doesn't crash and simply repeats it.
|
||||
b = Broadcaster()
|
||||
r = Repeater(b) # doesnt handle hello
|
||||
l = HelloListener(r)
|
||||
listener = HelloListener(r)
|
||||
r.connect()
|
||||
l.connect()
|
||||
listener.connect()
|
||||
b.notify("hello") # no crash
|
||||
eq_(l.hello_count, 1)
|
||||
eq_(listener.hello_count, 1)
|
||||
|
||||
|
||||
def test_bind_messages():
|
||||
b, l = create_pair()
|
||||
l.bind_messages({"foo", "bar"}, l.hello)
|
||||
l.connect()
|
||||
b, listener = create_pair()
|
||||
listener.bind_messages({"foo", "bar"}, listener.hello)
|
||||
listener.connect()
|
||||
b.notify("foo")
|
||||
b.notify("bar")
|
||||
b.notify("hello") # Normal dispatching still work
|
||||
eq_(l.hello_count, 3)
|
||||
eq_(listener.hello_count, 3)
|
||||
|
||||
@@ -9,14 +9,15 @@
|
||||
import sys
|
||||
import os
|
||||
|
||||
from pytest import raises, mark
|
||||
import pytest
|
||||
|
||||
from ..path import Path, pathify
|
||||
from ..testutil import eq_
|
||||
|
||||
|
||||
def pytest_funcarg__force_ossep(request):
|
||||
monkeypatch = request.getfuncargvalue("monkeypatch")
|
||||
@pytest.fixture
|
||||
def force_ossep(request):
|
||||
monkeypatch = request.getfixturevalue("monkeypatch")
|
||||
monkeypatch.setattr(os, "sep", "/")
|
||||
|
||||
|
||||
@@ -50,7 +51,7 @@ def test_init_with_tuple_and_list(force_ossep):
|
||||
|
||||
def test_init_with_invalid_value(force_ossep):
|
||||
try:
|
||||
path = Path(42)
|
||||
path = Path(42) # noqa: F841
|
||||
assert False
|
||||
except TypeError:
|
||||
pass
|
||||
@@ -142,8 +143,8 @@ def test_path_slice(force_ossep):
|
||||
eq_((), foobar[:foobar])
|
||||
abcd = Path("a/b/c/d")
|
||||
a = Path("a")
|
||||
b = Path("b")
|
||||
c = Path("c")
|
||||
b = Path("b") # noqa: #F841
|
||||
c = Path("c") # noqa: #F841
|
||||
d = Path("d")
|
||||
z = Path("z")
|
||||
eq_("b/c", abcd[a:d])
|
||||
@@ -236,12 +237,12 @@ def test_getitem_path(force_ossep):
|
||||
eq_(p[Path("baz/bleh")], Path("/foo/bar/baz/bleh"))
|
||||
|
||||
|
||||
@mark.xfail(reason="pytest's capture mechanism is flaky, I have to investigate")
|
||||
@pytest.mark.xfail(reason="pytest's capture mechanism is flaky, I have to investigate")
|
||||
def test_log_unicode_errors(force_ossep, monkeypatch, capsys):
|
||||
# When an there's a UnicodeDecodeError on path creation, log it so it can be possible
|
||||
# to debug the cause of it.
|
||||
monkeypatch.setattr(sys, "getfilesystemencoding", lambda: "ascii")
|
||||
with raises(UnicodeDecodeError):
|
||||
with pytest.raises(UnicodeDecodeError):
|
||||
Path(["", b"foo\xe9"])
|
||||
out, err = capsys.readouterr()
|
||||
assert repr(b"foo\xe9") in err
|
||||
|
||||
@@ -95,7 +95,7 @@ def test_make_sure_theres_no_messup_between_queries():
|
||||
threads.append(t)
|
||||
while threads:
|
||||
time.sleep(0.1)
|
||||
threads = [t for t in threads if t.isAlive()]
|
||||
threads = [t for t in threads if t.is_alive()]
|
||||
|
||||
|
||||
def test_query_after_close():
|
||||
|
||||
@@ -11,6 +11,8 @@ from ..gui.table import Table, GUITable, Row
|
||||
|
||||
|
||||
class TestRow(Row):
|
||||
__test__ = False
|
||||
|
||||
def __init__(self, table, index, is_new=False):
|
||||
Row.__init__(self, table)
|
||||
self.is_new = is_new
|
||||
@@ -28,6 +30,8 @@ class TestRow(Row):
|
||||
|
||||
|
||||
class TestGUITable(GUITable):
|
||||
__test__ = False
|
||||
|
||||
def __init__(self, rowcount, viewclass=CallLogger):
|
||||
GUITable.__init__(self)
|
||||
self.view = viewclass()
|
||||
|
||||
@@ -12,7 +12,31 @@ from pytest import raises
|
||||
|
||||
from ..testutil import eq_
|
||||
from ..path import Path
|
||||
from ..util import *
|
||||
from ..util import (
|
||||
nonone,
|
||||
tryint,
|
||||
minmax,
|
||||
first,
|
||||
flatten,
|
||||
dedupe,
|
||||
stripfalse,
|
||||
extract,
|
||||
allsame,
|
||||
trailiter,
|
||||
format_time,
|
||||
format_time_decimal,
|
||||
format_size,
|
||||
remove_invalid_xml,
|
||||
multi_replace,
|
||||
delete_if_empty,
|
||||
open_if_filename,
|
||||
FileOrPath,
|
||||
iterconsume,
|
||||
escape,
|
||||
get_file_ext,
|
||||
rem_file_ext,
|
||||
pluralize,
|
||||
)
|
||||
|
||||
|
||||
def test_nonone():
|
||||
@@ -214,42 +238,46 @@ def test_multi_replace():
|
||||
|
||||
# --- Files
|
||||
|
||||
# These test cases needed https://github.com/hsoft/pytest-monkeyplus/ which appears to not be compatible with latest
|
||||
# pytest, looking at where this is used only appears to be in hscommon.localize_all_stringfiles at top level.
|
||||
# Right now this repo does not seem to utilize any of that functionality so going to leave these tests out for now.
|
||||
# TODO decide if fixing these tests is worth it or not.
|
||||
|
||||
class TestCase_modified_after:
|
||||
def test_first_is_modified_after(self, monkeyplus):
|
||||
monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
monkeyplus.patch_osstat("second", st_mtime=41)
|
||||
assert modified_after("first", "second")
|
||||
# class TestCase_modified_after:
|
||||
# def test_first_is_modified_after(self, monkeyplus):
|
||||
# monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
# monkeyplus.patch_osstat("second", st_mtime=41)
|
||||
# assert modified_after("first", "second")
|
||||
|
||||
def test_second_is_modified_after(self, monkeyplus):
|
||||
monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
monkeyplus.patch_osstat("second", st_mtime=43)
|
||||
assert not modified_after("first", "second")
|
||||
# def test_second_is_modified_after(self, monkeyplus):
|
||||
# monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
# monkeyplus.patch_osstat("second", st_mtime=43)
|
||||
# assert not modified_after("first", "second")
|
||||
|
||||
def test_same_mtime(self, monkeyplus):
|
||||
monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
monkeyplus.patch_osstat("second", st_mtime=42)
|
||||
assert not modified_after("first", "second")
|
||||
# def test_same_mtime(self, monkeyplus):
|
||||
# monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
# monkeyplus.patch_osstat("second", st_mtime=42)
|
||||
# assert not modified_after("first", "second")
|
||||
|
||||
def test_first_file_does_not_exist(self, monkeyplus):
|
||||
# when the first file doesn't exist, we return False
|
||||
monkeyplus.patch_osstat("second", st_mtime=42)
|
||||
assert not modified_after("does_not_exist", "second") # no crash
|
||||
# def test_first_file_does_not_exist(self, monkeyplus):
|
||||
# # when the first file doesn't exist, we return False
|
||||
# monkeyplus.patch_osstat("second", st_mtime=42)
|
||||
# assert not modified_after("does_not_exist", "second") # no crash
|
||||
|
||||
def test_second_file_does_not_exist(self, monkeyplus):
|
||||
# when the second file doesn't exist, we return True
|
||||
monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
assert modified_after("first", "does_not_exist") # no crash
|
||||
# def test_second_file_does_not_exist(self, monkeyplus):
|
||||
# # when the second file doesn't exist, we return True
|
||||
# monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
# assert modified_after("first", "does_not_exist") # no crash
|
||||
|
||||
def test_first_file_is_none(self, monkeyplus):
|
||||
# when the first file is None, we return False
|
||||
monkeyplus.patch_osstat("second", st_mtime=42)
|
||||
assert not modified_after(None, "second") # no crash
|
||||
# def test_first_file_is_none(self, monkeyplus):
|
||||
# # when the first file is None, we return False
|
||||
# monkeyplus.patch_osstat("second", st_mtime=42)
|
||||
# assert not modified_after(None, "second") # no crash
|
||||
|
||||
def test_second_file_is_none(self, monkeyplus):
|
||||
# when the second file is None, we return True
|
||||
monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
assert modified_after("first", None) # no crash
|
||||
# def test_second_file_is_none(self, monkeyplus):
|
||||
# # when the second file is None, we return True
|
||||
# monkeyplus.patch_osstat("first", st_mtime=42)
|
||||
# assert modified_after("first", None) # no crash
|
||||
|
||||
|
||||
class TestCase_delete_if_empty:
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
import pytest
|
||||
|
||||
import threading
|
||||
import py.path
|
||||
|
||||
@@ -148,7 +150,7 @@ class TestApp:
|
||||
return gui
|
||||
|
||||
|
||||
# To use @with_app, you have to import pytest_funcarg__app in your conftest.py file.
|
||||
# To use @with_app, you have to import app in your conftest.py file.
|
||||
def with_app(setupfunc):
|
||||
def decorator(func):
|
||||
func.setupfunc = setupfunc
|
||||
@@ -157,7 +159,8 @@ def with_app(setupfunc):
|
||||
return decorator
|
||||
|
||||
|
||||
def pytest_funcarg__app(request):
|
||||
@pytest.fixture
|
||||
def app(request):
|
||||
setupfunc = request.function.setupfunc
|
||||
if hasattr(setupfunc, "__code__"):
|
||||
argnames = setupfunc.__code__.co_varnames[: setupfunc.__code__.co_argcount]
|
||||
|
||||
BIN
images/dialog-error.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
images/dupeguru.icns
Executable file
BIN
images/exchange.icns
Normal file
BIN
images/exchange.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
images/exchange.png
Normal file
|
After Width: | Height: | Size: 797 B |
BIN
images/exchange_purple.png
Normal file
|
After Width: | Height: | Size: 685 B |
BIN
images/exchange_purple_upscaled.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
images/exchange_purple_waifu_s4_tta8.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
images/exchange_purple_waifu_s4_tta8.xcf
Normal file
BIN
images/exchange_waifu_s4_tta8.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
images/old_zoom_best_fit.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
images/old_zoom_in.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
images/old_zoom_original.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
images/old_zoom_out.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
119
locale/ar/LC_MESSAGES/columns.po
Normal file
@@ -0,0 +1,119 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Arabic (https://www.transifex.com/voltaicideas/teams/116153/ar/)\n"
|
||||
"Language: ar\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr ""
|
||||
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
246
locale/ar/LC_MESSAGES/core.po
Normal file
@@ -0,0 +1,246 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Arabic (https://www.transifex.com/voltaicideas/teams/116153/ar/)\n"
|
||||
"Language: ar\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:308
|
||||
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 ""
|
||||
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr ""
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr ""
|
||||
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr ""
|
||||
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr ""
|
||||
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr ""
|
||||
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr ""
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr ""
|
||||
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr ""
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr ""
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr ""
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr ""
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr ""
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
910
locale/ar/LC_MESSAGES/ui.po
Normal file
@@ -0,0 +1,910 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Arabic (https://www.transifex.com/voltaicideas/teams/116153/ar/)\n"
|
||||
"Language: ar\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:86 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "About dupeGuru"
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:87
|
||||
msgid "Open Debug Log"
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr ""
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Deletion Options"
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:35 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Link deleted files"
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"After having deleted a duplicate, place a link targeting the reference file "
|
||||
"to replace the deleted file."
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Hardlink"
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Symlink"
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:48
|
||||
msgid " (unsupported)"
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:49 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Directly delete files"
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:51 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:60 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Attribute"
|
||||
msgstr ""
|
||||
|
||||
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Selected"
|
||||
msgstr ""
|
||||
|
||||
#: qt/details_table.py:16 qt/directories_model.py:24
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:64 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Results..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:65 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Results Window"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:66
|
||||
msgid "Add Folder..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:74 qt/result_window.py:100
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "File"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:76 qt/result_window.py:108
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:78 qt/result_window.py:110
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:80 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Recent Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:163 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:166 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:230
|
||||
msgid "Unsaved results"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:231 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "You have unsaved results, do you really want to quit?"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:239 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a folder to add to the scanning list"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:266 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a results file to load"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:267
|
||||
msgid "All Files (*.*)"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:267 qt/result_window.py:311
|
||||
msgid "dupeGuru Results (*.dupeguru)"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:278
|
||||
msgid "Start a new scan"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:279 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "You have unsaved results, do you really want to continue?"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_model.py:23 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_model.py:23 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_model.py:24 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Excluded"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_model.py:24 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
|
||||
#: qt/ignore_list_dialog.py:45 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Selected"
|
||||
msgstr ""
|
||||
|
||||
#: qt/ignore_list_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: qt/ignore_list_dialog.py:47 qt/problem_dialog.py:61
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr ""
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr ""
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:69
|
||||
msgid "More Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:74
|
||||
msgid "Fewer Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:81
|
||||
msgid "Font size:"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:85
|
||||
msgid "Language:"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:91 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy and Move:"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:94 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Right in destination"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:95 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Recreate relative path"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:96 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Recreate absolute path"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:99
|
||||
msgid "Custom Command (arguments: %d for dupe, %r for ref):"
|
||||
msgstr ""
|
||||
|
||||
#: qt/preferences_dialog.py:174
|
||||
msgid "dupeGuru has to restart for language changes to take effect."
|
||||
msgstr ""
|
||||
|
||||
#: qt/prioritize_dialog.py:75 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Re-Prioritize duplicates"
|
||||
msgstr ""
|
||||
|
||||
#: qt/prioritize_dialog.py:79 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"Add criteria to the right box and click OK to send the dupes that correspond"
|
||||
" the best to these criteria to their respective group's reference position. "
|
||||
"Read the help file for more information."
|
||||
msgstr ""
|
||||
|
||||
#: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Problems!"
|
||||
msgstr ""
|
||||
|
||||
#: qt/problem_dialog.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"There were problems processing some (or all) of the files. The cause of "
|
||||
"these problems are described in the table below. Those files were not "
|
||||
"removed from your results."
|
||||
msgstr ""
|
||||
|
||||
#: qt/problem_dialog.py:56
|
||||
msgid "Reveal Selected"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:58 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show Dupes Only"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show Delta Values"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:60
|
||||
msgid "Send Marked to Recycle Bin..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:61 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Move Marked to..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy Marked to..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:63 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Marked from Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:64 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Re-Prioritize Results..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:67 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Selected from Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:71 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Add Selected to Ignore List"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:75 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Make Selected into Reference"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:77 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Open Selected with Default Application"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:80
|
||||
msgid "Open Containing Folder of Selected"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:82 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Rename Selected"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:83 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark All"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:84 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark None"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Invert Marking"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:86 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark Selected"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:87
|
||||
msgid "Export To HTML"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:88
|
||||
msgid "Export To CSV"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:89 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Save Results..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:90 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Invoke Custom Command"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:102
|
||||
msgid "Mark"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:106 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Columns"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:163
|
||||
msgid "Reset to Defaults"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:185
|
||||
msgid "{} Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:193 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Dupes Only"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:194
|
||||
msgid "Delta Values"
|
||||
msgstr ""
|
||||
|
||||
#: qt/result_window.py:310 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr ""
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr ""
|
||||
|
||||
#: qt/se/preferences_dialog.py:52 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "KB"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "%@ Results"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Add New Folder..."
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Automatically check for updates"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Basic"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Bring All to Front"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Check for update..."
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Close Window"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Custom command (arguments: %d for dupe, %r for ref):"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Cut"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Delta"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details of Selected File"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details Panel"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Directories"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Results"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Website"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Export Results to CSV"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Export Results to XHTML"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Fewer results"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter hardness:"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter Results..."
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Folder Selection Window"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Font Size:"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Hide dupeGuru"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Hide Others"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore files smaller than:"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load from file..."
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Minimize"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mode"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "More results"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Preferences..."
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Quick Look"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Quit dupeGuru"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reset to Default"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reset To Defaults"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal Selected in Finder"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select All"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Send Marked to Trash..."
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Start Duplicate Scan"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "The name '%@' already exists."
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr ""
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr ""
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr ""
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr ""
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr ""
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr ""
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr ""
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr ""
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr ""
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr ""
|
||||
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr ""
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr ""
|
||||
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr ""
|
||||
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr ""
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr ""
|
||||
@@ -4,114 +4,114 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr ""
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:147
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
|
||||
126
locale/core.pot
@@ -4,235 +4,235 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid "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?"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
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 ""
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:312
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:762
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr ""
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr ""
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr ""
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr ""
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr ""
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:68
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:96
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:97
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:98
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:99
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:132
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:132
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:159
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:159
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr ""
|
||||
|
||||
#: core/results.py:129
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr ""
|
||||
|
||||
#: core/results.py:136
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/scanner.py:77
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr ""
|
||||
|
||||
#: core/scanner.py:101
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr ""
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,122 +1,123 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-11-20 11:53+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/projects/p/dupeguru/language/cs/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Czech (https://www.transifex.com/voltaicideas/teams/116153/cs/)\n"
|
||||
"Language: cs\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\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/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Cesta k souboru"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Chybové hlášení"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Typ"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Složka"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Název souboru"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Velikost"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Změna"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
msgstr "Doba trvání"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr ""
|
||||
msgstr "Vzorkovací frekvence"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Název souboru"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Složka"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Velikost (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Čas"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Vzorkovací frekvence"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Typ"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Změna"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Titul"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Umělec"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Žánr"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Rok"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Číslo stopy"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Komentář"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Shoda %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Slov"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Počet kopií"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Rozměry"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Velikost (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Časové razítko EXIF"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Velikost"
|
||||
|
||||
@@ -1,50 +1,53 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-12-07 15:22+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/projects/p/dupeguru/language/cs/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Czech (https://www.transifex.com/voltaicideas/teams/116153/cs/)\n"
|
||||
"Language: cs\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\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:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
msgstr "Neexistují žádné označené duplikáty. Nic se nestalo."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
msgstr "Nejsou k dispozici žádné vybrané duplikáty. Nic se nestalo."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
msgstr ""
|
||||
"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?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Vyhledávám duplicity"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Nahrávám"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Přesouvám"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Kopíruji"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Vyhazuji do koše"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -52,31 +55,35 @@ msgstr ""
|
||||
"Předchozí akce stále nebyla ukončena. Novou zatím nemůžete spustit. Počkejte"
|
||||
" pár sekund a zkuste to znovu."
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Nebyli nalezeny žádné duplicity."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr ""
|
||||
msgstr "Všechny označené soubory byly úspěšně zkopírovány."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr ""
|
||||
msgstr "Všechny označené soubory byly úspěšně přesunuty."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr ""
|
||||
msgstr "Všechny označené soubory byly úspěšně odeslány do koše."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Soubor se nepodařilo načíst: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr ""
|
||||
msgstr "'{}' již je v seznamu."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr ""
|
||||
msgstr "'{}' neexistuje."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
@@ -84,186 +91,167 @@ msgstr ""
|
||||
"Všech %d vybraných shod bude v následujících hledáních ignorováno. "
|
||||
"Pokračovat?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr ""
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Vyberte adresář, do kterého chcete zkopírovat označené soubory"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr ""
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "Vyberte adresář, kam chcete přesunout označené soubory"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr ""
|
||||
msgstr "Vyberte cíl pro exportovaný soubor CSV"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Nelze zapisovat do souboru: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
"Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách."
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr ""
|
||||
msgstr "{} duplicitní skupiny byly změněny změně priorit."
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Shromažďuji prohlížené soubory"
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Shromažďuji prohlížené soubory"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d vyřazeno)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "Nalezeno 0 shod"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "Nalezeno %d shod"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Read size of %d/%d files"
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr ""
|
||||
msgstr "Posíláte-{} soubory do koše."
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Regulární výrazy"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr "Opravdu chcete odstranit všech %d položek ze seznamu výjimek?"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Název souboru"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Končí číslem"
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Název souboru - pole"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Nekončí číslem"
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Název souboru - pole (bez objednávky)"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr ""
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Tagy"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr ""
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Obsah"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "Nejvyšší"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "Nejnižší"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "Nejnovější"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "Nejstarší"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicit označeno."
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr " filtr: %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Načtena metadata %d/%d souborů"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analyzováno %d/%d snímků"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "Provedeno %d/%d porovnání bloků"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Připravuji porovnávání"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Ověřeno %d/%d shod"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr ""
|
||||
msgstr "Přečetl EXIF %d/%d obrázků"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Časové razítko EXIF"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Zádný"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Končí číslem"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Nekončí číslem"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Nejdelší"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Nejkratší"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Nejvyšší"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Nejnižší"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Nejnovější"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Nejstarší"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicit označeno."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr " filtr: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Read size of %d/%d files"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Načtena metadata %d/%d souborů"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "Skoro hotovo! Fidlování s výsledky..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "Grouped %d/%d matches"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Odstraňuji falešné shody"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr "Zpracováno %d/%d shod se seznamem výjimek"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Přiřazuji prioritu skupině"
|
||||
msgstr "Složky"
|
||||
|
||||
@@ -1,123 +1,122 @@
|
||||
# Translators:
|
||||
# Harakiri1337, 2014
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2014-06-03 21:56+0000\n"
|
||||
"Last-Translator: Harakiri1337\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/dupeguru/language/de/)\n"
|
||||
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2021\n"
|
||||
"Language-Team: German (https://www.transifex.com/voltaicideas/teams/116153/de/)\n"
|
||||
"Language: de\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Dateipfad"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Fehlermeldung"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Typ"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Ordner"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Dateiname"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Größe"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Geändert"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Dauer"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Abtastrate"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Dateiname"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Ordner"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Größe (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Zeit"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Abtastrate"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Typ"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Geändert"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Künstler"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Jahr"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Titel Nummer"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Übereinstimmung %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "genutzte Wörter"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Anzahl der Duplikate"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Auflösung"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Größe (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "EXIF Zeitstempel"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Größe"
|
||||
|
||||
@@ -1,26 +1,25 @@
|
||||
# Translators:
|
||||
# Harakiri1337, 2014
|
||||
# Frank Weber <frank.weber@gmail.com>, 2014
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2014-09-26 21:24+0000\n"
|
||||
"Last-Translator: Frank Weber <frank.weber@gmail.com>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/dupeguru/language/de/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: German (https://www.transifex.com/voltaicideas/teams/116153/de/)\n"
|
||||
"Language: de\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "Keine markierten Duplikate, daher wurde nichts getan."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "Keine ausgewählten Duplikate, daher wurde nichts getan."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
@@ -28,27 +27,27 @@ msgstr ""
|
||||
"Sie sind dabei, sehr viele Dateien gleichzeitig zu öffnen. Das kann zu "
|
||||
"ziemlichem Durcheinander führen! Trotzdem fortfahren?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Suche nach Duplikaten"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Lade"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Verschiebe"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Kopiere"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Verschiebe in den Papierkorb"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -56,32 +55,36 @@ msgstr ""
|
||||
"Eine vorherige Aktion ist noch in der Bearbeitung. Sie können noch keine "
|
||||
"Neue starten. Warten Sie einige Sekunden und versuchen es erneut."
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Keine Duplikate gefunden."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "Alle markierten Dateien wurden erfolgreich kopiert."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "Alle markierten Dateien wurden erfolgreich verschoben."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr ""
|
||||
"Alle markierten Dateien wurden erfolgreich in den Papierkorb verschoben."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Konnte Datei {} nicht laden."
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}' ist bereits in der Liste."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' existiert nicht."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
@@ -89,187 +92,172 @@ msgstr ""
|
||||
"Alle %d ausgewählten Dateien werden in zukünftigen Scans ignoriert. "
|
||||
"Fortfahren?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "kopieren"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr ""
|
||||
"Wählen Sie ein Verzeichnis aus, in das markierte Dateien kopiert werden "
|
||||
"sollen"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "verschieben"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr ""
|
||||
"Wählen Sie ein Verzeichnis aus, in das markierte Dateien verschoben werden "
|
||||
"sollen"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr "Wählen Sie einen Ordner zum {} der ausgewählten Dateien."
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Zielverzeichnis für den CSV Export angeben"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Konnte Datei {} nicht schreiben."
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
"Sie haben noch keinen Befehl erstellt. Bitte dies in den Einstellungen vornehmen.\n"
|
||||
"Bsp.: \"C:\\Program Files\\Diff\\Diff.exe\" \"%d\" \"%r\""
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{} Duplikat-Gruppen wurden durch die Neu-Priorisierung geändert."
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Sammle zu scannende Dateien..."
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "Ausgewählte Ordner enthalten keine scannbaren Dateien."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Sammle zu scannende Dateien..."
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d verworfen)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "0 Übereinstimmungen gefunden"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d Übereinstimmungen gefunden"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Lese Größe von %d/%d Dateien"
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "Verschiebe {} Datei(en) in den Papierkorb."
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Reguläre Ausdrücke"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr "Möchten Sie wirklich alle %d Einträge aus der Ausnahmeliste löschen?"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr "Nichts"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Endet mit Zahl"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Endet nicht mit Zahl"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr "Längste"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr "Kürzeste"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "Höchste"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "Niedrigste"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "Neuste"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "Älterste"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) Duplikate markiert."
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr " Filter: %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Lese Metadaten von %d/%d Dateien"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analysiere Bild %d/%d"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "%d/%d Chunk-Matches ausgeführt"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Bereite Matching vor"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "%d/%d verifizierte Übereinstimmungen"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Lese EXIF von Bild %d/%d"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Konnte Datei {} nicht laden."
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Konnte Datei {} nicht schreiben."
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Dateiname"
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Dateiname - Bereiche"
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Dateiname - Bereiche (ohne Reihenfolge)"
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Inhalt"
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analysiere Bild %d/%d"
|
||||
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "%d/%d Chunk-Matches ausgeführt"
|
||||
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Bereite Matching vor"
|
||||
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "%d/%d verifizierte Übereinstimmungen"
|
||||
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Lese EXIF von Bild %d/%d"
|
||||
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "EXIF Zeitstempel"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Nichts"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Endet mit Zahl"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Endet nicht mit Zahl"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Längste"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Kürzeste"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Höchste"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Niedrigste"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Neuste"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Älterste"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) Duplikate markiert."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr " Filter: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Lese Größe von %d/%d Dateien"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Lese Metadaten von %d/%d Dateien"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr "Fast fertig! Arrangiere Ergebnisse..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr "Ordner"
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "Verschiebe Dateien in den Papierkorb"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "%d/%d Übereinstimmungen gruppiert"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Entferne falsche Übereinstimmungen"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr "%d/%d Treffer mit der Ausnahmeliste abgeglichen"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Gruppenpriorisierung"
|
||||
|
||||
@@ -1,26 +1,34 @@
|
||||
# Translators:
|
||||
# Harakiri1337, 2014
|
||||
# Frank Weber <frank.weber@gmail.com>, 2014
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2014-09-26 21:15+0000\n"
|
||||
"Last-Translator: Frank Weber <frank.weber@gmail.com>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/dupeguru/language/de/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: German (https://www.transifex.com/voltaicideas/teams/116153/de/)\n"
|
||||
"Language: de\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Beenden"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Optionen"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "Ausnahme-Liste"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Bilder-Cache leeren"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "dupeGuru Hilfe"
|
||||
@@ -33,6 +41,15 @@ msgstr "Über dupeGuru"
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Debug Log öffnen"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr ""
|
||||
"Möchten Sie wirklich alle zwischengespeicherten Bildanalysen entfernen?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Bilder-Cache geleert."
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "{} Datei (*.{})"
|
||||
@@ -129,6 +146,30 @@ msgstr "Hilfe"
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Lade letztes Suchergebnis"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Anwendungsmodus:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Musik"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Bild"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Standard"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Scantyp:"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Optionen"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "Zu durchsuchende Ordner auswählen und \"Suche starten\" drücken."
|
||||
@@ -203,9 +244,78 @@ msgstr "Liste leeren"
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Scantyp:"
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Folgende Tags scannen:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Track"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Künstler"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Jahr"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Wortgewichtung"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Gleiche ähnliche Wörter ab"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Dateitypen dürfen gemischt werden"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Nutze reguläre Ausdrücke beim Filtern"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Entferne leere Ordner beim Löschen oder Verschieben"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignoriere Duplikate mit Hardlinks auf dieselbe Datei"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Debug Modus (Neustart nötig)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Gleiche Bilder mit unterschiedlicher Auflösung ab"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
@@ -283,12 +393,6 @@ msgstr ""
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Zeige Markierte"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
@@ -406,86 +510,6 @@ msgstr "Zeige Delta-Werte"
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Datei zum Speichern der Suchergebnisse auswählen"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Folgende Tags scannen:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Track"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Künstler"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Jahr"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Wortgewichtung"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Gleiche ähnliche Wörter ab"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Dateitypen dürfen gemischt werden"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Nutze reguläre Ausdrücke beim Filtern"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Entferne leere Ordner beim Löschen oder Verschieben"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignoriere Duplikate mit Hardlinks auf dieselbe Datei"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Debug Modus (Neustart nötig)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Gleiche Bilder mit unterschiedlicher Auflösung ab"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Bilder-Cache leeren"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr ""
|
||||
"Möchten Sie wirklich alle zwischengespeicherten Bildanalysen entfernen?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Bilder-Cache geleert."
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "Ignoriere Dateien kleiner als"
|
||||
@@ -642,11 +666,6 @@ msgstr "Mehr Suchergebnisse"
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Optionen"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Einfügen"
|
||||
@@ -711,112 +730,219 @@ msgstr "Fenster"
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Anwendungsmodus:"
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Ausschlussfilter"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Musik"
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Scan-Ergebnisse"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Bild"
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "Verzeichnisse laden..."
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Standard"
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Verzeichnisse speichern..."
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Optionen"
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Wählen Sie eine zu ladende Verzeichnisdatei aus"
|
||||
|
||||
#~ msgid "Removing dead tracks from your iTunes Library"
|
||||
#~ msgstr "Entferne tote Tracks aus Ihrer iTunes Bibliothek"
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "dupeGuru Verzeichnisse (*.dupegurudirs)"
|
||||
|
||||
#~ msgid "Scanning the iTunes Library"
|
||||
#~ msgstr "Durchsuche die iTunes-Bibliothek"
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr ""
|
||||
"Wählen Sie eine Datei aus, in der Ihre Verzeichnisse gespeichert werden "
|
||||
"sollen"
|
||||
|
||||
#~ msgid "Sending dupes to the Trash"
|
||||
#~ msgstr "Schicke Duplikate in den Papierkorb"
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "dupeGuru Verzeichnisse (*.dupegurudirs)"
|
||||
|
||||
#~ msgid "Talking to iTunes. Don't touch it!"
|
||||
#~ msgstr "Kommuniziere mit iTunes. Bitte warten!"
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Addieren"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||
#~ msgstr ""
|
||||
#~ "Ihre iTunes-Bibliothek enthält %d tote Tracks zum Entfernen. Fortsetzen?"
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Standardeinstellungen wiederherstellen"
|
||||
|
||||
#~ msgid "You have no dead tracks in your iTunes Library"
|
||||
#~ msgstr "Sie haben keine toten Tracks in Ihrer iTunes-Bibliothek"
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "Testzeichenfolge"
|
||||
|
||||
#~ msgid "The iTunes application couldn't be found."
|
||||
#~ msgstr "Das iTunes-Programm konnte nicht gefunden werden."
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "Geben Sie hier einen regulären Python-Ausdruck ein..."
|
||||
|
||||
#~ msgid "Talking to iPhoto. Don't touch it!"
|
||||
#~ msgstr "Kommuniziere mit iPhoto. Bitte warten!"
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr "Geben Sie hier einen Dateisystempfad oder Dateinamen ein..."
|
||||
|
||||
#~ msgid "Talking to Aperture. Don't touch it!"
|
||||
#~ msgstr "Kommuniziere mit Aperture. Bitte warten!"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"Diese regulären Python-Ausdrücke (Groß- und Kleinschreibung beachten) filtern Dateien während des Scannens heraus.<br>Der <strong>Standardstatus</strong> von Verzeichnissen wird auf der Registerkarte \"Verzeichnisse\" auf \"Ausgeschlossen\" gesetzt, wenn ihr Name zufällig mit einem der ausgewählten regulären Ausdrücke übereinstimmt.<br>Für jede gesammelte Datei werden zwei Tests durchgeführt, um festzustellen, ob sie vollständig ignoriert werden soll oder nicht:<br><li>1. Reguläre Ausdrücke ohne Pfadtrennzeichen werden nur mit dem Dateinamen verglichen.</li>\n"
|
||||
"<li>2. Reguläre Ausdrücke mit mindestens einem Pfadtrennzeichen werden mit dem vollständigen Pfad zur Datei verglichen.</li><br>\n"
|
||||
"Beispiel: Wenn Sie PNG-Dateien nur aus dem Verzeichnis \"Meine Bilder\" herausfiltern möchten:<br><code>.*Meine\\sBilder\\\\.*\\.png</code><br><br>Sie können den regulären Ausdruck mit der Schaltfläche \"Testzeichenfolge\" testen, nachdem Sie einen falschen Pfad in das Testfeld eingefügt haben:<br><code>C:\\\\Nutzer\\Meine Bilder\\test.png</code><br><br>\n"
|
||||
"Übereinstimmende reguläre Ausdrücke werden hervorgehoben.<br>Wenn mindestens eine Markierung vorhanden ist, wird der getestete Pfad oder Dateiname beim Scannen ignoriert.<br><br>Verzeichnisse und Dateien, die mit einem Punkt '.' Beginnen. werden standardmäßig herausgefiltert.<br><br>"
|
||||
|
||||
#~ msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||
#~ msgstr ""
|
||||
#~ "Gelöschte Aperture-Fotos wurden dem Projekt \"dupeGuru Trash\" hinzugefügt."
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "Kompilierungsfehler:"
|
||||
|
||||
#~ msgid "The iPhoto application couldn't be found."
|
||||
#~ msgstr "Das iPhoto-Programm konnte nicht gefunden werden."
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "Erhöhen Sie den Zoom"
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Einstellungen"
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "Verringern Sie den Zoom"
|
||||
|
||||
#~ msgid "Check for Update"
|
||||
#~ msgstr "Auf Updates überprüfen"
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#~ msgid "Filename"
|
||||
#~ msgstr "Dateiname"
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "Normale Größe"
|
||||
|
||||
#~ msgid "Filename - Fields"
|
||||
#~ msgstr "Dateiname - Felder"
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#~ msgid "Filename - Fields (No Order)"
|
||||
#~ msgstr "Dateiname - Felder (ohne Reihenfolge)"
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "Beste Passform"
|
||||
|
||||
#~ msgid "Tags"
|
||||
#~ msgstr "Tags"
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Bild-Cache-Modus:"
|
||||
|
||||
#~ msgid "Contents"
|
||||
#~ msgstr "Inhalte"
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr "Überschreiben Sie Themensymbole in der Viewer-Symbolleiste"
|
||||
|
||||
#~ msgid "Audio Contents"
|
||||
#~ msgstr "Audio Inhalte"
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
"Verwenden Sie unsere eigenen internen Symbole anstelle der von der Theme "
|
||||
"Engine bereitgestellten"
|
||||
|
||||
#~ msgid "EXIF Timestamp"
|
||||
#~ msgstr "EXIF Zeitstempel"
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "Bildlaufleisten in Bildbetrachtern anzeigen"
|
||||
|
||||
#~ msgid "Folders"
|
||||
#~ msgstr "Ordner"
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
"Wenn das angezeigte Bild nicht zum Ansichtsfenster passt, zeigen Sie "
|
||||
"Bildlaufleisten an, um die Ansicht zu überspannen"
|
||||
|
||||
#~ msgid "Add Aperture Library"
|
||||
#~ msgstr "Füge Aperture-Bibliothek hinzu"
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr ""
|
||||
"Standardposition für Registerkartenleiste verwenden (Neustart erforderlich)"
|
||||
|
||||
#~ msgid "Add iPhoto Library"
|
||||
#~ msgstr "Füge iPhoto-Bibliothek hinzu"
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Platzieren Sie die Registerkartenleiste unter dem Hauptmenü und nicht daneben\n"
|
||||
"Unter MacOS füllt die Registerkartenleiste stattdessen die Fensterbreite aus."
|
||||
|
||||
#~ msgid "Add iTunes Library"
|
||||
#~ msgstr "Füge iTunes-Bibliothek hinzu"
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "Verwenden Sie Fettdruck als Referenz"
|
||||
|
||||
#~ msgid "Audio Content"
|
||||
#~ msgstr "Audio Inhalt"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "Vordergrundfarbe für Referenzen:"
|
||||
|
||||
#~ msgid "Content"
|
||||
#~ msgstr "Inhalt"
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "Hintergrundfarbe für Referenzen:"
|
||||
|
||||
#~ msgid "dupeGuru ME Preferences"
|
||||
#~ msgstr "dupeGuru ME Einstellungen"
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "Vordergrundfarbe für Delta:"
|
||||
|
||||
#~ msgid "dupeGuru PE Preferences"
|
||||
#~ msgstr "dupeGuru PE Einstellungen"
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "Zeigt die Titelleiste an und kann angedockt werden"
|
||||
|
||||
#~ msgid "Remove Dead Tracks in iTunes"
|
||||
#~ msgstr "Entferne tote Tracks in iTunes"
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
"Während die Titelleiste ausgeblendet ist, ziehen Sie das schwebende Fenster "
|
||||
"mit der Modifikatortaste herum"
|
||||
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
"Die Titelleiste kann nur deaktiviert werden, während das Fenster angedockt "
|
||||
"ist"
|
||||
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "Vertikale Titelleiste"
|
||||
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr "Ändern Sie die Titelleiste von horizontal oben in vertikal links"
|
||||
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "Registerkartenleiste anzeigen"
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"Diese regulären Python-Ausdrücke (Groß- und Kleinschreibung beachten) filtern Dateien während des Scannens heraus.<br>Der <strong>Standardstatus</strong> von Verzeichnissen wird auf der Registerkarte \"Verzeichnisse\" auf \"Ausgeschlossen\" gesetzt, wenn ihr Name zufällig mit einem der ausgewählten regulären Ausdrücke übereinstimmt.<br>Für jede gesammelte Datei werden zwei Tests durchgeführt, um festzustellen, ob sie vollständig ignoriert werden soll oder nicht:<br><li>1. Reguläre Ausdrücke ohne Pfadtrennzeichen werden nur mit dem Dateinamen verglichen.</li>\n"
|
||||
"<li>2. Reguläre Ausdrücke mit mindestens einem Pfadtrennzeichen werden mit dem vollständigen Pfad zur Datei verglichen.</li><br>\n"
|
||||
"Beispiel: Wenn Sie PNG-Dateien nur aus dem Verzeichnis \"Meine Bilder\" herausfiltern möchten:<br><code>.*Meine\\sBilder\\\\.*\\.png</code><br><br>Sie können den regulären Ausdruck mit der Schaltfläche \"Testzeichenfolge\" testen, nachdem Sie einen falschen Pfad in das Testfeld eingefügt haben:<br><code>C:\\\\Nutzer\\Meine Bilder\\test.png</code><br><br>\n"
|
||||
"Übereinstimmende reguläre Ausdrücke werden hervorgehoben.<br>Wenn mindestens eine Markierung vorhanden ist, wird der getestete Pfad oder Dateiname beim Scannen ignoriert.<br><br>Verzeichnisse und Dateien, die mit einem Punkt '.' Beginnen. werden standardmäßig herausgefiltert.<br><br>"
|
||||
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Ergebnisse"
|
||||
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "Allgemeine Schnittstelle"
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Ergebnistabelle"
|
||||
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Detailfenster"
|
||||
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "Allgemeines"
|
||||
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Anzeige"
|
||||
|
||||
@@ -1,121 +1,123 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2016-07-22 11:30+0000\n"
|
||||
"Last-Translator: 1kakarot\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Greek (https://www.transifex.com/voltaicideas/teams/116153/el/)\n"
|
||||
"Language: el\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: el\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Διαδρομή αρχείου"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Μήνυμα σφάλματος"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Τύπος"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Φάκελος"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Όνομα αρχείου"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Μέγεθος-Διαστάσεις?"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Τροποποίηση"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Διάρκεια"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr ""
|
||||
msgstr "Ρυθμός δειγματοληψίας"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Όνομα αρχείου"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Φάκελος"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Μέγεθος (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Χρόνος"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Ρυθμός δειγματοληψίας"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Τύπος"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Τροποποίηση"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Τίτλος"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Καλλιτέχνης"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Αλμπουμ"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Είδος"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Έτος"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Αριθμός κομματιού"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Σχόλιο"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Ταύτιση %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Χρησιμοποιημένες λέξεις"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Αριθμός διπλοτύπων"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Διαστάσεις"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Μέγεθος (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "Χρονοσήμανση EXIF"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Μέγεθος-Διαστάσεις?"
|
||||
|
||||
@@ -1,23 +1,25 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2016-07-22 11:30+0000\n"
|
||||
"Last-Translator: 1kakarot\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Greek (https://www.transifex.com/voltaicideas/teams/116153/el/)\n"
|
||||
"Language: el\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: el\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "Δεν υπάρχουν μαρκαρισμένα διπλότυπα. Δεν έγινε τίποτα."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "Δεν υπάρχουν επιλεγμένα διπλότυπα. Δεν έγινε τίποτα."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
@@ -26,27 +28,27 @@ msgstr ""
|
||||
"ανοίγουν αυτάτα αρχεία, κάτι τέτοιο μπορεί να προκαλέσει ένα μικρό χάος. "
|
||||
"Συνέχεια;"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Σάρωση για διπλότυπα"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Φόρτωση"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Μετακίνηση"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Αντιγραφή"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Αποστολή στα σκουπίδια"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -54,216 +56,201 @@ msgstr ""
|
||||
"Μια προηγούμενη ενέργεια είναι σε εξέλιξη. Δεν μπορείτε να ξεκινήσετε "
|
||||
"καινούργια ακόμα. Περιμένετε λίγα δευτερόλεπτα, έπειτα προσπαθήστε ξανά."
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Δεν βρέθηκαν διπλότυπα."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "Όλα τα επιλεγμένα αρχεία αντιγράφηκαν επιτυχώς."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "Όλα τα επιλεγμένα αρχεία μετακινήθηκαν επιτυχώς."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr "Όλα τα επιλεγμένα αρχεία στάλθηκαν με επιτυχία στον κάδο."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Δεν ήταν δυνατή η φόρτωση του αρχείου: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}' υπάρχει ήδη στη λίστα."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' δεν υπάρχει."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
msgstr ""
|
||||
"Όλα τα επιλεγμένα %d στοιχεία θα αγνοηθούν σε μελλοντικές σαρώσεις.Συνέχεια;"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "αντιγραφή"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Επιλέξτε έναν κατάλογο για να αντιγράψετε επισημασμένα αρχεία."
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "μετακίνηση"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "Επιλέξτε έναν κατάλογο για να μετακινήσετε τα επισημασμένα αρχεία."
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr "Επιλέξτε ένα φάκελο {} για τα μαρκαρισμένα αρχεία"
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Επιλέξτε έναν προορισμό για το εξαγόμενο CSV σας"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Δεν ήταν δυνατή η εγγραφή στο αρχείο: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr "Δεν έχετε ορίσει ειδική εντολή. Ρυθμίστε τη στις προτιμήσεις σας. "
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "Πρόκειται να αφαιρέσετε %d αρχεία από τα αποτελέσματα. Συνέχεια;"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{} ομάδες διπλοτύπων άλλαξαν από το επαναπροσδιορισμό."
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Συλλογή αρχείων για σάρωση"
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "Οι επιλεγμένοι φάκελοι δεν περιέχουν σαρώσιμα αρχεία."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Συλλογή αρχείων για σάρωση"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d απορρίφθηκαν)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "0 διπλότυπα βρέθηκαν"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "Βρέθηκαν %d διπλότυπα"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Ανάγνωση μεγέθους %d/%d αρχείων"
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "Στέλνετε {} αρχεία στα σκουπίδια."
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Κανονικές εκφράσεις"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr "Θέλετε να αφαιρέσετε όλα τα %d στοιχεία από τη λίστα αγνόησης; "
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr "Καμμία"
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Ονομα αρχείου"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Λήγει με αριθμό"
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Όνομα αρχείου - Πεδία"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Δεν λήγει με αριθμό"
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Όνομα αρχείου - Πεδία (Χωρίς παραγγελία)"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr "Μεγαλύτερο"
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "ετικέτα"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr "Μικρότερο"
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Περιεχόμενα"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "Υψηλότερη"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "Χαμηλότερη"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "Νεώτερο"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "Παλαιότερο"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) επιλεγμένα διπλότυπα."
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr " φίλτρο: %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Ανάγνωση μεταδεδομένων των %d/%d αρχείων"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Ανάλυση %d/%d εικόνων"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "Εκτέλεση %d/%d μερικής ταυτοποίησης"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Προετοιμασία για σύγκριση"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Πιστοποίηση %d/%d ταυτόσημων"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Ανάγνωση EXIF %d/%d εικόνες"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Χρονική σήμανση EXIF"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Καμμία"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Λήγει με αριθμό"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Δεν λήγει με αριθμό"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Μεγαλύτερο"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Μικρότερο"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Υψηλότερη"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Χαμηλότερη"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Νεώτερο"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Παλαιότερο"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) επιλεγμένα διπλότυπα."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr " φίλτρο: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Ανάγνωση μεγέθους %d/%d αρχείων"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Ανάγνωση μεταδεδομένων των %d/%d αρχείων"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "Σχεδόν τελείωσα! Παιχνίδι με αποτελέσματα ..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "Αποστολή στον κάδο ανακύκλωσης"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "Ομαδοποιημένα %d/%d διπλότυπα"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Αφαίρεση ψευδών διπλοτύπων"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr "Επεξεργάσία %d/%d διπλοτύπων σε σχέση με τη λίστα αγνόησης"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Εργασία ομαδοποιημένης προτεραιότητας"
|
||||
msgstr "ντοσιέ"
|
||||
|
||||
@@ -1,27 +1,34 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2016-07-22 11:30+0000\n"
|
||||
"Last-Translator: 1kakarot\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Greek (https://www.transifex.com/voltaicideas/teams/116153/el/)\n"
|
||||
"Language: el\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: el\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Λειτουργία εφαρμογής:"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Έξοδος"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Επιλογές"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "Λίστα αγνόησης"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Εκκαθάριση μνήμης cache εικόνων"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "Βοήθεια για το dupeGuru"
|
||||
@@ -34,6 +41,15 @@ msgstr "Σχετικά με το dupeGuru"
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Άνοιγμα αρχείου αποσφαλμάτωσης"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr ""
|
||||
"Θέλετε πραγματικά να αφαιρέσετε όλη την αποθηκευμένη ανάλυση εικόνων σας;"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Μνήμη cache εικόνων εκκαθαρίστηκε."
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "{} αρχείο (*.{})"
|
||||
@@ -56,11 +72,11 @@ msgstr ""
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Hardlink"
|
||||
msgstr ""
|
||||
msgstr "Σκληρός σύνδεσμος"
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Symlink"
|
||||
msgstr ""
|
||||
msgstr "συμβολικός σύνδεσμος"
|
||||
|
||||
#: qt/deletion_options.py:48
|
||||
msgid " (unsupported)"
|
||||
@@ -130,6 +146,30 @@ msgstr "Βοήθεια"
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Φόρτωση πρόσφατων αποτελεσμάτων"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Λειτουργία εφαρμογής:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "μουσική"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Εικόνα"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "πρότυπο"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Είδος σάρωσης"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Περισσότερες επιλογές"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "Επιλέξτε τους φακέλους για να σαρώσετε και πατήστε το πλήκτρο \"Σάρωση\"."
|
||||
@@ -205,9 +245,78 @@ msgstr "Αφαίρεση"
|
||||
msgid "Close"
|
||||
msgstr "Κλείσιμο"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Είδος σάρωσης"
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Λεπτομέρειες"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Ετικέτες προς σάρωση:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Κομμάτι"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Καλλιτέχνης"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Άλμπουμ"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Τίτλος"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Είδος"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Έτος"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Στάθμιση λέξης"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Ταίριασμα παρόμοιων λέξεων"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Να περιλαμβάνουν διαφορετικούς τύπους αρχείων"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Χρήση κανονικών εκφράσεων κατά το φιλτράρισμα"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Κατάργηση κενών φακέλων για διαγραφή ή μετακίνηση"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Αγνόηση διπλοτύπων με hardlinking στο ίδιο αρχείο"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Λειτουργία αποσφαλμάτωσης(απαιτείται επανεκκίνηση)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Ταίριασμα εικόνων διαφορετικών διαστάσεων"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
@@ -289,12 +398,6 @@ msgstr ""
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Αποκάλυψη επιλεγμένων"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Λεπτομέρειες"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
@@ -412,86 +515,6 @@ msgstr "Τιμές διαφοράς (Delta)"
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Επιλέξτε ένα αρχείο για να αποθηκεύσετε τα αποτελέσματα σας"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Ετικέτες προς σάρωση:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Κομμάτι"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Καλλιτέχνης"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Άλμπουμ"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Τίτλος"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Είδος"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Έτος"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Στάθμιση λέξης"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Ταίριασμα παρόμοιων λέξεων"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Να περιλαμβάνουν διαφορετικούς τύπους αρχείων"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Χρήση κανονικών εκφράσεων κατά το φιλτράρισμα"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Κατάργηση κενών φακέλων για διαγραφή ή μετακίνηση"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Αγνόηση διπλοτύπων με hardlinking στο ίδιο αρχείο"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Λειτουργία αποσφαλμάτωσης(απαιτείται επανεκκίνηση)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Ταίριασμα εικόνων διαφορετικών διαστάσεων"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Εκκαθάριση μνήμης cache εικόνων"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr ""
|
||||
"Θέλετε πραγματικά να αφαιρέσετε όλη την αποθηκευμένη ανάλυση εικόνων σας;"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Μνήμη cache εικόνων εκκαθαρίστηκε."
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "Αγνόηση αρχείων μικρότερων από"
|
||||
@@ -567,7 +590,7 @@ msgstr "Φάκελοι"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru"
|
||||
msgstr ""
|
||||
msgstr "dupeGuru"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Preferences"
|
||||
@@ -649,11 +672,6 @@ msgstr "Περισσότερα αποτελέσματα"
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Επιλογές"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Επικόλληση"
|
||||
@@ -718,110 +736,221 @@ msgstr "Παράθυρο"
|
||||
msgid "Zoom"
|
||||
msgstr "Ζουμ"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Φίλτρα αποκλεισμού"
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Αποτελέσματα σάρωσης"
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "Φόρτωση καταλόγων..."
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Αποθήκευση καταλόγων..."
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Επιλέξτε ένα αρχείο καταλόγων για φόρτωση"
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "καταλόγους του dupeguru (*.dupegurudirs)"
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "Επιλέξτε ένα αρχείο για να αποθηκεύσετε τους καταλόγους σας"
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "καταλόγους του dupeguru (*.dupegurudirs)"
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Προσθήκη"
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Επαναφέρετε τις προεπιλογές"
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "Σειρά δοκιμής"
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "Πληκτρολογήστε μια τυπική έκφραση python εδώ..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr "Πληκτρολογήστε μια διαδρομή συστήματος ή ένα όνομα αρχείου εδώ..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"Αυτές οι τυπικές εκφράσεις python (πεζών-κεφαλαίων) θα φιλτράρουν τα αρχεία κατά τη διάρκεια των σαρώσεων.<br>Οι διευθυντές θα έχουν επίσης την <strong>προεπιλεγμένη κατάστασή</strong> τους σε Εξαίρεση στην καρτέλα Κατάλογοι εάν το όνομά τους συμβαίνει να ταιριάζει με μία από τις επιλεγμένες κανονικές εκφράσεις.<br>Για κάθε αρχείο που συλλέγεται, εκτελούνται δύο δοκιμές για να προσδιοριστεί εάν θα το αγνοηθεί πλήρως ή όχι:<br><li>1. Οι κανονικές εκφράσεις χωρίς διαχωριστικό διαδρομών σε αυτές θα συγκρίνονται μόνο με το όνομα αρχείου.</li>\n"
|
||||
"<li>2. Οι κανονικές εκφράσεις με τουλάχιστον ένα διαχωριστικό διαδρομών σε αυτές θα συγκριθούν με την πλήρη διαδρομή προς το αρχείο.</li><br>\n"
|
||||
"Παράδειγμα: εάν θέλετε να φιλτράρετε αρχεία .PNG μόνο από τον κατάλογο \"Οι εικόνες μου\":<br><code>.*Οι\\sεικόνες\\sμου\\\\.*\\.png</code><br><br>Μπορείτε να δοκιμάσετε την κανονική έκφραση με το κουμπί \"δοκιμαστική συμβολοσειρά\" αφού επικολλήσετε μια ψεύτικη διαδρομή στο πεδίο δοκιμής:<br><code>C:\\\\χρήστης\\Οι εικόνες μου\\test.png</code><br><br>\n"
|
||||
"Θα επισημανθεί η αντιστοίχιση των τυπικών εκφράσεων.<br>Εάν υπάρχει τουλάχιστον μία επισήμανση, η διαδρομή ή το όνομα αρχείου που δοκιμάστηκε θα αγνοηθεί κατά τη διάρκεια των σαρώσεων.<br><br>Κατάλογοι και αρχεία που ξεκινούν με τελεία \".\" φιλτράρονται από προεπιλογή.<br><br>"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "Σφάλμα συλλογής:"
|
||||
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "Αυξήστε το ζουμ"
|
||||
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "Μείωση ζουμ"
|
||||
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "Κανονικό μέγεθος"
|
||||
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "ταιριάζει καλύτερα"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Λειτουργία προσωρινής μνήμης εικόνας:"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr ""
|
||||
"Παράκαμψη εικονιδίων θέματος στη γραμμή εργαλείων του προγράμματος προβολής"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
"Χρησιμοποιήστε τα δικά μας εσωτερικά εικονίδια αντί αυτών που παρέχονται από"
|
||||
" τη μηχανή θέματος"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "Εμφάνιση γραμμών κύλισης σε προγράμματα προβολής εικόνων"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
"Όταν η εικόνα που εμφανίζεται δεν ταιριάζει στη θύρα προβολής, εμφανίστε τις"
|
||||
" γραμμές κύλισης για να εκτείνετε την προβολή γύρω"
|
||||
|
||||
#~ msgid "Removing dead tracks from your iTunes Library"
|
||||
#~ msgstr "Αφαίρεση νεκρών κομματιών από την βιβλιοθήκη σας iTunes"
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr ""
|
||||
"Χρησιμοποιήστε την προεπιλεγμένη θέση για τη γραμμή καρτελών (απαιτείται "
|
||||
"επανεκκίνηση)"
|
||||
|
||||
#~ msgid "Scanning the iTunes Library"
|
||||
#~ msgstr "Σάρωση της βιβλιοθήκης σας iTunes"
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Τοποθετήστε τη γραμμή καρτελών κάτω από το κύριο μενού και όχι δίπλα σε αυτό\n"
|
||||
"Σε MacOS, η γραμμή καρτελών θα γεμίσει το πλάτος του παραθύρου."
|
||||
|
||||
#~ msgid "Sending dupes to the Trash"
|
||||
#~ msgstr "Αποστολή διπλοτύπων στα Σκουπίδια"
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "Χρησιμοποιήστε έντονη γραμματοσειρά για αναφορές"
|
||||
|
||||
#~ msgid "Talking to iTunes. Don't touch it!"
|
||||
#~ msgstr "Μιλώντας στο iTunes. Μην το αγγίζετε!"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "Χρώμα προσκηνίου αναφοράς:"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||
#~ msgstr ""
|
||||
#~ "Η βιβλιοθήκη σας iTunes περιέχει %d νεκρά κομμάτια έτοιμα να αφαιρεθούν. "
|
||||
#~ "Συνέχεια;"
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "Χρώμα προσκηνίου αναφοράς:"
|
||||
|
||||
#~ msgid "You have no dead tracks in your iTunes Library"
|
||||
#~ msgstr "Η βιβλιοθήκη σας iTunes δεν περιέχει νεκρά κομμάτια"
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "Χρώμα προσκηνίου δέλτα:"
|
||||
|
||||
#~ msgid "The iTunes application couldn't be found."
|
||||
#~ msgstr "Η εφαρμογή iTunes δεν βρέθηκε."
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "Εμφάνιση της γραμμής τίτλου και δυνατότητα σύνδεσης"
|
||||
|
||||
#~ msgid "Talking to iPhoto. Don't touch it!"
|
||||
#~ msgstr "Μιλώντας στο iPhoto. Μην το αγγίζετε!"
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
"Ενώ η γραμμή τίτλου είναι κρυφή, χρησιμοποιήστε το πλήκτρο τροποποίησης για "
|
||||
"να σύρετε το κυμαινόμενο παράθυρο γύρω"
|
||||
|
||||
#~ msgid "Talking to Aperture. Don't touch it!"
|
||||
#~ msgstr "Μιλώντας στο Aperture. Μην το αγγίζετε!"
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
"Η γραμμή τίτλου μπορεί να απενεργοποιηθεί μόνο όταν το παράθυρο είναι "
|
||||
"συνδεδεμένο"
|
||||
|
||||
#~ msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||
#~ msgstr ""
|
||||
#~ "Οι διαγεγραμμένες φωτογραφίες από το Aperture στάλθηκαν σε ένα έργο που "
|
||||
#~ "ονομάζεται \"dupeGuru Trash\"."
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "Κάθετη γραμμή τίτλου"
|
||||
|
||||
#~ msgid "The iPhoto application couldn't be found."
|
||||
#~ msgstr "Η εφαρμογή iPhoto δεν βρέθηκε."
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr ""
|
||||
"Αλλάξτε τη γραμμή τίτλου από οριζόντια στην κορυφή, σε κατακόρυφη στην "
|
||||
"αριστερή πλευρά"
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Προτιμήσεις"
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "Εμφάνιση γραμμής καρτελών"
|
||||
|
||||
#~ msgid "Check for Update"
|
||||
#~ msgstr "Έλεγχος για αναβάθμιση"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"Αυτές οι τυπικές εκφράσεις python (πεζών-κεφαλαίων) θα φιλτράρουν τα αρχεία κατά τη διάρκεια των σαρώσεων.<br>Οι διευθυντές θα έχουν επίσης την <strong>προεπιλεγμένη κατάστασή</strong> τους σε Εξαίρεση στην καρτέλα Κατάλογοι εάν το όνομά τους συμβαίνει να ταιριάζει με μία από τις επιλεγμένες κανονικές εκφράσεις.<br>Για κάθε αρχείο που συλλέγεται, εκτελούνται δύο δοκιμές για να προσδιοριστεί εάν θα το αγνοηθεί πλήρως ή όχι:<br><li>1. Οι κανονικές εκφράσεις χωρίς διαχωριστικό διαδρομών σε αυτές θα συγκρίνονται μόνο με το όνομα αρχείου.</li>\n"
|
||||
"<li>2. Οι κανονικές εκφράσεις με τουλάχιστον ένα διαχωριστικό διαδρομών σε αυτές θα συγκριθούν με την πλήρη διαδρομή προς το αρχείο.</li><br>\n"
|
||||
"Παράδειγμα: εάν θέλετε να φιλτράρετε αρχεία .PNG μόνο από τον κατάλογο \"Οι εικόνες μου\":<br><code>.*Οι\\sεικόνες\\sμου\\\\.*\\.png</code><br><br>Μπορείτε να δοκιμάσετε την κανονική έκφραση με το κουμπί \"δοκιμαστική συμβολοσειρά\" αφού επικολλήσετε μια ψεύτικη διαδρομή στο πεδίο δοκιμής:<br><code>C:\\\\χρήστης\\Οι εικόνες μου\\test.png</code><br><br>\n"
|
||||
"Θα επισημανθεί η αντιστοίχιση των τυπικών εκφράσεων.<br>Εάν υπάρχει τουλάχιστον μία επισήμανση, η διαδρομή ή το όνομα αρχείου που δοκιμάστηκε θα αγνοηθεί κατά τη διάρκεια των σαρώσεων.<br><br>Κατάλογοι και αρχεία που ξεκινούν με τελεία \".\" φιλτράρονται από προεπιλογή.<br><br>"
|
||||
|
||||
#~ msgid "Filename"
|
||||
#~ msgstr "Όνομα αρχείου"
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Αποτελέσματα"
|
||||
|
||||
#~ msgid "Filename - Fields"
|
||||
#~ msgstr "Όνομα αρχείου - Πεδία"
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "Γενική διεπαφή"
|
||||
|
||||
#~ msgid "Filename - Fields (No Order)"
|
||||
#~ msgstr "Όνομα αρχείου - Πεδία (Αταξινόμητα)"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Πίνακας αποτελεσμάτων"
|
||||
|
||||
#~ msgid "Tags"
|
||||
#~ msgstr "Ετικέτες"
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Παράθυρο λεπτομερειών"
|
||||
|
||||
#~ msgid "Contents"
|
||||
#~ msgstr "Περιεχόμενα"
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "Γενικός"
|
||||
|
||||
#~ msgid "Audio Contents"
|
||||
#~ msgstr "Μουσικά περιεχόμενα"
|
||||
|
||||
#~ msgid "EXIF Timestamp"
|
||||
#~ msgstr "Χρονοσήμανση EXIF"
|
||||
|
||||
#~ msgid "Folders"
|
||||
#~ msgstr "Φάκελοι"
|
||||
|
||||
#~ msgid "Προσθήκη βιβλιοθήκης Aperture"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Add iPhoto Library"
|
||||
#~ msgstr "Προσθήκη βιβλιοθήκης iPhoto"
|
||||
|
||||
#~ msgid "Add iTunes Library"
|
||||
#~ msgstr "Προσθήκη βιβλιοθήκης iTunes"
|
||||
|
||||
#~ msgid "Audio Content"
|
||||
#~ msgstr "Μουσικό περιεχόμενο"
|
||||
|
||||
#~ msgid "Content"
|
||||
#~ msgstr "Περιεχόμενο"
|
||||
|
||||
#~ msgid "dupeGuru ME Preferences"
|
||||
#~ msgstr "Προτιμήσεις dupeGuru ME"
|
||||
|
||||
#~ msgid "dupeGuru PE Preferences"
|
||||
#~ msgstr "Προτιμήσεις dupeGuru PE"
|
||||
|
||||
#~ msgid "Remove Dead Tracks in iTunes"
|
||||
#~ msgstr "Αφαίρεση νεκρών κομματιών από το iTunes"
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Απεικόνιση"
|
||||
|
||||
116
locale/en/LC_MESSAGES/columns.po
Normal file
@@ -0,0 +1,116 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "File Path"
|
||||
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Error Message"
|
||||
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Duration"
|
||||
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Samplerate"
|
||||
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Filename"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Folder"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Size (MB)"
|
||||
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Time"
|
||||
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Sample Rate"
|
||||
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Kind"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Modification"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Title"
|
||||
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Artist"
|
||||
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Year"
|
||||
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Track Number"
|
||||
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Comment"
|
||||
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Match %"
|
||||
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Words Used"
|
||||
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Dupe Count"
|
||||
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensions"
|
||||
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Size (KB)"
|
||||
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "EXIF Timestamp"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Size"
|
||||
249
locale/en/LC_MESSAGES/core.po
Normal file
@@ -0,0 +1,249 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "There are no marked duplicates. Nothing has been done."
|
||||
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "There are no selected duplicates. Nothing has been done."
|
||||
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
msgstr ""
|
||||
"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?"
|
||||
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Scanning for duplicates"
|
||||
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Loading"
|
||||
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Moving"
|
||||
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Copying"
|
||||
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Sending to Trash"
|
||||
|
||||
#: core\app.py:308
|
||||
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 ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "No duplicates found."
|
||||
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "All marked files were copied successfully."
|
||||
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "All marked files were moved successfully."
|
||||
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr "All marked files were successfully sent to Trash."
|
||||
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Could not load file: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}' already is in the list."
|
||||
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' does not exist."
|
||||
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
msgstr ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Select a directory to copy marked files to"
|
||||
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "Select a directory to move marked files to"
|
||||
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Select a destination for your exported CSV"
|
||||
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Couldn't write to file: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr "You have no custom command set up. Set it up in your preferences."
|
||||
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "You are about to remove %d files from results. Continue?"
|
||||
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{} duplicate groups were changed by the re-prioritization."
|
||||
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "The selected directories contain no scannable file."
|
||||
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Collecting files to scan"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d discarded)"
|
||||
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "0 matches found"
|
||||
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d matches found"
|
||||
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "You are sending {} file(s) to the Trash."
|
||||
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Regular Expressions"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr "Do you really want to remove all %d items from the ignore list?"
|
||||
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Filename"
|
||||
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Filename - Fields"
|
||||
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Filename - Fields (No Order)"
|
||||
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Contents"
|
||||
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analyzed %d/%d pictures"
|
||||
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "Performed %d/%d chunk matches"
|
||||
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Preparing for matching"
|
||||
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Verified %d/%d matches"
|
||||
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Read EXIF of %d/%d pictures"
|
||||
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "EXIF Timestamp"
|
||||
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "None"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Ends with number"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Doesn't end with number"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Longest"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Shortest"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Highest"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Lowest"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Newest"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Oldest"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicates marked."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr " filter: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Read size of %d/%d files"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Read metadata of %d/%d files"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr "Almost done! Fiddling with results..."
|
||||
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr "Folders"
|
||||
933
locale/en/LC_MESSAGES/ui.po
Normal file
@@ -0,0 +1,933 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Quit"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Options"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "Ignore List"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Clear Picture Cache"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "dupeGuru Help"
|
||||
|
||||
#: qt/app.py:86 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "About dupeGuru"
|
||||
msgstr "About dupeGuru"
|
||||
|
||||
#: qt/app.py:87
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Open Debug Log"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Do you really want to remove all your cached picture analysis?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Picture cache cleared."
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "{} file (*.{})"
|
||||
|
||||
#: qt/deletion_options.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Deletion Options"
|
||||
msgstr "Deletion Options"
|
||||
|
||||
#: qt/deletion_options.py:35 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Link deleted files"
|
||||
msgstr "Link deleted files"
|
||||
|
||||
#: qt/deletion_options.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"After having deleted a duplicate, place a link targeting the reference file "
|
||||
"to replace the deleted file."
|
||||
msgstr ""
|
||||
"After having deleted a duplicate, place a link targeting the reference file "
|
||||
"to replace the deleted file."
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Hardlink"
|
||||
msgstr "Hardlink"
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Symlink"
|
||||
msgstr "Symlink"
|
||||
|
||||
#: qt/deletion_options.py:48
|
||||
msgid " (unsupported)"
|
||||
msgstr " (unsupported)"
|
||||
|
||||
#: qt/deletion_options.py:49 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Directly delete files"
|
||||
msgstr "Directly delete files"
|
||||
|
||||
#: qt/deletion_options.py:51 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"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."
|
||||
|
||||
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Proceed"
|
||||
msgstr "Proceed"
|
||||
|
||||
#: qt/deletion_options.py:60 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Attribute"
|
||||
msgstr "Attribute"
|
||||
|
||||
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Selected"
|
||||
msgstr "Selected"
|
||||
|
||||
#: qt/details_table.py:16 qt/directories_model.py:24
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reference"
|
||||
msgstr "Reference"
|
||||
|
||||
#: qt/directories_dialog.py:64 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Results..."
|
||||
msgstr "Load Results..."
|
||||
|
||||
#: qt/directories_dialog.py:65 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Results Window"
|
||||
msgstr "Results Window"
|
||||
|
||||
#: qt/directories_dialog.py:66
|
||||
msgid "Add Folder..."
|
||||
msgstr "Add Folder..."
|
||||
|
||||
#: qt/directories_dialog.py:74 qt/result_window.py:100
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "File"
|
||||
msgstr "File"
|
||||
|
||||
#: qt/directories_dialog.py:76 qt/result_window.py:108
|
||||
msgid "View"
|
||||
msgstr "View"
|
||||
|
||||
#: qt/directories_dialog.py:78 qt/result_window.py:110
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Help"
|
||||
msgstr "Help"
|
||||
|
||||
#: qt/directories_dialog.py:80 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Load Recent Results"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Application Mode:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Music"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Picture"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Standard"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Scan Type:"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "More Options"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "Select folders to scan and press \"Scan\"."
|
||||
|
||||
#: qt/directories_dialog.py:163 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Results"
|
||||
msgstr "Load Results"
|
||||
|
||||
#: qt/directories_dialog.py:166 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan"
|
||||
msgstr "Scan"
|
||||
|
||||
#: qt/directories_dialog.py:230
|
||||
msgid "Unsaved results"
|
||||
msgstr "Unsaved results"
|
||||
|
||||
#: qt/directories_dialog.py:231 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "You have unsaved results, do you really want to quit?"
|
||||
msgstr "You have unsaved results, do you really want to quit?"
|
||||
|
||||
#: qt/directories_dialog.py:239 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a folder to add to the scanning list"
|
||||
msgstr "Select a folder to add to the scanning list"
|
||||
|
||||
#: qt/directories_dialog.py:266 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a results file to load"
|
||||
msgstr "Select a results file to load"
|
||||
|
||||
#: qt/directories_dialog.py:267
|
||||
msgid "All Files (*.*)"
|
||||
msgstr "All Files (*.*)"
|
||||
|
||||
#: qt/directories_dialog.py:267 qt/result_window.py:311
|
||||
msgid "dupeGuru Results (*.dupeguru)"
|
||||
msgstr "dupeGuru Results (*.dupeguru)"
|
||||
|
||||
#: qt/directories_dialog.py:278
|
||||
msgid "Start a new scan"
|
||||
msgstr "Start a new scan"
|
||||
|
||||
#: qt/directories_dialog.py:279 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "You have unsaved results, do you really want to continue?"
|
||||
msgstr "You have unsaved results, do you really want to continue?"
|
||||
|
||||
#: qt/directories_model.py:23 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: qt/directories_model.py:23 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "State"
|
||||
msgstr "State"
|
||||
|
||||
#: qt/directories_model.py:24 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Excluded"
|
||||
msgstr "Excluded"
|
||||
|
||||
#: qt/directories_model.py:24 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
#: qt/ignore_list_dialog.py:45 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Selected"
|
||||
msgstr "Remove Selected"
|
||||
|
||||
#: qt/ignore_list_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear"
|
||||
msgstr "Clear"
|
||||
|
||||
#: qt/ignore_list_dialog.py:47 qt/problem_dialog.py:61
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Tags to scan:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Track"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artist"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Title"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Year"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Word weighting"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Match similar words"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Can mix file kind"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Use regular expressions when filtering"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Remove empty folders on delete or move"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignore duplicates hardlinking to the same file"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Debug mode (restart required)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Match pictures of different dimensions"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
msgstr "Filter Hardness:"
|
||||
|
||||
#: qt/preferences_dialog.py:69
|
||||
msgid "More Results"
|
||||
msgstr "More Results"
|
||||
|
||||
#: qt/preferences_dialog.py:74
|
||||
msgid "Fewer Results"
|
||||
msgstr "Fewer Results"
|
||||
|
||||
#: qt/preferences_dialog.py:81
|
||||
msgid "Font size:"
|
||||
msgstr "Font size:"
|
||||
|
||||
#: qt/preferences_dialog.py:85
|
||||
msgid "Language:"
|
||||
msgstr "Language:"
|
||||
|
||||
#: qt/preferences_dialog.py:91 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy and Move:"
|
||||
msgstr "Copy and Move:"
|
||||
|
||||
#: qt/preferences_dialog.py:94 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Right in destination"
|
||||
msgstr "Right in destination"
|
||||
|
||||
#: qt/preferences_dialog.py:95 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Recreate relative path"
|
||||
msgstr "Recreate relative path"
|
||||
|
||||
#: qt/preferences_dialog.py:96 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Recreate absolute path"
|
||||
msgstr "Recreate absolute path"
|
||||
|
||||
#: qt/preferences_dialog.py:99
|
||||
msgid "Custom Command (arguments: %d for dupe, %r for ref):"
|
||||
msgstr "Custom Command (arguments: %d for dupe, %r for ref):"
|
||||
|
||||
#: qt/preferences_dialog.py:174
|
||||
msgid "dupeGuru has to restart for language changes to take effect."
|
||||
msgstr "dupeGuru has to restart for language changes to take effect."
|
||||
|
||||
#: qt/prioritize_dialog.py:75 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Re-Prioritize duplicates"
|
||||
msgstr "Re-Prioritize duplicates"
|
||||
|
||||
#: qt/prioritize_dialog.py:79 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"Add criteria to the right box and click OK to send the dupes that correspond"
|
||||
" the best to these criteria to their respective group's reference position. "
|
||||
"Read the help file for more information."
|
||||
msgstr ""
|
||||
"Add criteria to the right box and click OK to send the dupes that correspond"
|
||||
" the best to these criteria to their respective group's reference position. "
|
||||
"Read the help file for more information."
|
||||
|
||||
#: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Problems!"
|
||||
msgstr "Problems!"
|
||||
|
||||
#: qt/problem_dialog.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"There were problems processing some (or all) of the files. The cause of "
|
||||
"these problems are described in the table below. Those files were not "
|
||||
"removed from your results."
|
||||
msgstr ""
|
||||
"There were problems processing some (or all) of the files. The cause of "
|
||||
"these problems are described in the table below. Those files were not "
|
||||
"removed from your results."
|
||||
|
||||
#: qt/problem_dialog.py:56
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Reveal Selected"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
msgstr "Actions"
|
||||
|
||||
#: qt/result_window.py:58 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show Dupes Only"
|
||||
msgstr "Show Dupes Only"
|
||||
|
||||
#: qt/result_window.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show Delta Values"
|
||||
msgstr "Show Delta Values"
|
||||
|
||||
#: qt/result_window.py:60
|
||||
msgid "Send Marked to Recycle Bin..."
|
||||
msgstr "Send Marked to Recycle Bin..."
|
||||
|
||||
#: qt/result_window.py:61 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Move Marked to..."
|
||||
msgstr "Move Marked to..."
|
||||
|
||||
#: qt/result_window.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy Marked to..."
|
||||
msgstr "Copy Marked to..."
|
||||
|
||||
#: qt/result_window.py:63 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Marked from Results"
|
||||
msgstr "Remove Marked from Results"
|
||||
|
||||
#: qt/result_window.py:64 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Re-Prioritize Results..."
|
||||
msgstr "Re-Prioritize Results..."
|
||||
|
||||
#: qt/result_window.py:67 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Selected from Results"
|
||||
msgstr "Remove Selected from Results"
|
||||
|
||||
#: qt/result_window.py:71 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Add Selected to Ignore List"
|
||||
msgstr "Add Selected to Ignore List"
|
||||
|
||||
#: qt/result_window.py:75 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Make Selected into Reference"
|
||||
msgstr "Make Selected into Reference"
|
||||
|
||||
#: qt/result_window.py:77 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Open Selected with Default Application"
|
||||
msgstr "Open Selected with Default Application"
|
||||
|
||||
#: qt/result_window.py:80
|
||||
msgid "Open Containing Folder of Selected"
|
||||
msgstr "Open Containing Folder of Selected"
|
||||
|
||||
#: qt/result_window.py:82 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Rename Selected"
|
||||
msgstr "Rename Selected"
|
||||
|
||||
#: qt/result_window.py:83 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark All"
|
||||
msgstr "Mark All"
|
||||
|
||||
#: qt/result_window.py:84 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark None"
|
||||
msgstr "Mark None"
|
||||
|
||||
#: qt/result_window.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Invert Marking"
|
||||
msgstr "Invert Marking"
|
||||
|
||||
#: qt/result_window.py:86 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark Selected"
|
||||
msgstr "Mark Selected"
|
||||
|
||||
#: qt/result_window.py:87
|
||||
msgid "Export To HTML"
|
||||
msgstr "Export To HTML"
|
||||
|
||||
#: qt/result_window.py:88
|
||||
msgid "Export To CSV"
|
||||
msgstr "Export To CSV"
|
||||
|
||||
#: qt/result_window.py:89 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Save Results..."
|
||||
msgstr "Save Results..."
|
||||
|
||||
#: qt/result_window.py:90 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Invoke Custom Command"
|
||||
msgstr "Invoke Custom Command"
|
||||
|
||||
#: qt/result_window.py:102
|
||||
msgid "Mark"
|
||||
msgstr "Mark"
|
||||
|
||||
#: qt/result_window.py:106 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Columns"
|
||||
msgstr "Columns"
|
||||
|
||||
#: qt/result_window.py:163
|
||||
msgid "Reset to Defaults"
|
||||
msgstr "Reset to Defaults"
|
||||
|
||||
#: qt/result_window.py:185
|
||||
msgid "{} Results"
|
||||
msgstr "{} Results"
|
||||
|
||||
#: qt/result_window.py:193 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Dupes Only"
|
||||
msgstr "Dupes Only"
|
||||
|
||||
#: qt/result_window.py:194
|
||||
msgid "Delta Values"
|
||||
msgstr "Delta Values"
|
||||
|
||||
#: qt/result_window.py:310 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Select a file to save your results to"
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "Ignore files smaller than"
|
||||
|
||||
#: qt/se/preferences_dialog.py:52 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "KB"
|
||||
msgstr "KB"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "%@ Results"
|
||||
msgstr "%@ Results"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Add New Folder..."
|
||||
msgstr "Add New Folder..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Advanced"
|
||||
msgstr "Advanced"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Automatically check for updates"
|
||||
msgstr "Automatically check for updates"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Basic"
|
||||
msgstr "Basic"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Bring All to Front"
|
||||
msgstr "Bring All to Front"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Check for update..."
|
||||
msgstr "Check for update..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Close Window"
|
||||
msgstr "Close Window"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy"
|
||||
msgstr "Copy"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Custom command (arguments: %d for dupe, %r for ref):"
|
||||
msgstr "Custom command (arguments: %d for dupe, %r for ref):"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Cut"
|
||||
msgstr "Cut"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Delta"
|
||||
msgstr "Delta"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details of Selected File"
|
||||
msgstr "Details of Selected File"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details Panel"
|
||||
msgstr "Details Panel"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Directories"
|
||||
msgstr "Directories"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru"
|
||||
msgstr "dupeGuru"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Preferences"
|
||||
msgstr "dupeGuru Preferences"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Results"
|
||||
msgstr "dupeGuru Results"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Website"
|
||||
msgstr "dupeGuru Website"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Edit"
|
||||
msgstr "Edit"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Export Results to CSV"
|
||||
msgstr "Export Results to CSV"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Export Results to XHTML"
|
||||
msgstr "Export Results to XHTML"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Fewer results"
|
||||
msgstr "Fewer results"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter"
|
||||
msgstr "Filter"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter hardness:"
|
||||
msgstr "Filter hardness:"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter Results..."
|
||||
msgstr "Filter Results..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Folder Selection Window"
|
||||
msgstr "Folder Selection Window"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Font Size:"
|
||||
msgstr "Font Size:"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Hide dupeGuru"
|
||||
msgstr "Hide dupeGuru"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Hide Others"
|
||||
msgstr "Hide Others"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore files smaller than:"
|
||||
msgstr "Ignore files smaller than:"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load from file..."
|
||||
msgstr "Load from file..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Minimize"
|
||||
msgstr "Minimize"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mode"
|
||||
msgstr "Mode"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "More results"
|
||||
msgstr "More results"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Paste"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Preferences..."
|
||||
msgstr "Preferences..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Quick Look"
|
||||
msgstr "Quick Look"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Quit dupeGuru"
|
||||
msgstr "Quit dupeGuru"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reset to Default"
|
||||
msgstr "Reset to Default"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reset To Defaults"
|
||||
msgstr "Reset To Defaults"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal"
|
||||
msgstr "Reveal"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal Selected in Finder"
|
||||
msgstr "Reveal Selected in Finder"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select All"
|
||||
msgstr "Select All"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Send Marked to Trash..."
|
||||
msgstr "Send Marked to Trash..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Services"
|
||||
msgstr "Services"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show All"
|
||||
msgstr "Show All"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Start Duplicate Scan"
|
||||
msgstr "Start Duplicate Scan"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "The name '%@' already exists."
|
||||
msgstr "The name '%@' already exists."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Window"
|
||||
msgstr "Window"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Exclusion Filters"
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Scan Results"
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "Load Directories..."
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Save Directories..."
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Select a directories file to load"
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "dupeGuru Results (*.dupegurudirs)"
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "Select a file to save your directories to"
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "dupeGuru Directories (*.dupegurudirs)"
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Add"
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Restore defaults"
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "Test string"
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "Type a python regular expression here..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr "Type a file system path or filename here..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "Compilation error: "
|
||||
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "Increase zoom"
|
||||
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "Decrease zoom"
|
||||
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "Normal size"
|
||||
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "Best fit"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Picture cache mode:"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr "Override theme icons in viewer toolbar"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "Show scrollbars in image viewers"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr "Use default position for tab bar (requires restart)"
|
||||
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"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."
|
||||
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "Use bold font for references"
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "Reference foreground color:"
|
||||
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "Reference background color:"
|
||||
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "Delta foreground color:"
|
||||
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "Show the title bar and can be docked"
|
||||
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr "The title bar can only be disabled while the window is docked"
|
||||
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "Vertical title bar"
|
||||
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "Show tab bar"
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Results"
|
||||
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "General Interface"
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Result Table"
|
||||
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Details Window"
|
||||
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Display"
|
||||
@@ -1,123 +1,122 @@
|
||||
# Translators:
|
||||
# Josep <tu154m@gmail.com>, 2015
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2015-04-16 22:52+0000\n"
|
||||
"Last-Translator: Josep <tu154m@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/p/dupeguru/language/es/)\n"
|
||||
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2021\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/voltaicideas/teams/116153/es/)\n"
|
||||
"Language: es\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Ruta de Fichero"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Mensaje de error"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Clase"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Carpeta"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Nombre de fichero"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Modificación"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Duración"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Tasa de bits"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Tasa de Muestreo"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Nombre de fichero"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Carpeta"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Tamaño (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Hora"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Tasa de Muestreo"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Clase"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Modificación"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Título"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Álbum"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Género"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Año"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Pista Número"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Comentario"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Coincidencia %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Palabras Empleadas"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Duplicado Número"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensiones"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Tamaño (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "Marca horaria EXIF"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
# Translators:
|
||||
# Josep <tu154m@gmail.com>, 2015
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2015-04-19 20:05+0000\n"
|
||||
"Last-Translator: Josep <tu154m@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/p/dupeguru/language/es/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/voltaicideas/teams/116153/es/)\n"
|
||||
"Language: es\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "No hay duplicados marcados. No se ha hecho nada."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "No hay duplicados seleccionados. No se ha hecho nada."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
@@ -27,27 +27,27 @@ msgstr ""
|
||||
"Está a punto de abrir muchas imágenes. Dependiendo de los ficheros que se "
|
||||
"abran, abrirlos puede colgar la máquina. ¿Continuar?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Buscando duplicados"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Cargando"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Moviendo"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Copiando"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Enviando a la Papelera"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -55,32 +55,36 @@ msgstr ""
|
||||
"Una acción previa sigue ejecutándose. No puede abrir una nueva todavía. "
|
||||
"Espere unos segundos y vuelva a intentarlo."
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "No se han encontrado duplicados."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr ""
|
||||
"Todos los ficheros seleccionados han sido copiados satisfactoriamente."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "Todos los ficheros seleccionados se han movidos satisfactoriamente."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr "Todo los ficheros marcados se han enviado a la papelera exitosamente."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "No se pudo cargar el archivo: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}' ya está en la lista."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' no existe."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
@@ -88,186 +92,167 @@ msgstr ""
|
||||
"Todas las %d coincidencias seleccionadas van a ser ignoradas en las "
|
||||
"subsiguientes exploraciones. ¿Continuar?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "copiar"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Seleccione un directorio donde desee copiar los archivos marcados"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "mover"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "Seleccione un directorio al que desee mover los archivos marcados"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr "Seleccionar un directorio al que {} enviar los ficheros seleccionados"
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Seleccionar un destino para el CSV seleccionado"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "No se pudo escribir en el archivo: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr "No hay comandos configurados. Establézcalos en sus preferencias."
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "Está a punto de eliminar %d ficheros de resultados. ¿Continuar?"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{} grupos de duplicados han sido cambiados por la re-priorización"
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Recopilando ficheros a explorar"
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "Las carpetas seleccionadas no contienen ficheros para explorar."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Recopilando ficheros a explorar"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d descartados)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "0 coincidencias"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d coincidencias encontradas"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Tamaño de lectura de %d/%d ficheros"
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "Enviando {} fichero(s) a la Papelera"
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Expresiones regulares"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr ""
|
||||
"¿Desea realmente eliminar todos los %d elementos de la lista de exclusión?"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Nombre de archivo"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Termina con un número"
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Nombre de archivo - Campos"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "No termina con un número"
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Nombre de archivo - Campos (sin orden)"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr "El más largo"
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetas"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr "El más corto"
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Contenido"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "El más alto"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "El más bajo"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "El más nuevo"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "El más antiguo"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicados marcados."
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr "filtro: %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Leyendo metadatos de %d/%d ficheros"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analizadas %d/%d imágenes"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "Realizado %d/%d trozos coincidentes"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Preparando para coincidencias"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Verificadas %d/%d coincidencias"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Leído EXIF de %d/%d imágenes"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Marca horaria EXIF"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Termina con un número"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "No termina con un número"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "El más largo"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "El más corto"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "El más alto"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "El más bajo"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "El más nuevo"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "El más antiguo"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicados marcados."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr "filtro: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Tamaño de lectura de %d/%d ficheros"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Leyendo metadatos de %d/%d ficheros"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "¡Casi termino! Jugando con los resultados..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "Enviando ficheros a la papelera de reciclaje"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "Coincidencias %d/%d agrupadas"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Descartando falsas coincidencias"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr "Procesadas %d/%d coincidencias de la lista de exclusión"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Ejecutando priorización de grupo"
|
||||
msgstr "Carpetas"
|
||||
|
||||
@@ -1,25 +1,34 @@
|
||||
# Translators:
|
||||
# Josep <tu154m@gmail.com>, 2015
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2015-04-19 20:20+0000\n"
|
||||
"Last-Translator: Josep <tu154m@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/p/dupeguru/language/es/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/voltaicideas/teams/116153/es/)\n"
|
||||
"Language: es\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Salir"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Opciones"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "Lista de exclusión"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Limpiar el Cache de Fotos"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "Ayuda de dupeGuru"
|
||||
@@ -32,6 +41,14 @@ msgstr "Acerca de dupeGuru"
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Abrir Registro de Depuración"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "¿Desea realmente eliminar todo el caché de análisis de imágenes?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Caché de fotos limpio."
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "{} fichero (*.{})"
|
||||
@@ -128,6 +145,30 @@ msgstr "Ayuda"
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Cargar Resultados Recientes"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Modo de aplicación:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Música"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Imagen"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Estándar"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Tipo de Exploración:"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Mas Opciones"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "Seleccionar carpetas a explorar y pulsar \"Explorar\"."
|
||||
@@ -201,9 +242,78 @@ msgstr "Limpiar"
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Tipo de Exploración:"
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Detalles"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Etiquetas a explorar:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Pista"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Álbum"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Título"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Género"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Año"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Ponderación de Palabra"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Coincidencia con palabras similares"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Puede mezclar tipos de fichero"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Use expresiones regulares cuando filtre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Eliminar carpetas vacías al borrar o mover"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignorar duplicados enlazando al mismo fichero"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Mode de depuración (se requiere reinicio)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Coincidencia de imágenes de distintas dimensiones"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
@@ -283,12 +393,6 @@ msgstr ""
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Revelar seleccionados"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Detalles"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
@@ -406,85 +510,6 @@ msgstr "Valores Delta"
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Seleccionar un fichero al que guardar los resultados"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Etiquetas a explorar:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Pista"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Álbum"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Título"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Género"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Año"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Ponderación de Palabra"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Coincidencia con palabras similares"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Puede mezclar tipos de fichero"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Use expresiones regulares cuando filtre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Eliminar carpetas vacías al borrar o mover"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignorar duplicados enlazando al mismo fichero"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Mode de depuración (se requiere reinicio)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Coincidencia de imágenes de distintas dimensiones"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Limpiar el Cache de Fotos"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "¿Desea realmente eliminar todo el caché de análisis de imágenes?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Caché de fotos limpio."
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "Ignorar ficheros más pequeños de"
|
||||
@@ -641,11 +666,6 @@ msgstr "Más resultados"
|
||||
msgid "Ok"
|
||||
msgstr "De acuerdo"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Opciones"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Pegar"
|
||||
@@ -710,114 +730,220 @@ msgstr "Ventana"
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Filtros de exclusión"
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Resultados del Escáner"
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "Cargar Carpetas..."
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Guardar Carpetas..."
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Seleccione un archivo de carpetas para cargar"
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "Resultados dupeGuru (*.dupeguru)"
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "Seleccionar un fichero al que guardar las carpetas"
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "Carpetas dupeGuru (*.dupegurudirs)"
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Agregar"
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Reiniciar a Valores por Defecto"
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "Cadena de prueba"
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "Escriba una expresión regular de Python aquí..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr ""
|
||||
"Escriba una ruta del sistema de archivos o un nombre de archivo aquí..."
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"Estas expresiones regulares de Python (sensibles a mayúsculas y minúsculas) filtrarán los archivos durante los escaneos.<br> Carpetas también tendrá su <strong>establecido en Excluido</strong> en la pestaña Carpetas si su nombre coincide con una de las expresiones regulares seleccionadas.<br>Para cada archivo recopilado, se realizan dos pruebas para determinar si se debe ignorar por completo o no.<br><li>1. Las expresiones regulares sin separador de ruta se compararán solo con el nombre del archivo.</li>\n"
|
||||
"<li>2. Las expresiones regulares con al menos un separador de ruta en ellas se compararán con la ruta completa al archivo.</li><br>\n"
|
||||
"Ejemplo: si desea filtrar archivos .PNG solo del directorio \"Mis imágenes\":<br><code>.*Mis\\sImágenes\\\\.*\\.png</code><br><br>Puede probar la expresión regular con el botón \"cadena de prueba\" después de pegar una ruta falsa en el campo de prueba:<br><code>C:\\\\Usario\\Mis Imágenes\\test.png</code><br><br>\n"
|
||||
"Se resaltarán las expresiones regulares coincidentes.<br>Si hay al menos un resaltado, la ruta o el nombre de archivo probado se ignorará durante los escaneos.<br><br>Directorios y archivos que comienzan con un punto '.' se ignoran de forma predeterminada.<br><br>"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "Error de compilación:"
|
||||
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "Aumentar el zoom"
|
||||
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "Disminuir zoom"
|
||||
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "Tamaño normal"
|
||||
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "Mejor ajuste"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Modo de caché de imágenes:"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr "Anula los iconos de temas en la barra de herramientas del visor"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
"Utilice nuestros propios iconos internos en lugar de los proporcionados por "
|
||||
"el motor de temas"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "Mostrar barras de desplazamiento en visores de imágenes"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
"Cuando la imagen mostrada no se ajusta a la ventana gráfica, muestre barras "
|
||||
"de desplazamiento para abarcar la vista"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr ""
|
||||
"Use la posición predeterminada para la barra de pestañas (requiere "
|
||||
"reiniciar)."
|
||||
|
||||
#~ msgid "Removing dead tracks from your iTunes Library"
|
||||
#~ msgstr "Eliminando pistas muertas de la librería iTunes"
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Coloque la barra de pestañas debajo del menú principal en lugar de al lado.\n"
|
||||
"En MacOS, la barra de pestañas llenará el ancho de la ventana."
|
||||
|
||||
#~ msgid "Scanning the iTunes Library"
|
||||
#~ msgstr "Explorando la librería iTunes"
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "Utilice fuente en negrita para las referencias."
|
||||
|
||||
#~ msgid "Sending dupes to the Trash"
|
||||
#~ msgstr "Enviando duplicados a la Papelera"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "Color del texto de referencia:"
|
||||
|
||||
#~ msgid "Talking to iTunes. Don't touch it!"
|
||||
#~ msgstr "Conectando con iTunes. ¡No tocar!"
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "Color de fondo de referencia:"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||
#~ msgstr ""
|
||||
#~ "Su librería iTunes contiene %d pistas muertas listas para ser eliminadas. "
|
||||
#~ "¿Continuar?"
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "Color del texto de delta:"
|
||||
|
||||
#~ msgid "You have no dead tracks in your iTunes Library"
|
||||
#~ msgstr "No hay pistas muertas en la librería iTunes"
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "Muestra la barra de título y se puede acoplar."
|
||||
|
||||
#~ msgid "The iTunes application couldn't be found."
|
||||
#~ msgstr "El programa iTunes no se encuentra"
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
"Si la barra de título está ocultada, use la tecla modificadora para "
|
||||
"arrastrar la ventana flotante."
|
||||
|
||||
#~ msgid "Talking to iPhoto. Don't touch it!"
|
||||
#~ msgstr "Conectando con iPhoto. ¡No tocar!"
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
"La barra de título solo se puede desactivar si la ventana está acoplada."
|
||||
|
||||
#~ msgid "Talking to Aperture. Don't touch it!"
|
||||
#~ msgstr "Conectando con Aperture. ¡No tocar!"
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "Barra de título vertical"
|
||||
|
||||
#~ msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||
#~ msgstr ""
|
||||
#~ "Las fotos borradas de Aperture han sido envíadas a un proyecto llamado "
|
||||
#~ "\"Papelera dupeGuru\""
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr ""
|
||||
"Cambie la barra de título de horizontal en la parte superior a vertical en "
|
||||
"el lado izquierdo."
|
||||
|
||||
#~ msgid "The iPhoto application couldn't be found."
|
||||
#~ msgstr "No se puede encontrar el programa iPhoto."
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "Mostrar barra de pestañas"
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Preferencias"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"Estas expresiones regulares de Python (sensibles a mayúsculas y minúsculas) filtrarán los archivos durante los escaneos.<br> Carpetas también tendrá su <strong>establecido en Excluido</strong> en la pestaña Carpetas si su nombre coincide con una de las expresiones regulares seleccionadas.<br>Para cada archivo recopilado, se realizan dos pruebas para determinar si se debe ignorar por completo o no.<br><li>1. Las expresiones regulares sin separador de ruta se compararán solo con el nombre del archivo.</li>\n"
|
||||
"<li>2. Las expresiones regulares con al menos un separador de ruta en ellas se compararán con la ruta completa al archivo.</li><br>\n"
|
||||
"Ejemplo: si desea filtrar archivos .PNG solo del directorio \"Mis imágenes\":<br><code>.*Mis\\sImágenes\\\\.*\\.png</code><br><br>Puede probar la expresión regular con el botón \"cadena de prueba\" después de pegar una ruta falsa en el campo de prueba:<br><code>C:\\\\Usario\\Mis Imágenes\\test.png</code><br><br>\n"
|
||||
"Se resaltarán las expresiones regulares coincidentes.<br>Si hay al menos un resaltado, la ruta o el nombre de archivo probado se ignorará durante los escaneos.<br><br>Directorios y archivos que comienzan con un punto '.' se ignoran de forma predeterminada.<br><br>"
|
||||
|
||||
#~ msgid "Check for Update"
|
||||
#~ msgstr "Comprobar Actualizaciones"
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Resultados"
|
||||
|
||||
#~ msgid "Filename"
|
||||
#~ msgstr "Nombre de fichero"
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "Interfaz general"
|
||||
|
||||
#~ msgid "Filename - Fields"
|
||||
#~ msgstr "Nombre de fichero - Campos"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Tabla de resultados"
|
||||
|
||||
#~ msgid "Filename - Fields (No Order)"
|
||||
#~ msgstr "Nombre de fichero - Campos (sin orden)"
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Ventana de detalles"
|
||||
|
||||
#~ msgid "Tags"
|
||||
#~ msgstr "Etiquetas"
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#~ msgid "Contents"
|
||||
#~ msgstr "Contenidos"
|
||||
|
||||
#~ msgid "Audio Contents"
|
||||
#~ msgstr "Contenidos de Audio"
|
||||
|
||||
#~ msgid "EXIF Timestamp"
|
||||
#~ msgstr "Marca horaria EXIF"
|
||||
|
||||
#~ msgid "Folders"
|
||||
#~ msgstr "Carpetas"
|
||||
|
||||
#~ msgid "Add Aperture Library"
|
||||
#~ msgstr "Añadir librería de Aperture"
|
||||
|
||||
#~ msgid "Add iPhoto Library"
|
||||
#~ msgstr "Añadir librería de iPhoto"
|
||||
|
||||
#~ msgid "Add iTunes Library"
|
||||
#~ msgstr "Añadir librería de iTunes"
|
||||
|
||||
#~ msgid "Audio Content"
|
||||
#~ msgstr "Contenido de Audio"
|
||||
|
||||
#~ msgid "Content"
|
||||
#~ msgstr "Contenido"
|
||||
|
||||
#~ msgid "dupeGuru ME Preferences"
|
||||
#~ msgstr "Preferencias de dupeGuru ME"
|
||||
|
||||
#~ msgid "dupeGuru PE Preferences"
|
||||
#~ msgstr "Preferencias de dupeGuru PE"
|
||||
|
||||
#~ msgid "Remove Dead Tracks in iTunes"
|
||||
#~ msgstr "Quitar Pistar Muertes en iTunes"
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Visualización"
|
||||
|
||||
@@ -1,124 +1,123 @@
|
||||
# Translators:
|
||||
# hsoft <hsoft@hardcoded.net>, 2012
|
||||
# hsoft <hsoft@hardcoded.net>, 2012
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-11-20 11:53+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/dupeguru/language/fr/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: French (https://www.transifex.com/voltaicideas/teams/116153/fr/)\n"
|
||||
"Language: fr\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Chemin du fichier"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Message d'erreur"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Type"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Dossier"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Nom de fichier"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Taille"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Modification"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Durée"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Échantillonnage"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Nom de fichier"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Dossier"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Taille (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Temps"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Sample Rate"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Type"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Modification"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Titre"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Artiste"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Année"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Track"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Commentaire"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Match %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Mots"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "# Doublons"
|
||||
msgstr "Nombre de Doublons"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensions"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Taille (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "Date EXIF"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Taille"
|
||||
|
||||
@@ -1,26 +1,25 @@
|
||||
# Translators:
|
||||
# hsoft <hsoft@hardcoded.net>, 2013
|
||||
# hsoft <hsoft@hardcoded.net>, 2013
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-12-07 15:22+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/dupeguru/language/fr/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: French (https://www.transifex.com/voltaicideas/teams/116153/fr/)\n"
|
||||
"Language: fr\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "Aucun doublon marqué. Rien à faire."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "Aucun doublon sélectionné. Rien à faire."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
@@ -28,27 +27,27 @@ msgstr ""
|
||||
"Beaucoup de fichiers seront ouverts en même temps. Cela peut gravement "
|
||||
"encombrer votre système. Continuer?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Scan de doublons en cours"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Chargement en cours"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Déplacement en cours"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Copie en cours"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Envoi de fichiers à la corbeille"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -56,219 +55,204 @@ msgstr ""
|
||||
"Une action précédente est encore en cours. Attendez quelques secondes avant "
|
||||
"d'en repartir une nouvelle."
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Aucun doublon trouvé."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "Tous les fichiers marqués ont été copiés correctement."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "Tous les fichiers marqués ont été déplacés correctement."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr ""
|
||||
"Tous les fichiers marqués ont été correctement envoyés à la corbeille."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Impossible d'ouvrir le fichier: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}' est déjà dans la liste."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' n'existe pas."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
msgstr "%d fichiers seront ignorés des prochains scans. Continuer?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "copier"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Sélectionnez un dossier vers lequel copier les fichiers marqués."
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "déplacer"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "Sélectionnez un dossier vers lequel déplacer les fichiers marqués."
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr "Sélectionnez un dossier vers lequel {} les fichiers marqués."
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Choisissez une destination pour votre exportation CSV"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Impossible d'écrire le fichier: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
"Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences."
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "%d fichiers seront retirés des résultats. Continuer?"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{} groupes de doublons ont été modifiés par la re-prioritisation."
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Collecte des fichiers à scanner"
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Collecte des fichiers à scanner"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d hors-groupe)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "0 paires trouvées"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d paires trouvées"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Lu la taille de %d/%d fichiers"
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "Vous envoyez {} fichier(s) à la corbeille."
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Expressions régulières"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr ""
|
||||
"Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle "
|
||||
"contient?"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr "Aucune"
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Nom de fichier"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Chiffres à la fin"
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Nom de fichier - Champs"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Pas de chiffres à la finr"
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Nom de fichier - Champs (sans ordre)"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr "Le plus long"
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr "Le plus court"
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Contenu"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "Plus grand"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "Moins grand"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "Plus récent"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "Moins récent"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) doublons marqués."
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr " filtre: %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Lu les métadonnées de %d/%d fichiers"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analyzé %d/%d images"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "%d/%d blocs d'images comparés"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Préparation pour la comparaison"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Vérifié %d/%d paires"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Lu l'EXIF de %d/%d images"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Date EXIF"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Aucune"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Chiffres à la fin"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Pas de chiffres à la finr"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Le plus long"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Le plus court"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Plus grand"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Moins grand"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Plus récent"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Moins récent"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) doublons marqués."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr " filtre: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Lu la taille de %d/%d fichiers"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Lu les métadonnées de %d/%d fichiers"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "Bientôt terminé! Bidouille des résultats..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "Envoi de fichiers à la corbeille"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "%d/%d paires groupées"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Retrait des paires invalides"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr "Vérification de %d/%d paires dans la ignore list"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Prioritization des groupes"
|
||||
msgstr "Dossiers"
|
||||
|
||||
@@ -1,27 +1,34 @@
|
||||
# Translators:
|
||||
# hsoft <hsoft@hardcoded.net>, 2012
|
||||
# hsoft <hsoft@hardcoded.net>, 2012-2013
|
||||
# hsoft <hsoft@hardcoded.net>, 2013
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-12-07 15:22+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/dupeguru/language/fr/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: French (https://www.transifex.com/voltaicideas/teams/116153/fr/)\n"
|
||||
"Language: fr\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Quitter"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Options"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "Liste de doublons ignorés"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Vider la cache d'images"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "Aide dupeGuru"
|
||||
@@ -34,6 +41,14 @@ msgstr "À propos de dupeGuru"
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Ouvrir logs de déboguage"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Voulez-vous vraiment vider la cache de vos analyses précédentes?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "La cache des analyses précédentes a été vidée."
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "Fichier {} (*.{})"
|
||||
@@ -64,7 +79,7 @@ msgstr "Symlink"
|
||||
|
||||
#: qt/deletion_options.py:48
|
||||
msgid " (unsupported)"
|
||||
msgstr ""
|
||||
msgstr "(non pris en charge)"
|
||||
|
||||
#: qt/deletion_options.py:49 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Directly delete files"
|
||||
@@ -129,6 +144,30 @@ msgstr "Aide"
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Charger résultats récents"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Mode de l'application:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Musique"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Image"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Standard"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Type de scan:"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Plus d'options"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "Sélectionnez les dossiers à scanner puis faites \"Scan\"."
|
||||
@@ -203,9 +242,78 @@ msgstr "Vider"
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Type de scan:"
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Détails"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Tags à scanner:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Track"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artiste"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Titre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Année"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Proportionalité des mots"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Comparer les mots similaires"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Comparer les fichiers de différents types"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Utiliser les expressions régulières pour les filtres"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Effacer les dossiers vides après un déplacement"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignorer doublons avec hardlink vers le même fichier"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Mode de déboguage (redémarrage requis)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Comparer les images de tailles différentes"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
@@ -213,11 +321,11 @@ msgstr "Seuil du filtre:"
|
||||
|
||||
#: qt/preferences_dialog.py:69
|
||||
msgid "More Results"
|
||||
msgstr "+ de doublons"
|
||||
msgstr "Plus de doublons"
|
||||
|
||||
#: qt/preferences_dialog.py:74
|
||||
msgid "Fewer Results"
|
||||
msgstr "- de doublons"
|
||||
msgstr "Moins de doublons"
|
||||
|
||||
#: qt/preferences_dialog.py:81
|
||||
msgid "Font size:"
|
||||
@@ -283,12 +391,6 @@ msgstr ""
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Révéler Fichier"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Détails"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
@@ -392,7 +494,7 @@ msgstr "Réinitialiser"
|
||||
|
||||
#: qt/result_window.py:185
|
||||
msgid "{} Results"
|
||||
msgstr "{} (Résultats)"
|
||||
msgstr "{} résultats"
|
||||
|
||||
#: qt/result_window.py:193 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Dupes Only"
|
||||
@@ -404,86 +506,7 @@ msgstr "Delta"
|
||||
|
||||
#: qt/result_window.py:310 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Sélectionnez un fichier résultats dans lequel sauvegarder"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Tags à scanner:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Track"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artiste"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Titre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Année"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Proportionalité des mots"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Comparer les mots similaires"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Comparer les fichiers de différents types"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Utiliser les expressions régulières pour les filtres"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Effacer les dossiers vides après un déplacement"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignorer doublons avec hardlink vers le même fichier"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Mode de déboguage (redémarrage requis)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Comparer les images de tailles différentes"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Vider la cache d'images"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Voulez-vous vraiment vider la cache de vos analyses précédentes?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "La cache des analyses précédentes a été vidée."
|
||||
msgstr "Sélectionnez un fichier dans lequel sauvegarder les résultats"
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
@@ -567,7 +590,7 @@ msgstr "Préférences de dupeGuru"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Results"
|
||||
msgstr "dupeGuru (Résultats)"
|
||||
msgstr "Résultats dupeGuru"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Website"
|
||||
@@ -587,7 +610,7 @@ msgstr "Exporter les résultats vers HTML"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Fewer results"
|
||||
msgstr "- de doubles"
|
||||
msgstr "moins de doublons"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter"
|
||||
@@ -635,17 +658,12 @@ msgstr "Mode"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "More results"
|
||||
msgstr "+ de doubles"
|
||||
msgstr "plus de doublons"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Options"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Coller"
|
||||
@@ -680,7 +698,7 @@ msgstr "Révéler sélectionné dans Finder"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select All"
|
||||
msgstr ""
|
||||
msgstr "Tout sélectionner"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Send Marked to Trash..."
|
||||
@@ -710,114 +728,217 @@ msgstr "Fenêtre"
|
||||
msgid "Zoom"
|
||||
msgstr "Réduire/agrandir"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Filtres d'exclusion"
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Résultats de scan"
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "Charger dossiers..."
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Sauvegarder dossiers..."
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Sélectionnez un fichier de dossier à charger"
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "Dossiers dupeGuru (*.dupegurudirs)"
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "Sélectionnez un fichier pour y sauvegarder vos dossiers"
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "Dossiers dupeGuru (*.dupegurudirs)"
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Réinitialiser"
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "Tester chaîne"
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "Tapez une expression régulière python ici..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr "Tapez un chemin ou un nom de fichier ici..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"Ces expressions régulières python (sensible aux majuscules) peuvent ignorer les fichiers pendant les scans. Les dossiers auront également leur <strong>état par défaut</strong> mis sur Exclus dans l'onglet Dossiers si leur nom correspond à une des expressions régulières sélectionnées<br>Pour chaque fichier collecté, deux tests sont faits pour déterminer s'il doit être totalement ignoré:<br><li>1. Les expressions régulières sans séparateur de chemin sont comparées au nom de fichier seul.</li>\n"
|
||||
"<li>2. Les expressions régulières avec au moins un séparateur de chemin sont comparées au chemin complet vers le fichier.</li><br>\n"
|
||||
"Exemple: si vous voulez uniquement ignorer les fichiers .PNG du dossier \"Mes Images\":<br><code>.*Mes\\sImages\\\\.*\\.png</code><br><br>Vous pouvez tester l'expression régulière via le bouton \"Tester la chaîne de caractères\" après avoir tapé un faux chemin de fichier dans le champs correspondant:<br><code>C:\\\\Utilisateur\\Mes Images\\test.png</code><br><br>\n"
|
||||
"Les expressions régulières qui fonctionnent seront surlignées.<br>S'il y a au moins un surlignage, le chemin ou nom de fichier testé sera ignoré durant les scans.<br><br>Les dossiers et fichiers commençant par un point '.' sont ignorés par défaut.<br><br>"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "Erreur de compilation:"
|
||||
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "Accroître zoom"
|
||||
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "Décroître zoom"
|
||||
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "Taille normale"
|
||||
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "Meilleur ajustement"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Mode de cache d'images:"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr "Outrepasser le thème d’icônes dans le visualiseur"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
"Utiliser nos propres icônes plutôt que celles fournies par le moteur du "
|
||||
"thème"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "Afficher les barres de défilement dans visualiseur d'images"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
"Si l'image affichée ne rentre par dans la fenêtre, afficher les barres de "
|
||||
"défilement pour faire glisser la vue"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr "Position par défaut pour la barre d'onglets (redémarrage requis)"
|
||||
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Placer la barre d'onglets sous le menu principal plutôt qu'à côté.\n"
|
||||
"Sur MacOS, cette barre remplira la fenêtre en largeur."
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "Utiliser police en gras pour les références"
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "Couleur du texte des référénces:"
|
||||
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "Couleur de fond pour les références:"
|
||||
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "Couleur du texte des delta:"
|
||||
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "Affiche barre de titre et peut être ancrée"
|
||||
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
"Quand la barre de titre est cachée, utilisez la touche méta pour déplacer la"
|
||||
" fenêtre flottante"
|
||||
|
||||
#~ msgid "Removing dead tracks from your iTunes Library"
|
||||
#~ msgstr "Retrait des tracks mortes de votre librairie iTunes"
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
"La barre de titre ne peut être désactivée que quand la fenêtre est ancrée"
|
||||
|
||||
#~ msgid "Scanning the iTunes Library"
|
||||
#~ msgstr "Scan de la librairie iTunes en cours"
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "Barre de titre verticale"
|
||||
|
||||
#~ msgid "Sending dupes to the Trash"
|
||||
#~ msgstr "Envoi de doublons à la corbeille en cours"
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr ""
|
||||
"Placer la barre de titre à la verticale côté gauche plutôt que à "
|
||||
"l'horizontale en haut"
|
||||
|
||||
#~ msgid "Talking to iTunes. Don't touch it!"
|
||||
#~ msgstr "En communication avec iTunes. N'y touchez pas!"
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "Afficher la barre d'onglets"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||
#~ msgstr ""
|
||||
#~ "Votre librairie iTunes contient %d tracks mortes qui seront retirées. "
|
||||
#~ "Continuer?"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"Ces expressions régulières python (sensible aux majuscules) peuvent ignorer les fichiers pendant les scans. Les dossiers auront également leur <strong>état par défaut</strong> mis sur Exclus dans l'onglet Dossiers si leur nom correspond à une des expressions régulières sélectionnées<br>Pour chaque fichier collecté, deux tests sont faits pour déterminer s'il doit être totalement ignoré:<br><li>1. Les expressions régulières sans séparateur de chemin sont comparées au nom de fichier seul.</li>\n"
|
||||
"<li>2. Les expressions régulières avec au moins un séparateur de chemin sont comparées au chemin complet vers le fichier.</li><br>\n"
|
||||
"Exemple: si vous voulez uniquement ignorer les fichiers .PNG du dossier \"Mes Images\":<br><code>.*Mes\\sImages\\\\.*\\.png</code><br><br>Vous pouvez tester l'expression régulière via le bouton \"Tester la chaîne de caractères\" après avoir tapé un faux chemin de fichier dans le champs correspondant:<br><code>C:\\\\Utilisateur\\Mes Images\\test.png</code><br><br>\n"
|
||||
"Les expressions régulières qui fonctionnent seront surlignées.<br>S'il y a au moins un surlignage, le chemin ou nom de fichier testé sera ignoré durant les scans.<br><br>Les dossiers et fichiers commençant par un point '.' sont ignorés par défaut.<br><br>"
|
||||
|
||||
#~ msgid "You have no dead tracks in your iTunes Library"
|
||||
#~ msgstr "Votre librairie iTunes ne contient aucune track morte."
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Résultats"
|
||||
|
||||
#~ msgid "The iTunes application couldn't be found."
|
||||
#~ msgstr "L'application iTunes n'a pas pu être trouvée"
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "Interface générale"
|
||||
|
||||
#~ msgid "Talking to iPhoto. Don't touch it!"
|
||||
#~ msgstr "En communication avec iPhoto. N'y touchez pas!"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Tableau de résultats"
|
||||
|
||||
#~ msgid "Talking to Aperture. Don't touch it!"
|
||||
#~ msgstr "En communication avec Aperture. N'y touchez pas!"
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Fenêtre de détails"
|
||||
|
||||
#~ msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||
#~ msgstr ""
|
||||
#~ "Les photos supprimés d'Aperture sont dans le projet nommé \"dupeGuru "
|
||||
#~ "Trash\"."
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "Général"
|
||||
|
||||
#~ msgid "The iPhoto application couldn't be found."
|
||||
#~ msgstr "iPhoto n'a pas pu être trouvée dans vos applications."
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Préférences"
|
||||
|
||||
#~ msgid "Check for Update"
|
||||
#~ msgstr "Vérifier les mises à jour"
|
||||
|
||||
#~ msgid "Filename"
|
||||
#~ msgstr "Nom de fichier"
|
||||
|
||||
#~ msgid "Filename - Fields"
|
||||
#~ msgstr "Nom de fichier (Champs)"
|
||||
|
||||
#~ msgid "Filename - Fields (No Order)"
|
||||
#~ msgstr "Nom de fichier (Champs sans ordre)"
|
||||
|
||||
#~ msgid "Tags"
|
||||
#~ msgstr "Tags"
|
||||
|
||||
#~ msgid "Contents"
|
||||
#~ msgstr "Contenu"
|
||||
|
||||
#~ msgid "Audio Contents"
|
||||
#~ msgstr "Contenu Audio"
|
||||
|
||||
#~ msgid "EXIF Timestamp"
|
||||
#~ msgstr "EXIF Timestamp"
|
||||
|
||||
#~ msgid "Folders"
|
||||
#~ msgstr "Dossiers"
|
||||
|
||||
#~ msgid "Add Aperture Library"
|
||||
#~ msgstr "Ajouter librairie Aperture"
|
||||
|
||||
#~ msgid "Add iPhoto Library"
|
||||
#~ msgstr "Ajouter librairie iPhoto"
|
||||
|
||||
#~ msgid "Add iTunes Library"
|
||||
#~ msgstr "Ajouter librairie iTunes"
|
||||
|
||||
#~ msgid "Audio Content"
|
||||
#~ msgstr "Contenu Audio"
|
||||
|
||||
#~ msgid "Content"
|
||||
#~ msgstr "Contenu"
|
||||
|
||||
#~ msgid "dupeGuru ME Preferences"
|
||||
#~ msgstr "Préférences de dupeGuru ME"
|
||||
|
||||
#~ msgid "dupeGuru PE Preferences"
|
||||
#~ msgstr "Préférences de dupeGuru PE"
|
||||
|
||||
#~ msgid "Remove Dead Tracks in iTunes"
|
||||
#~ msgstr "Retirer les tracks mortes dans iTunes"
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Affichage"
|
||||
|
||||
@@ -1,122 +1,123 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-11-20 11:53+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: Armenian (http://www.transifex.com/projects/p/dupeguru/language/hy/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Armenian (https://www.transifex.com/voltaicideas/teams/116153/hy/)\n"
|
||||
"Language: hy\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: hy\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Ֆայլի ճ-ը"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Սխալի գրությունը"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Տեսակ"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Թղթապանակ"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Ֆայլի անունը"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Չափը"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Փոփոխությունը"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Տևողությունը"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Բիթրեյթը"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Սիմպլրեյթը"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Ֆայլի անունը"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Թղթապանակ"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Չափը (ՄԲ)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Ժամանակը"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Սեմփլրեյթը"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Տեսակ"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Փոփոխությունը"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Անունը"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Կատարողը"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Ալբոմը"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Ժանրը"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Տարին"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Շավիղի համարը"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Մեկնաբանություն"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Համընկնում %-ին"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Բառ է օգտ."
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Խաբկանքի ք-ը"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Չափերը"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Չափը (ԿԲ)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "EXIF Timestamp"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Չափը"
|
||||
|
||||
@@ -1,50 +1,54 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-12-07 15:22+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: Armenian (http://www.transifex.com/projects/p/dupeguru/language/hy/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Armenian (https://www.transifex.com/voltaicideas/teams/116153/hy/)\n"
|
||||
"Language: hy\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: hy\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
msgstr "Նշված կրկնօրինակներ չկան: Ոչինչ չի արվել."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
msgstr "Ընտրված կրկնօրինակներ չկան: Ոչինչ չի արվել."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
msgstr ""
|
||||
"Դուք պատրաստվում եք միանգամից շատ ֆայլեր բացել: Կախված այն բանից, թե ինչով "
|
||||
"են բացվում այդ ֆայլերը, դա անելը կարող է բավականին խառնաշփոթ ստեղծել: "
|
||||
"Շարունակել?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Ստուգվում են կրկնօրինակները"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Բացվում է"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Տեղափոխվում է"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Պատճենվում է"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Ուղարկվում է Աղբարկղ"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -52,216 +56,202 @@ msgstr ""
|
||||
"Նախորդ գործողությունը դեռևս ձեռադրում է այստեղ: Չեք կարող սկսել մեկ ուրիշը: "
|
||||
"Սպասեք մի քանի վայրկյան և կրկին փորձեք:"
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Կրկնօրինակներ չկան:"
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "Բոլոր նշված ֆայլերը հաջողությամբ պատճենվել են:"
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "Բոլոր նշված ֆայլերը հաջողությամբ տեղափոխվել են:"
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr "Բոլոր նշված ֆայլերը հաջողությամբ Ջնջվել են:"
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Հնարավոր չէ բեռնել ֆայլը: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}'-ը արդեն առկա է ցանկում:"
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}'-ը գոյություն չունի:"
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
msgstr ""
|
||||
"Ընտրված %d համընկնումները կանտեսվեն հետագա բոլոր ստուգումներից: Շարունակե՞լ:"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "պատճենել"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Ընտրեք գրացուցակ, որտեղ ցանկանում եք պատճենել նշված ֆայլերը"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "տեղափոխել"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr "Ընտրել թղթապանակ՝ {} նշված ֆայլերի համար"
|
||||
|
||||
#: core/app.py:490
|
||||
msgid "Select a destination for your exported CSV"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr ""
|
||||
"Խնդրում ենք ընտրել գրացուցակ, որտեղ ցանկանում եք տեղափոխել նշված ֆայլերը"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Ընտրեք նպատակակետ ձեր արտահանված CSV- ի համար"
|
||||
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Չէր կարող գրել է ֆայլը: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr "Դուք չեք կատարել Հրամանի ընտրություն: Կատարեք այն կարգավորումներում:"
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "Դուք պատրաստվում եք ջնջելու %d ֆայլեր: Շարունակե՞լ:"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr ""
|
||||
msgstr "{} կրկնօրինակ խմբերը փոխվել են առաջնահերթության կարգով:"
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար"
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "Ընտրված թղթապանակները պարունակում են չստուգվող ֆայլ:"
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d անպիտան)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "0 համընկնում է գտնվել"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d համընկնում է գտնվել"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Կարդալ %d/%d ֆայլերի չափը"
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr ""
|
||||
msgstr "Դուք {} ֆայլ եք ուղարկում աղբարկղ:"
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Կանոնավոր արտահայտություններ"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr "Ցանկանու՞մ եք հեռացնել բոլոր %d ֆայլերը անտեսումների ցանկից:"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr "Ոչինչ"
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Ֆայլի անունը"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Ավարտվում է թվով"
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Ֆայլի անվանումը - Դաշտեր"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Չի ավարտվում է թվով"
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Ֆայլի անուն - դաշտեր (պատվեր չկա)"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr ""
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr ""
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Բովանդակություն"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "Ամենաբարձրը"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "Ամենացածրը"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "Նորագույնը"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "Ամենահինը"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) նշված կրկնօրինակներ:"
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr "ֆիլտր. %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Կարդալ %d/%d ֆայլերի մետատվյալները"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Ստուգվում է %d/%d նկարները"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "Կատարվում է %d/%d տվյալի համընկնում"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Նախապատրաստեցվում է համընկնումը"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Ստուգում է %d/%d համընկնումները"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Կարդալ EXIF-ը d/%d նկարներից"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "EXIF Timestamp"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Ոչինչ"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Ավարտվում է թվով"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Չի ավարտվում է թվով"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Ամենաերկար"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Ամենակարճը"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Ամենաբարձրը"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Ամենացածրը"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Նորագույնը"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Ամենահինը"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) նշված կրկնօրինակներ:"
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr "ֆիլտր. %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Կարդալ %d/%d ֆայլերի չափը"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Կարդալ %d/%d ֆայլերի մետատվյալները"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "Գրեթե արված է! Արդյունքների կազմակերպում..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "Ֆայլերը ուղարկվում են Աղբարկղ"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "Խմբավորվել է %d/%d համընկնում"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Սխալ համընկնումների հեռացում"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr "Ընթացքում է %d/%d համընկնումները ընդդեմ անտեսվող ցանկի"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Խմբի առաջնայնացում"
|
||||
msgstr "Թղթապանակներ"
|
||||
|
||||
@@ -1,23 +1,33 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-12-07 15:22+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: Armenian (http://www.transifex.com/projects/p/dupeguru/language/hy/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Armenian (https://www.transifex.com/voltaicideas/teams/116153/hy/)\n"
|
||||
"Language: hy\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: hy\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Փակել"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Ընտրանքներ"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr ""
|
||||
msgstr "անտեսել ցուցակ"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Մաքրել նկարի պահոցը"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
@@ -31,49 +41,62 @@ msgstr "dupeGuru-ի մասին"
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Բացել Սխալների մատյանը"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Ցանկանու՞մ եք հեռացնել բոլոր պահված նկարները ստուգելուց:"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Նկարի պահոցը մաքրվել է:"
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr ""
|
||||
msgstr "{} ֆայլ (*.{})"
|
||||
|
||||
#: qt/deletion_options.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Deletion Options"
|
||||
msgstr ""
|
||||
msgstr "Ջնջումների Ընտրանքներ"
|
||||
|
||||
#: qt/deletion_options.py:35 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Link deleted files"
|
||||
msgstr ""
|
||||
msgstr "Կապել ջնջված ֆայլերը"
|
||||
|
||||
#: qt/deletion_options.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"After having deleted a duplicate, place a link targeting the reference file "
|
||||
"to replace the deleted file."
|
||||
msgstr ""
|
||||
"րկնօրինակը ջնջելուց հետո տեղադրեք հղում, տեղադրել հղում նպատակային հղվող "
|
||||
"ֆայլը փոխարինել ջնջված ֆայլը."
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Hardlink"
|
||||
msgstr ""
|
||||
msgstr "Hardlink"
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Symlink"
|
||||
msgstr ""
|
||||
msgstr "Symlink"
|
||||
|
||||
#: qt/deletion_options.py:48
|
||||
msgid " (unsupported)"
|
||||
msgstr ""
|
||||
msgstr " (չաջակցվող)"
|
||||
|
||||
#: qt/deletion_options.py:49 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Directly delete files"
|
||||
msgstr ""
|
||||
msgstr "Ուղղակիորեն ջնջեք ֆայլերը"
|
||||
|
||||
#: qt/deletion_options.py:51 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Ֆայլերը աղբարկղ ուղարկելու փոխարեն, դրանք ուղղակիորեն ջնջեք: Այս տարբերակը "
|
||||
"սովորաբար օգտագործվում է որպես լուծում, երբ ջնջման սովորական մեթոդը չի "
|
||||
"գործում:"
|
||||
|
||||
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
msgstr "Շարունակել"
|
||||
|
||||
#: qt/deletion_options.py:60 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Cancel"
|
||||
@@ -122,6 +145,30 @@ msgstr "Օգնություն"
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Բացել Վերջին արդյունքները"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Դիմումի ռեժիմ"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Երաժշտություն"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Նկար"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Ստանդարտ"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Ստուգելու տեսակը."
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Լրացուցիչ ընտրանքներ"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "Ընտրեք ստուգելու թղթապանակները և սեղմեք \"Ստուգել\":"
|
||||
@@ -184,20 +231,89 @@ msgstr "Նորմալ"
|
||||
|
||||
#: qt/ignore_list_dialog.py:45 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Selected"
|
||||
msgstr ""
|
||||
msgstr "Հեռացնել ընտրվածը"
|
||||
|
||||
#: qt/ignore_list_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
msgstr "Մաքրել"
|
||||
|
||||
#: qt/ignore_list_dialog.py:47 qt/problem_dialog.py:61
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Close"
|
||||
msgstr "Փակել"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Ստուգելու տեսակը."
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Մանրամասն"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Ստուգվող կցապիտակները."
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Շավիղը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Կատարողը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Ալբոմը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Վերնագիրը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Ժանրը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Տարին"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Բառի չափը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Ըստ նման բառերի համընկնման"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Կարող է խառը տեսակի"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Օգտ. կանոնավոր սահմանումներ ֆիլտրելիս"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Հեռացնել"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Անտեսել կրկնօրինակները հարդ նույն ֆայլը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Սխալի եղանակը (պահանջում է վերագործարկում)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Նկարների համընկնում տարբեր չափերով"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
@@ -274,12 +390,6 @@ msgstr ""
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Ցուցադրել ընտրվածը"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Մանրամասն"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
@@ -323,7 +433,7 @@ msgstr "Ավելացնել ընտրվածը Անտեսումների ցանկ"
|
||||
|
||||
#: qt/result_window.py:75 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Make Selected into Reference"
|
||||
msgstr ""
|
||||
msgstr "Ընտրված նյութը դարձրեք տեղեկատու նյութ:"
|
||||
|
||||
#: qt/result_window.py:77 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Open Selected with Default Application"
|
||||
@@ -359,7 +469,7 @@ msgstr "Արտածել HTML-ով"
|
||||
|
||||
#: qt/result_window.py:88
|
||||
msgid "Export To CSV"
|
||||
msgstr ""
|
||||
msgstr "Արտահանել CSV"
|
||||
|
||||
#: qt/result_window.py:89 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Save Results..."
|
||||
@@ -391,91 +501,12 @@ msgstr "Միայն կրկ."
|
||||
|
||||
#: qt/result_window.py:194
|
||||
msgid "Delta Values"
|
||||
msgstr ""
|
||||
msgstr "Դելտա արժեքներ"
|
||||
|
||||
#: qt/result_window.py:310 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Ընտրեք ֆայլը՝ պահպանելու արդյունքները՝"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Ստուգվող կցապիտակները."
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Շավիղը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Կատարողը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Ալբոմը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Վերնագիրը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Ժանրը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Տարին"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Բառի չափը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Ըստ նման բառերի համընկնման"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Կարող է խառը տեսակի"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Օգտ. կանոնավոր սահմանումներ ֆիլտրելիս"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Հեռացնել"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Անտեսել կրկնօրինակները հարդ նույն ֆայլը"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Սխալի եղանակը (պահանջում է վերագործարկում)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Նկարների համընկնում տարբեր չափերով"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Մաքրել նկարի պահոցը"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Ցանկանու՞մ եք հեռացնել բոլոր պահված նկարները ստուգելուց:"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Նկարի պահոցը մաքրվել է:"
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "Անտեսել ֆայլերը, որոնք փոքր են՝"
|
||||
@@ -486,7 +517,7 @@ msgstr "ԿԲ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "%@ Results"
|
||||
msgstr ""
|
||||
msgstr "%@ Արդյունքներ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Action"
|
||||
@@ -550,7 +581,7 @@ msgstr "Թղթապանակներ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru"
|
||||
msgstr ""
|
||||
msgstr "dupeGuru"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Preferences"
|
||||
@@ -570,7 +601,7 @@ msgstr "Խմբագրել"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Export Results to CSV"
|
||||
msgstr ""
|
||||
msgstr "Արտահանել արդյունքները CSV ձևաչափով:"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Export Results to XHTML"
|
||||
@@ -590,7 +621,7 @@ msgstr "Ֆիլտրի կարգը."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter Results..."
|
||||
msgstr ""
|
||||
msgstr "Զտել արդյունքները:"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Folder Selection Window"
|
||||
@@ -598,7 +629,7 @@ msgstr "Թղթապանակը ընտրելու պատուհանը"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Font Size:"
|
||||
msgstr ""
|
||||
msgstr "Տառատեսակի չափը ՝"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Hide dupeGuru"
|
||||
@@ -632,11 +663,6 @@ msgstr "Լր. արդյունքներ"
|
||||
msgid "Ok"
|
||||
msgstr "ԼԱՎ"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Ընտրանքներ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Տեղադրել"
|
||||
@@ -647,7 +673,7 @@ msgstr "Կարգավորումներ..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Quick Look"
|
||||
msgstr ""
|
||||
msgstr "Quick Look"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Quit dupeGuru"
|
||||
@@ -659,11 +685,11 @@ msgstr "Ետարկել ծրագրայինի"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reset To Defaults"
|
||||
msgstr ""
|
||||
msgstr "Զրոյացնել լռելյայն"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal"
|
||||
msgstr ""
|
||||
msgstr "Բացահայտել"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal Selected in Finder"
|
||||
@@ -671,7 +697,7 @@ msgstr "Ցուցադրել ընտրվածը Գտնվածում"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select All"
|
||||
msgstr ""
|
||||
msgstr "Ընտրել բոլորը"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Send Marked to Trash..."
|
||||
@@ -679,7 +705,7 @@ msgstr "Ուղարկել նշվածները Աղբարկղ..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
msgstr "Առայություններ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show All"
|
||||
@@ -701,112 +727,198 @@ msgstr "Պատուհանը"
|
||||
msgid "Zoom"
|
||||
msgstr "Չափը"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Բացառման ֆիլտրեր"
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Սկան արդյունքներ"
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "բեռնվածքի տեղեկագրքեր..."
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Պահել գրացուցակները..."
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Ընտրեք գրացուցակների ֆայլ `բեռնելու համար"
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "dupeGuru տեղեկատուներ (*.dupegurudirs)"
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "Ընտրեք ֆայլ, ձեր գրացուցակները պահելու համար"
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "dupeGuru տեղեկատուներ (*.dupegurudirs)"
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Ավելացնել"
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Վերականգնել Նախնականը"
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "Թեստային լարային"
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr ""
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Removing dead tracks from your iTunes Library"
|
||||
#~ msgstr "Հեռացվում են վնասված շավիղները iTunes-ի Շտեմարանից"
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Scanning the iTunes Library"
|
||||
#~ msgstr "Ստուգվում է iTunes-ի Շտեմարանը"
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending dupes to the Trash"
|
||||
#~ msgstr "Խաբկանքները տեղափոխվում են Աղբարկղ"
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Talking to iTunes. Don't touch it!"
|
||||
#~ msgstr ""
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||
#~ msgstr ""
|
||||
#~ "Ձեր iTunes- Շտեմարանը պարունակում է %d մահացած շավիղներ, որոնք կարող են "
|
||||
#~ "ջնջվել: Շարունակե՞լ:"
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "You have no dead tracks in your iTunes Library"
|
||||
#~ msgstr "Դուք չունեք շավիղներ Ձեր iTunes Շտեմարանում"
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Նկարի քեշի ռեժիմ:"
|
||||
|
||||
#~ msgid "The iTunes application couldn't be found."
|
||||
#~ msgstr ""
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Talking to iPhoto. Don't touch it!"
|
||||
#~ msgstr "Զրույց iPhoto-ի հետ: Մի կպեք! "
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Talking to Aperture. Don't touch it!"
|
||||
#~ msgstr ""
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||
#~ msgstr ""
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "The iPhoto application couldn't be found."
|
||||
#~ msgstr "iPhoto ծրագիրը չի գտնվել:"
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Կարգավորումներ"
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Check for Update"
|
||||
#~ msgstr "Ստուգել թարմացումները"
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Filename"
|
||||
#~ msgstr "Ֆայլի անունը"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Filename - Fields"
|
||||
#~ msgstr "Ֆայլի անունը - Դաշտերը"
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Filename - Fields (No Order)"
|
||||
#~ msgstr "Ֆայլի անունը - Դաշտերը (անկարգ)"
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Tags"
|
||||
#~ msgstr "Կցապիտակներ"
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Contents"
|
||||
#~ msgstr "Բովանդակությունը"
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Audio Contents"
|
||||
#~ msgstr "Ձայնային բովանդակությունը"
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "EXIF Timestamp"
|
||||
#~ msgstr "EXIF Timestamp"
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Folders"
|
||||
#~ msgstr "Թղթապանակներ"
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add Aperture Library"
|
||||
#~ msgstr ""
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add iPhoto Library"
|
||||
#~ msgstr "Ավելացնել iPhoto-ի Շտեմարանին"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add iTunes Library"
|
||||
#~ msgstr "Ավելացնել iTunes թղթապանակ"
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Արդյունքներ"
|
||||
|
||||
#~ msgid "Audio Content"
|
||||
#~ msgstr "Ձայնային բովանդակությունը"
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "Ընդհանուր միջերես"
|
||||
|
||||
#~ msgid "Content"
|
||||
#~ msgstr "Բովանդակությունը"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Արդյունքների աղյուսակ"
|
||||
|
||||
#~ msgid "dupeGuru ME Preferences"
|
||||
#~ msgstr "dupeGuru-ի ME կարգավորումները"
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Մանրամասներ Պատուհան"
|
||||
|
||||
#~ msgid "dupeGuru PE Preferences"
|
||||
#~ msgstr "dupeGuru PE կարգավորումները"
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "Գեներալ"
|
||||
|
||||
#~ msgid "Remove Dead Tracks in iTunes"
|
||||
#~ msgstr "Հեռացնել մահացած շավիղները iTunes-ից"
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Ցուցադրման"
|
||||
|
||||
@@ -1,122 +1,122 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-11-20 11:53+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/projects/p/dupeguru/language/it/)\n"
|
||||
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2021\n"
|
||||
"Language-Team: Italian (https://www.transifex.com/voltaicideas/teams/116153/it/)\n"
|
||||
"Language: it\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Percorso del file"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Messaggio di errore"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Tipo"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Cartella"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Nome del file"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Dimensione"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Modificato"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Durata"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Campionamento"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Nome del file"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Cartella"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Dimensione (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Tempo"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Campionamento"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Tipo"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Modificato"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Titolo"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Genere"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Anno"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Numero traccia"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Commento"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Somiglianza %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Parole usate"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Conteggio duplicati"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensioni"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Dimensione (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "Data EXIF"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Dimensione"
|
||||
|
||||
@@ -1,51 +1,54 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-12-07 15:22+0000\n"
|
||||
"Last-Translator: auanasgheps\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/projects/p/dupeguru/language/it/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Italian (https://www.transifex.com/voltaicideas/teams/116153/it/)\n"
|
||||
"Language: it\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "Non ci sono duplicati marcati. Nessuna operazione è stata completata."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "Non ci sono duplicati selezionati. Nessuna operazione è stata completata."
|
||||
msgstr ""
|
||||
"Non ci sono duplicati selezionati. Nessuna operazione è stata completata."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
msgstr "Stai per aprire molti file contemporaneamente. A seconda di quale programma "
|
||||
msgstr ""
|
||||
"Stai per aprire molti file contemporaneamente. A seconda di quale programma "
|
||||
"li aprirà, potrebbe crearsi un bel casino. Vuoi continuare?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Scansione per i duplicati"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Caricamento"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Spostamento"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Copia in corso"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Spostamento nel cestino"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -53,31 +56,35 @@ msgstr ""
|
||||
"Un'azione precedente è ancora in corso. Non puoi cominciarne una nuova. "
|
||||
"Aspetta qualche secondo e quindi riprova."
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Non sono stati trovati dei duplicati."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "Tutti i file marcati sono stati copiati correttamente."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "Tutti i file marcati sono stati spostati correttamente."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr "Tutti i file marcati sono stati spostati nel cestino."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Impossibile caricare il file: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}' è già nella lista."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' non esiste."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
@@ -85,190 +92,171 @@ msgstr ""
|
||||
"Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni "
|
||||
"successive. Continuare?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "copiare"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Seleziona una directory in cui desideri copiare i file contrassegnati"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "spostare"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr ""
|
||||
"Seleziona una directory in cui desideri spostare i file contrassegnati"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr "Seleziona una cartella per {} in essa i file marcati"
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Seleziona una destinazione per il file CSV"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Impossibile modificare il file: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
"Non hai impostato nessun comando personalizzato. Impostalo nelle tue "
|
||||
"preferenze."
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "Stai per rimuovere %d file dai risultati. Continuare?"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{} gruppi duplicati sono stati cambiati dalla nuova priorirità"
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Raccolta file da scansionare"
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "Le cartelle selezionate non contengono file da scansionare."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Raccolta file da scansionare"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d scartati)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "Nessun duplicato trovato"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "Trovato/i %d duplicato/i"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Lettura dimensione di %d/%d file"
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "Stai spostando {} file al Cestino."
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Espressioni regolari"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr ""
|
||||
"Vuoi veramente rimuovere tutti i %d elementi dalla lista dei file da "
|
||||
"ignorare?"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr "Nessuno"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Termina con un numero"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Non termina con un numero"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr "Più lungo"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr "Più corto"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "Il più alto"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "Il più basso"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "Il più nuovo"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "Il più vecchio"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicati marcati."
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr " filtro: %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Lettura metadata di %d/%d files"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analizzate %d/%d immagini"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "Effettuate %d/%d comparazioni sui sottogruppi di immagini"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Preparazione per la comparazione"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Verificate %d/%d somiglianze"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Leggi dati EXIF da %d/%d immagini"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Impossibile caricare il file: {}"
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Impossibile modificare il file: {}"
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Nome del file"
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Nome file - Campi"
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Nome file - Campi (Nessun Ordine)"
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Tag"
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Contenuti"
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analizzate %d/%d immagini"
|
||||
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "Effettuate %d/%d comparazioni sui sottogruppi di immagini"
|
||||
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Preparazione per la comparazione"
|
||||
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Verificate %d/%d somiglianze"
|
||||
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Leggi dati EXIF da %d/%d immagini"
|
||||
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "Timestamp EXIF"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Nessuno"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Termina con un numero"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Non termina con un numero"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Più lungo"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Più corto"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Il più alto"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Il più basso"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Il più nuovo"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Il più vecchio"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicati marcati."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr " filtro: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Lettura dimensione di %d/%d file"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Lettura metadata di %d/%d files"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr "Quasi finito! Sto organizzando i risultati..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr "Cartelle"
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "Spostamento nel cestino"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "Raggruppati %d/%d duplicati"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Rimozione dei falsi positivi"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr ""
|
||||
#~ "Processati %d/%d duplicati applicando le regole della lista da ignorare"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Applicazione delle priorità di gruppo"
|
||||
|
||||
@@ -1,24 +1,34 @@
|
||||
# Translators:
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-12-07 15:22+0000\n"
|
||||
"Last-Translator: auanasgheps\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/projects/p/dupeguru/language/it/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Italian (https://www.transifex.com/voltaicideas/teams/116153/it/)\n"
|
||||
"Language: it\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Esci"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Opzioni"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "Lista elementi ignorati"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Cancella la cache delle immagini"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "Aiuto di dupeGuru"
|
||||
@@ -31,6 +41,16 @@ msgstr "Informazioni su dupeGuru"
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Apri registro eventi"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr ""
|
||||
"Vuoi veramente rimuovere tutte le analisi delle immagini memorizzate nella "
|
||||
"cache?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "La cache delle immagini è stata cancellata."
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "{} file (*.{})"
|
||||
@@ -48,8 +68,8 @@ msgid ""
|
||||
"After having deleted a duplicate, place a link targeting the reference file "
|
||||
"to replace the deleted file."
|
||||
msgstr ""
|
||||
"Dopo aver selezionato un duplicato, per sostituire il file eliminato posiziona un collegamento "
|
||||
"che ha come destinazione i file di referenza."
|
||||
"Dopo aver selezionato un duplicato, per sostituire il file eliminato "
|
||||
"posiziona un collegamento che ha come destinazione i file di referenza."
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Hardlink"
|
||||
@@ -73,8 +93,8 @@ msgid ""
|
||||
"usually used as a workaround when the normal deletion method doesn't work."
|
||||
msgstr ""
|
||||
"Invece di spostare file nel cestino, eliminali direttamente. Questa opzione "
|
||||
"di solito è usata come alternativa al sistema di eliminazione standard quando "
|
||||
"non funziona."
|
||||
"di solito è usata come alternativa al sistema di eliminazione standard "
|
||||
"quando non funziona."
|
||||
|
||||
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Proceed"
|
||||
@@ -127,6 +147,30 @@ msgstr "Aiuto"
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Carica i risultati recenti"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Modalità applicazione:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Musica"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Foto"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Standard"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Tipo di scansione:"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Più Opzioni"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "Seleziona le cartelle da scansionare e premi \"Scansiona\"."
|
||||
@@ -149,7 +193,9 @@ msgstr "Hai dei risultati non salvati. Vuoi veramente chiudere?"
|
||||
|
||||
#: qt/directories_dialog.py:239 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a folder to add to the scanning list"
|
||||
msgstr "Seleziona una cartella da aggiungere alla lista delle cartelle da scansionare"
|
||||
msgstr ""
|
||||
"Seleziona una cartella da aggiungere alla lista delle cartelle da "
|
||||
"scansionare"
|
||||
|
||||
#: qt/directories_dialog.py:266 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a results file to load"
|
||||
@@ -200,9 +246,78 @@ msgstr "Deseleziona"
|
||||
msgid "Close"
|
||||
msgstr "Chiudi"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Tipo di scansione:"
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Dettagli"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Etichette da scansionare:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Traccia"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Titolo"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genere"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Anno"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "'Peso' della parola"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Fai coincidere parole simili"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Includi tipi diversi di file"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Usa le espressioni regolari per filtrare"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Rimuovi le cartelle vuote dopo aver cancellato o spostato"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Non creare gli hardlink per i duplicati verso il medesimo file"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Modalità 'Debug'(è richiesta la riapertura del programma)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Includi immagini di dimensione differente"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
@@ -281,12 +396,6 @@ msgstr ""
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Mostra i selezionati"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Dettagli"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
@@ -330,7 +439,7 @@ msgstr "Aggiungi gli elementi selezionati alla lista da ignorare"
|
||||
|
||||
#: qt/result_window.py:75 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Make Selected into Reference"
|
||||
msgstr ""
|
||||
msgstr "Rendi selezionato un Riferimento"
|
||||
|
||||
#: qt/result_window.py:77 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Open Selected with Default Application"
|
||||
@@ -404,87 +513,6 @@ msgstr "Valori Delta"
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Seleziona un file dove salvare i tuoi risultati"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Etichette da scansionare:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Traccia"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Titolo"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genere"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Anno"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "'Peso' della parola"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Fai coincidere parole simili"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Includi tipi diversi di file"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Usa le espressioni regolari per filtrare"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Rimuovi le cartelle vuote dopo aver cancellato o spostato"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Non creare gli hardlink per i duplicati verso il medesimo file"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Modalità 'Debug'(è richiesta la riapertura del programma)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Includi immagini di dimensione differente"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Cancella la cache delle immagini"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr ""
|
||||
"Vuoi veramente rimuovere tutte le analisi delle immagini memorizzate nella "
|
||||
"cache?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr ""
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "Ignora file più piccoli di"
|
||||
@@ -642,11 +670,6 @@ msgstr "Più risultati"
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Opzioni"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Incolla"
|
||||
@@ -673,7 +696,7 @@ msgstr "Imposta prefefinite"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal"
|
||||
msgstr ""
|
||||
msgstr "Rivelare"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal Selected in Finder"
|
||||
@@ -711,112 +734,220 @@ msgstr "Finestra"
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Modalità applicazione:"
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Filtri di esclusione"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Musica"
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Risultati della scansione"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Foto"
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "Carica cartelle..."
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Standard"
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Salva cartelle..."
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Più Opzioni"
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Seleziona un file delle cartelle da caricare"
|
||||
|
||||
#~ msgid "Removing dead tracks from your iTunes Library"
|
||||
#~ msgstr "Rimozione delle tracce insistenti dalla libreria di iTunes"
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "cartelle di dupeGuru (*.dupegurudirs)"
|
||||
|
||||
#~ msgid "Scanning the iTunes Library"
|
||||
#~ msgstr "Scansione della libreria di iTunes"
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "Seleziona un file in cui salvare le cartelle"
|
||||
|
||||
#~ msgid "Sending dupes to the Trash"
|
||||
#~ msgstr "Spostamento dei duplicati nel cestino"
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "cartelle di dupeGuru (*.dupegurudirs)"
|
||||
|
||||
#~ msgid "Talking to iTunes. Don't touch it!"
|
||||
#~ msgstr ""
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Addizionare"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||
#~ msgstr ""
|
||||
#~ "La tua libreria di iTunes contiene %d tracce inesistenti pronte per essere "
|
||||
#~ "rimosse. Continuare?"
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Ripristina i valori predefiniti"
|
||||
|
||||
#~ msgid "You have no dead tracks in your iTunes Library"
|
||||
#~ msgstr "La tua libreria di iTunes non contiene tracce inesistenti"
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "Stringa di prova"
|
||||
|
||||
#~ msgid "The iTunes application couldn't be found."
|
||||
#~ msgstr ""
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "Digita qui un'espressione regolare Python..."
|
||||
|
||||
#~ msgid "Talking to iPhoto. Don't touch it!"
|
||||
#~ msgstr ""
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr "Digitare un percorso del file system o un nome file qui..."
|
||||
|
||||
#~ msgid "Talking to Aperture. Don't touch it!"
|
||||
#~ msgstr ""
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>I direttori avranno anche il loro <strong>stato predefinito</strong> impostato su Escluso nella scheda Directory se il loro nome corrisponde a una delle espressioni regolari selezionate.<br>Per ogni file raccolto vengono eseguiti due test per determinare se ignorarlo o meno completamente:<br><li>1. Le espressioni regolari prive di separatori di percorso verranno confrontate solo con il nome del file.</li>\n"
|
||||
"<li>2. Le espressioni regolari contenenti almeno un separatore di percorso verranno confrontate con il percorso completo del file.</li><br>\n"
|
||||
"Esempio: se desideri filtrare i file .PNG solo dalla directory \"Mie Immagini\":<br><code>.*Mie\\sImmagini\\\\.*\\.png</code><br><br>Puoi testare l'espressione regolare con il pulsante \"stringa di prova\" dopo aver incollato un percorso falso nel campo di prova:<br><code>C:\\\\Utente\\Mie Immagini\\test.png</code><br><br>\n"
|
||||
"Verranno evidenziate le espressioni regolari corrispondenti.<br>Se è presente almeno un'evidenziazione, il percorso o il nome del file testato verrà ignorato durante le scansioni.<br><br>Directory e file che iniziano con un punto \".\" vengono filtrati per impostazione predefinita.<br><br>"
|
||||
|
||||
#~ msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||
#~ msgstr ""
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "Errore di compilazione:"
|
||||
|
||||
#~ msgid "The iPhoto application couldn't be found."
|
||||
#~ msgstr "Non trovo l'applicazione iPhoto."
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "Aumenta lo zoom"
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Impostazioni"
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "Diminuisci lo zoom"
|
||||
|
||||
#~ msgid "Check for Update"
|
||||
#~ msgstr "Controlla aggiornamenti"
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#~ msgid "Filename"
|
||||
#~ msgstr "Nome del file"
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "Dimensione normale"
|
||||
|
||||
#~ msgid "Filename - Fields"
|
||||
#~ msgstr "Nome del file - Campi"
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#~ msgid "Filename - Fields (No Order)"
|
||||
#~ msgstr "Nome del file - Campi (senza ordine)"
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "Il più adatto"
|
||||
|
||||
#~ msgid "Tags"
|
||||
#~ msgstr "Tags"
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Modalità cache immagini:"
|
||||
|
||||
#~ msgid "Contents"
|
||||
#~ msgstr "Contenuti"
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr ""
|
||||
"Ignora le icone del tema nella barra degli strumenti del visualizzatore"
|
||||
|
||||
#~ msgid "Audio Contents"
|
||||
#~ msgstr "Contenuti Audio"
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
"Usa le nostre icone interne invece di quelle fornite dal motore del tema"
|
||||
|
||||
#~ msgid "EXIF Timestamp"
|
||||
#~ msgstr "Data e ora EXIF"
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "Mostra le barre di scorrimento nei visualizzatori di immagini"
|
||||
|
||||
#~ msgid "Folders"
|
||||
#~ msgstr "Cartelle"
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
"Quando l'immagine visualizzata non si adatta alla visualizzazione, mostra le"
|
||||
" barre di scorrimento per estendere la visualizzazione"
|
||||
|
||||
#~ msgid "Add Aperture Library"
|
||||
#~ msgstr ""
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr ""
|
||||
"Usa la posizione predefinita per la barra di tabulazione (richiede il "
|
||||
"riavvio)"
|
||||
|
||||
#~ msgid "Add iPhoto Library"
|
||||
#~ msgstr "Aggiungi alla libreria di iPhoto"
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Posiziona la barra di tabulazione sotto il menu principale anziché accanto ad esso\n"
|
||||
"Su MacOS, la barra delle schede riempirà invece la larghezza della finestra."
|
||||
|
||||
#~ msgid "Add iTunes Library"
|
||||
#~ msgstr "Aggiungi alla lista di iTunes"
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "Usa caratteri in grassetto per i riferimenti"
|
||||
|
||||
#~ msgid "Audio Content"
|
||||
#~ msgstr "Contenuto audio"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "Colore di primo piano per i riferimenti:"
|
||||
|
||||
#~ msgid "Content"
|
||||
#~ msgstr "Contenuto"
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "Colore di sfondo per i riferimenti:"
|
||||
|
||||
#~ msgid "dupeGuru ME Preferences"
|
||||
#~ msgstr "Preferenze di dupeGuru ME"
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "colore di primo piano per i delta:"
|
||||
|
||||
#~ msgid "dupeGuru PE Preferences"
|
||||
#~ msgstr "Preferenze di dupeGuru PE"
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "Mostra la barra del titolo e può essere agganciata"
|
||||
|
||||
#~ msgid "Remove Dead Tracks in iTunes"
|
||||
#~ msgstr "Rimuovi le tracce inesistenti da iTunes"
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
"Mentre la barra del titolo è nascosta, usa il tasto modificatore per "
|
||||
"trascinare la finestra mobile"
|
||||
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
"La barra del titolo può essere disabilitata solo mentre la finestra è "
|
||||
"agganciata"
|
||||
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "Barra del titolo verticale"
|
||||
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr ""
|
||||
"Cambia la barra del titolo da orizzontale in alto a verticale sul lato "
|
||||
"sinistro"
|
||||
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "Mostra la barra di tabulazione"
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>I direttori avranno anche il loro <strong>stato predefinito</strong> impostato su Escluso nella scheda Directory se il loro nome corrisponde a una delle espressioni regolari selezionate.<br>Per ogni file raccolto vengono eseguiti due test per determinare se ignorarlo o meno completamente:<br><li>1. Le espressioni regolari prive di separatori di percorso verranno confrontate solo con il nome del file.</li>\n"
|
||||
"<li>2. Le espressioni regolari contenenti almeno un separatore di percorso verranno confrontate con il percorso completo del file.</li><br>\n"
|
||||
"Esempio: se desideri filtrare i file .PNG solo dalla directory \"Mie Immagini\":<br><code>.*Mie\\sImmagini\\\\.*\\.png</code><br><br>Puoi testare l'espressione regolare con il pulsante \"stringa di prova\" dopo aver incollato un percorso falso nel campo di prova:<br><code>C:\\\\Utente\\Mie Immagini\\test.png</code><br><br>\n"
|
||||
"Verranno evidenziate le espressioni regolari corrispondenti.<br>Se è presente almeno un'evidenziazione, il percorso o il nome del file testato verrà ignorato durante le scansioni.<br><br>Directory e file che iniziano con un punto \".\" vengono filtrati per impostazione predefinita.<br><br>"
|
||||
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Risultati"
|
||||
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "Interfaccia generale"
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Tabella dei risultati"
|
||||
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Finestra Dettagli"
|
||||
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "Generale"
|
||||
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Schermo"
|
||||
|
||||
122
locale/ja/LC_MESSAGES/columns.po
Normal file
@@ -0,0 +1,122 @@
|
||||
# Translators:
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Japanese (https://www.transifex.com/voltaicideas/teams/116153/ja/)\n"
|
||||
"Language: ja\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "ファイルパス"
|
||||
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "エラーメッセージ"
|
||||
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "デュレーション"
|
||||
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "ビットレート"
|
||||
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "サンプルレート"
|
||||
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "ファイル名"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "フォルダ"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "サイズ(MB)"
|
||||
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "デュレーション"
|
||||
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "サンプルレート"
|
||||
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "種類"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "変更"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "タイトル"
|
||||
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "アーティスト"
|
||||
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "アルバム"
|
||||
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "ジャンル"
|
||||
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "年"
|
||||
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "トラック番号"
|
||||
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "コメント"
|
||||
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "一致率"
|
||||
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "使用した単語"
|
||||
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "重複カウント"
|
||||
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "寸法"
|
||||
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "サイズ(KB)"
|
||||
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "EXIFタイムスタンプ"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "サイズ"
|
||||
249
locale/ja/LC_MESSAGES/core.po
Normal file
@@ -0,0 +1,249 @@
|
||||
# Translators:
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Japanese (https://www.transifex.com/voltaicideas/teams/116153/ja/)\n"
|
||||
"Language: ja\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "マークされた重複はありません。 何も行われていません。"
|
||||
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "選択された重複はありません。 何も行われていません。"
|
||||
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
msgstr "一度に多くのファイルを開こうとしています。 これらのファイルを開く対象によっては、これを行うとかなり混乱する可能性があります。 継続する?"
|
||||
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "重複のスキャン"
|
||||
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "読み込み中"
|
||||
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "移動します"
|
||||
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "コピー中"
|
||||
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "ごみ箱に送信します"
|
||||
|
||||
#: core\app.py:308
|
||||
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 "前のアクションはまだそこにぶら下がっています。 まだ新しいものを始めることはできません。 数秒待ってから、再試行してください。"
|
||||
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "重複は見つかりませんでした。"
|
||||
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "マークされたファイルはすべて正常にコピーされました。"
|
||||
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "マークされたファイルはすべて正常に移動されました。"
|
||||
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr "マークされたファイルはすべてごみ箱に正常に送信されました。"
|
||||
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "ファイルを読み込めませんでした:{}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "「{}」既にリストに含まれています。"
|
||||
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' 存在しません。"
|
||||
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
msgstr "選択した%d個の一致は、以降のすべてのスキャンで無視されます。 継続する?"
|
||||
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "マークされたファイルをコピーするディレクトリを選択してください"
|
||||
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "マークされたファイルを移動するディレクトリを選択してください"
|
||||
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "エクスポートしたCSVの宛先を選択します。"
|
||||
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "ファイルに書き込めませんでした:{}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr "カスタムコマンドは設定されていません。 お好みで設定してください。"
|
||||
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "結果から%d個のファイルを削除しようとしています。 継続する?"
|
||||
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{}重複するグループは、再優先順位付けによって変更されました。"
|
||||
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "選択したディレクトリにはスキャン可能なファイルが含まれていません。"
|
||||
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "スキャンするファイルを収集しています"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d 廃棄)"
|
||||
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "一致するものが見つかりません"
|
||||
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d の一致が見つかりました"
|
||||
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "{}個のファイルをゴミ箱に送信しています"
|
||||
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "正規表現"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr "本当に除外リストから%d個の項目を削除しますか?"
|
||||
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "ファイル名"
|
||||
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "ファイル名 - フィールド"
|
||||
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "ファイル名 - フィールド(順序なし)"
|
||||
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "タグ"
|
||||
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "内容"
|
||||
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "%d/%d 枚の写真を分析しました"
|
||||
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "チャンクマッチを%d/%d回実行しました"
|
||||
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "マッチングの準備"
|
||||
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "%d/%d件の一致を確認"
|
||||
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "%d/%d枚の写真のEXIFを読みました"
|
||||
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "EXIFタイムスタンプ"
|
||||
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "無し"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "番号で終わっている"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "数字で終わっていない"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "最長"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "最短"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "最高"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "最低"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "最新"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "最古"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s)マークされた重複。"
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr "フィルタ: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "%d/%dファイルのサイズを読み取った"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "%d/%dファイルのメタデータを読み取った"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr "ほぼ完了しました! 結果をいじっています..."
|
||||
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr "フォルダー"
|
||||
927
locale/ja/LC_MESSAGES/ui.po
Normal file
@@ -0,0 +1,927 @@
|
||||
# Translators:
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Japanese (https://www.transifex.com/voltaicideas/teams/116153/ja/)\n"
|
||||
"Language: ja\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "終了"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "オプション"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "無視リスト"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "画像キャッシュをクリア"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "dupeGuruヘルプ"
|
||||
|
||||
#: qt/app.py:86 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "About dupeGuru"
|
||||
msgstr "dupeGuruついて"
|
||||
|
||||
#: qt/app.py:87
|
||||
msgid "Open Debug Log"
|
||||
msgstr "デバッグログを開く"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "キャッシュされた画像分析をすべて削除しますか?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "画像キャッシュがクリアされました。"
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "{} ファイル (*.{})"
|
||||
|
||||
#: qt/deletion_options.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Deletion Options"
|
||||
msgstr "削除オプション"
|
||||
|
||||
#: qt/deletion_options.py:35 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Link deleted files"
|
||||
msgstr "削除されたファイルをリンクする"
|
||||
|
||||
#: qt/deletion_options.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"After having deleted a duplicate, place a link targeting the reference file "
|
||||
"to replace the deleted file."
|
||||
msgstr "重複を削除した後、参照ファイルをターゲットとするリンクを配置して、削除されたファイルを置き換えます。"
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Hardlink"
|
||||
msgstr "ハードリンク"
|
||||
|
||||
#: qt/deletion_options.py:44
|
||||
msgid "Symlink"
|
||||
msgstr "シンボリックリンク"
|
||||
|
||||
#: qt/deletion_options.py:48
|
||||
msgid " (unsupported)"
|
||||
msgstr "(非対応)"
|
||||
|
||||
#: qt/deletion_options.py:49 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Directly delete files"
|
||||
msgstr "ファイルを直接削除する"
|
||||
|
||||
#: qt/deletion_options.py:51 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"ファイルを直接削除するファイルをゴミ箱に送る代わりに、直接削除します。 このオプションは通常、通常の削除方法が機能しない場合の回避策として使用されます。"
|
||||
|
||||
#: qt/deletion_options.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Proceed"
|
||||
msgstr "続行"
|
||||
|
||||
#: qt/deletion_options.py:60 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Attribute"
|
||||
msgstr "アトリビュート"
|
||||
|
||||
#: qt/details_table.py:16 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Selected"
|
||||
msgstr "選択した"
|
||||
|
||||
#: qt/details_table.py:16 qt/directories_model.py:24
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reference"
|
||||
msgstr "参照"
|
||||
|
||||
#: qt/directories_dialog.py:64 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Results..."
|
||||
msgstr "結果をロード..."
|
||||
|
||||
#: qt/directories_dialog.py:65 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Results Window"
|
||||
msgstr "結果ウィンドウ"
|
||||
|
||||
#: qt/directories_dialog.py:66
|
||||
msgid "Add Folder..."
|
||||
msgstr "フォルダーを追加"
|
||||
|
||||
#: qt/directories_dialog.py:74 qt/result_window.py:100
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "File"
|
||||
msgstr "ファイル"
|
||||
|
||||
#: qt/directories_dialog.py:76 qt/result_window.py:108
|
||||
msgid "View"
|
||||
msgstr "ビュー"
|
||||
|
||||
#: qt/directories_dialog.py:78 qt/result_window.py:110
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Help"
|
||||
msgstr "ヘルプ"
|
||||
|
||||
#: qt/directories_dialog.py:80 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Recent Results"
|
||||
msgstr "最近の結果を読み込む"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "アプリケーションモード:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "音楽"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "画像"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "標準"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "スキャンの種類:"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "もっとオプション"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "スキャンするフォルダを選択し、「スキャン」を押してください。"
|
||||
|
||||
#: qt/directories_dialog.py:163 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load Results"
|
||||
msgstr "結果を読み込む"
|
||||
|
||||
#: qt/directories_dialog.py:166 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan"
|
||||
msgstr "スキャン"
|
||||
|
||||
#: qt/directories_dialog.py:230
|
||||
msgid "Unsaved results"
|
||||
msgstr "保存されていない結果"
|
||||
|
||||
#: qt/directories_dialog.py:231 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "You have unsaved results, do you really want to quit?"
|
||||
msgstr "保存されていない結果がありますが、本当に終了しますか?"
|
||||
|
||||
#: qt/directories_dialog.py:239 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a folder to add to the scanning list"
|
||||
msgstr "スキャンリストに追加するフォルダを選択してください"
|
||||
|
||||
#: qt/directories_dialog.py:266 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a results file to load"
|
||||
msgstr "ロードする結果ファイルを選択してください"
|
||||
|
||||
#: qt/directories_dialog.py:267
|
||||
msgid "All Files (*.*)"
|
||||
msgstr "すべてのファイル (*.*)"
|
||||
|
||||
#: qt/directories_dialog.py:267 qt/result_window.py:311
|
||||
msgid "dupeGuru Results (*.dupeguru)"
|
||||
msgstr "dupeGuruの結果 (*.dupeguru)"
|
||||
|
||||
#: qt/directories_dialog.py:278
|
||||
msgid "Start a new scan"
|
||||
msgstr "新しいスキャンを開始"
|
||||
|
||||
#: qt/directories_dialog.py:279 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "You have unsaved results, do you really want to continue?"
|
||||
msgstr "保存されていない結果がありますが、本当に続行しますか?"
|
||||
|
||||
#: qt/directories_model.py:23 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Name"
|
||||
msgstr "名"
|
||||
|
||||
#: qt/directories_model.py:23 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "State"
|
||||
msgstr "状態"
|
||||
|
||||
#: qt/directories_model.py:24 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Excluded"
|
||||
msgstr "除外"
|
||||
|
||||
#: qt/directories_model.py:24 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Normal"
|
||||
msgstr "正常"
|
||||
|
||||
#: qt/ignore_list_dialog.py:45 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Selected"
|
||||
msgstr "選択を削除"
|
||||
|
||||
#: qt/ignore_list_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear"
|
||||
msgstr "クリアー"
|
||||
|
||||
#: qt/ignore_list_dialog.py:47 qt/problem_dialog.py:61
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Close"
|
||||
msgstr "閉じる"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "詳細"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "スキャンするタグ:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "トラック"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "アーティスト"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "アルバム"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "タイトル"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "ジャンル"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "年"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "単語の重み付け"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "類似の単語に一致する"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "ファイルの種類を混在させることができる"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "フィルタリング時に正規表現を使用する"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "削除または移動時に空のフォルダを削除する"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "同じファイルへの重複ハードリンクを無視する"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "デバッグモード(再起動が必要)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "異なる寸法の写真を一致させる"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
msgstr "フィルター硬度:"
|
||||
|
||||
#: qt/preferences_dialog.py:69
|
||||
msgid "More Results"
|
||||
msgstr "より多くの結果"
|
||||
|
||||
#: qt/preferences_dialog.py:74
|
||||
msgid "Fewer Results"
|
||||
msgstr "より少ない結果"
|
||||
|
||||
#: qt/preferences_dialog.py:81
|
||||
msgid "Font size:"
|
||||
msgstr "フォントサイズ:"
|
||||
|
||||
#: qt/preferences_dialog.py:85
|
||||
msgid "Language:"
|
||||
msgstr "言語:"
|
||||
|
||||
#: qt/preferences_dialog.py:91 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy and Move:"
|
||||
msgstr "コピーと移動:"
|
||||
|
||||
#: qt/preferences_dialog.py:94 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Right in destination"
|
||||
msgstr "目的地で直接"
|
||||
|
||||
#: qt/preferences_dialog.py:95 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Recreate relative path"
|
||||
msgstr "相対パスを再作成"
|
||||
|
||||
#: qt/preferences_dialog.py:96 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Recreate absolute path"
|
||||
msgstr "絶対パスを再作成"
|
||||
|
||||
#: qt/preferences_dialog.py:99
|
||||
msgid "Custom Command (arguments: %d for dupe, %r for ref):"
|
||||
msgstr "カスタムコマンド (引数:重複の場合は%d、参照の場合は%r):"
|
||||
|
||||
#: qt/preferences_dialog.py:174
|
||||
msgid "dupeGuru has to restart for language changes to take effect."
|
||||
msgstr "言語の変更を有効にするには、dupeGuruを再起動する必要があります。"
|
||||
|
||||
#: qt/prioritize_dialog.py:75 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Re-Prioritize duplicates"
|
||||
msgstr "重複を再優先する"
|
||||
|
||||
#: qt/prioritize_dialog.py:79 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"Add criteria to the right box and click OK to send the dupes that correspond"
|
||||
" the best to these criteria to their respective group's reference position. "
|
||||
"Read the help file for more information."
|
||||
msgstr ""
|
||||
"右側のボックスに基準を追加し、[OK]をクリックして、これらの基準に最もよく対応する複製をそれぞれのグループの参照位置に送信します。 "
|
||||
"詳細については、ヘルプファイルをお読みください。"
|
||||
|
||||
#: qt/problem_dialog.py:33 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Problems!"
|
||||
msgstr "問題!"
|
||||
|
||||
#: qt/problem_dialog.py:37 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid ""
|
||||
"There were problems processing some (or all) of the files. The cause of "
|
||||
"these problems are described in the table below. Those files were not "
|
||||
"removed from your results."
|
||||
msgstr ""
|
||||
"一部(またはすべて)のファイルの処理に問題がありました。 これらの問題の原因を次の表に示します。 これらのファイルは結果から削除されませんでした。"
|
||||
|
||||
#: qt/problem_dialog.py:56
|
||||
msgid "Reveal Selected"
|
||||
msgstr "選択したものを明らかにする"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
msgstr "作用"
|
||||
|
||||
#: qt/result_window.py:58 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show Dupes Only"
|
||||
msgstr "複製のみを表示"
|
||||
|
||||
#: qt/result_window.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show Delta Values"
|
||||
msgstr "デルタ値を表示"
|
||||
|
||||
#: qt/result_window.py:60
|
||||
msgid "Send Marked to Recycle Bin..."
|
||||
msgstr "マークされたものをごみ箱に送る..."
|
||||
|
||||
#: qt/result_window.py:61 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Move Marked to..."
|
||||
msgstr "マークされたものを移動..."
|
||||
|
||||
#: qt/result_window.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy Marked to..."
|
||||
msgstr "マークされたものをコピー..."
|
||||
|
||||
#: qt/result_window.py:63 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Marked from Results"
|
||||
msgstr "結果からマークされたものを削除"
|
||||
|
||||
#: qt/result_window.py:64 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Re-Prioritize Results..."
|
||||
msgstr "結果を再優先する..."
|
||||
|
||||
#: qt/result_window.py:67 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove Selected from Results"
|
||||
msgstr "結果から選択したアイテムを削除"
|
||||
|
||||
#: qt/result_window.py:71 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Add Selected to Ignore List"
|
||||
msgstr "選択したアイテムを無視リストに追加"
|
||||
|
||||
#: qt/result_window.py:75 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Make Selected into Reference"
|
||||
msgstr "選択したアイテムを参照にする"
|
||||
|
||||
#: qt/result_window.py:77 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Open Selected with Default Application"
|
||||
msgstr "デフォルトのアプリケーションで選択を開く"
|
||||
|
||||
#: qt/result_window.py:80
|
||||
msgid "Open Containing Folder of Selected"
|
||||
msgstr "選択したアイテムのコンテナフォルダを開く"
|
||||
|
||||
#: qt/result_window.py:82 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Rename Selected"
|
||||
msgstr "選択したアイテムの名前を変更する"
|
||||
|
||||
#: qt/result_window.py:83 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark All"
|
||||
msgstr "すべてのアイテムをマークする"
|
||||
|
||||
#: qt/result_window.py:84 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark None"
|
||||
msgstr "何もマークしない"
|
||||
|
||||
#: qt/result_window.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Invert Marking"
|
||||
msgstr "マーキングを反転"
|
||||
|
||||
#: qt/result_window.py:86 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mark Selected"
|
||||
msgstr "選択したアイテムにマークを付け"
|
||||
|
||||
#: qt/result_window.py:87
|
||||
msgid "Export To HTML"
|
||||
msgstr "HTMLにエクスポート"
|
||||
|
||||
#: qt/result_window.py:88
|
||||
msgid "Export To CSV"
|
||||
msgstr "CSVにエクスポート"
|
||||
|
||||
#: qt/result_window.py:89 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Save Results..."
|
||||
msgstr "結果を保存する"
|
||||
|
||||
#: qt/result_window.py:90 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Invoke Custom Command"
|
||||
msgstr "カスタムコマンドを呼び出す"
|
||||
|
||||
#: qt/result_window.py:102
|
||||
msgid "Mark"
|
||||
msgstr "マーク"
|
||||
|
||||
#: qt/result_window.py:106 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Columns"
|
||||
msgstr "コラム"
|
||||
|
||||
#: qt/result_window.py:163
|
||||
msgid "Reset to Defaults"
|
||||
msgstr "既定値にリセット"
|
||||
|
||||
#: qt/result_window.py:185
|
||||
msgid "{} Results"
|
||||
msgstr "{}結果"
|
||||
|
||||
#: qt/result_window.py:193 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Dupes Only"
|
||||
msgstr "複製のみ"
|
||||
|
||||
#: qt/result_window.py:194
|
||||
msgid "Delta Values"
|
||||
msgstr "デルタ値"
|
||||
|
||||
#: qt/result_window.py:310 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "結果を保存するファイルを選択してください"
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "より小さいファイルは無視"
|
||||
|
||||
#: qt/se/preferences_dialog.py:52 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "KB"
|
||||
msgstr "KB"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "%@ Results"
|
||||
msgstr "%@ 結果"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Action"
|
||||
msgstr "作用"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Add New Folder..."
|
||||
msgstr "新しいフォルダを追加..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Advanced"
|
||||
msgstr "高度"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Automatically check for updates"
|
||||
msgstr "更新を自動的にチェック"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Basic"
|
||||
msgstr "基本"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Bring All to Front"
|
||||
msgstr "すべてを前面に出す"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Check for update..."
|
||||
msgstr "更新を確認..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Close Window"
|
||||
msgstr "ウィンドウを閉じる"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Copy"
|
||||
msgstr "コピー"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Custom command (arguments: %d for dupe, %r for ref):"
|
||||
msgstr "カスタムコマンド (引数:重複の場合は%d、参照の場合は%r):"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Cut"
|
||||
msgstr "カット"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Delta"
|
||||
msgstr "デルタ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details of Selected File"
|
||||
msgstr "選択したファイルの詳細"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details Panel"
|
||||
msgstr "詳細パネル"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Directories"
|
||||
msgstr "ディレクトリ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru"
|
||||
msgstr "dupeGuru"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Preferences"
|
||||
msgstr "dupeGuruの設定"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Results"
|
||||
msgstr "dupeGuruの結果"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Website"
|
||||
msgstr "dupeGuruウェブサイト"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Edit"
|
||||
msgstr "編集"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Export Results to CSV"
|
||||
msgstr "結果をCSVにエクスポート"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Export Results to XHTML"
|
||||
msgstr "結果をXHTMLにエクスポート"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Fewer results"
|
||||
msgstr "より少ない結果"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter"
|
||||
msgstr "フィルタ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter hardness:"
|
||||
msgstr "フィルター硬度:"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Filter Results..."
|
||||
msgstr "結果のフィルタリング"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Folder Selection Window"
|
||||
msgstr "フォルダ選択ウィンドウ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Font Size:"
|
||||
msgstr "フォントサイズ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Hide dupeGuru"
|
||||
msgstr "dupeGuruを隠す"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Hide Others"
|
||||
msgstr "他を隠す"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore files smaller than:"
|
||||
msgstr "以下よりも小さいファイルは無視:"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Load from file..."
|
||||
msgstr "ファイルからロード..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Minimize"
|
||||
msgstr "最小化する"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Mode"
|
||||
msgstr "モード"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "More results"
|
||||
msgstr "より多くの結果"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "ペースト"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Preferences..."
|
||||
msgstr "環境設定"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Quick Look"
|
||||
msgstr "クイックルック"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Quit dupeGuru"
|
||||
msgstr "dupeGuruを終了"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reset to Default"
|
||||
msgstr "デフォルトにリセット"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reset To Defaults"
|
||||
msgstr "既定値にリセット"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal"
|
||||
msgstr "表す"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Reveal Selected in Finder"
|
||||
msgstr "Finderで選択したものを表示"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select All"
|
||||
msgstr "すべて選択"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Send Marked to Trash..."
|
||||
msgstr "マークされたアイテムをゴミ箱に送る..."
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Services"
|
||||
msgstr "サービス"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Show All"
|
||||
msgstr "すべて表示"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Start Duplicate Scan"
|
||||
msgstr "重複スキャンを開始"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "The name '%@' already exists."
|
||||
msgstr "'%@'名はすでに存在します。"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Window"
|
||||
msgstr "ウィンドウ"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Zoom"
|
||||
msgstr "ズーム"
|
||||
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "除外フィルター"
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "スキャン結果"
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "ディレクトリをロード..."
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "ディレクトリを保存..."
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "ロードするディレクトリファイルを選択してください"
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "dupeGuruのディレクトリファイル (*.dupegurudirs)"
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "ディレクトリを保存するファイルを選択してください。"
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "dupeGuruのディレクトリファイル (*.dupegurudirs)"
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "追加"
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "デフォルトに戻す"
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "テスト文字列"
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "ここではPythonの正規表現を入力して..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr "ここにファイルシステムのパスまたはファイル名を入力してください..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"これらの(大文字と小文字を区別する)Python正規表現は、スキャン中にファイルを除外します。 <br>ディレクターの名前が正規表現の1つと一致する場合、ディレクトリの<strong>デフォルト状態</strong>は[ディレクトリ]タブで[除外]に設定されます。 <br>収集されたファイルごとに、2つのテストがそれぞれに対して実行され、それらをフィルターで除外するかどうかが決定されます:<br><li>1.パス区切り文字が含まれていない正規表現は、ファイル名のみと比較されます。</li>\n"
|
||||
"<li>2.パス区切り文字が含まれていない正規表現は、ファイルへのフルパスと比較されます。</li>\n"
|
||||
"例:「My Pictures」ディレクトリからのみ.PNGファイルを除外する場合:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>偽のパスを貼り付けることで、テスト文字列機能を使用して正規表現をテストできます:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
|
||||
"一致する正規表現が強調表示されます。<br>ハイライトが少なくとも1つある場合、テストされたパスはスキャン中に無視されます。<br><br>ピリオド「。」で始まるディレクトリとファイル デフォルトでは除外されます。<br><br>"
|
||||
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "コンパイルエラー:"
|
||||
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "ズーム増やす"
|
||||
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "ズームを小さく"
|
||||
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "通常サイズ"
|
||||
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "最適"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "画像キャッシュモード:"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr "ビューアツールバーのテーマアイコンを上書きする"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr "テーマエンジンによって提供されるアイコンの代わりに、独自の内部アイコンを使用します。"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "画像ビューアにスクロールバーを表示する"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr "表示された画像がビューポートに適合しない場合に、ビュー全体にスクロールバーを表示する。"
|
||||
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr "タブバーのデフォルトの位置を使用する(再起動が必要)"
|
||||
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"タブバーをメインメニューの横ではなく下に配置する。\n"
|
||||
"MacOSでは、代わりにタブバーがウィンドウの幅を埋める。"
|
||||
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "参照のために太字を使用する"
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "参照の前景色:"
|
||||
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "参照の背景色:"
|
||||
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "デルタ値の背景色:"
|
||||
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "タイトルバーを表示し、ドッキングできます。"
|
||||
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr "タイトルバーが非表示になっているときに、修飾キーを使用してフローティングウィンドウをドラッグできます。"
|
||||
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr "タイトルバーは、ウィンドウがドッキングされている間のみ無効にできます。"
|
||||
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "垂直タイトルバー"
|
||||
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr "タイトルバーを上部の水平から左側の垂直に変更する"
|
||||
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "タブバーを表示"
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"これらの(大文字と小文字を区別する)Python正規表現は、スキャン中にファイルを除外します。 <br>また、ディレクトリの名前が選択した正規表現の1つと一致する場合、ディレクトリの<strong>デフォルト状態</strong>は[ディレクトリ]タブで「除外」に設定されます。<br>収集された各ファイルのために、二つの試験は完全にそれを無視するか否かを決定するために実行される:<br><li>1.パス区切り文字が含まれていない正規表現は、ファイル名のみと比較されます。</li>\n"
|
||||
"<li>2.少なくとも1つのパス区切り文字を含む正規表現は、ファイルへのフルパスと比較されます。</li>\n"
|
||||
"<br>例:「My Pictures」ディレクトリからのみ.PNGファイルを除外する場合:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>テストフィールドに偽のパスを貼り付けた後、[テスト文字列]ボタンを使用して正規表現をテストできます:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
|
||||
"一致する正規表現が強調表示されます。<br>ハイライトが少なくとも1つある場合、テストされたパスまたはファイル名はスキャン中に無視されます。<br><br>ピリオド「.」で始まるディレクトリとファイル デフォルトでは除外されます。<br><br>"
|
||||
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "結果"
|
||||
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "一般的なインターフェイス"
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "結果表"
|
||||
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "詳細ウィンドウ"
|
||||
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "一般"
|
||||
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "表示"
|
||||
@@ -1,123 +1,122 @@
|
||||
# Translators:
|
||||
# woosuk park <bjh13579@gmail.com>, 2015
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2015-01-24 07:43+0000\n"
|
||||
"Last-Translator: woosuk park <bjh13579@gmail.com>\n"
|
||||
"Language-Team: Korean (http://www.transifex.com/projects/p/dupeguru/language/ko/)\n"
|
||||
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2021\n"
|
||||
"Language-Team: Korean (https://www.transifex.com/voltaicideas/teams/116153/ko/)\n"
|
||||
"Language: ko\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: ko\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "파일 경로"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "에러 메시지"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "종류"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "폴더"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "폴더명"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "크기"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "수정날짜"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "길이"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "비트레이트"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "샘플레이트"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "폴더명"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "폴더"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "크기 (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "시간"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "샘플레이트"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "종류"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "수정날짜"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "곡명"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "아티스트"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "앨범"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "장르"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "년도"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "트랙 번호"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "주석"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "일치정도"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "사용된 단어수"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "중복파일 갯수"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "치수"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "크기 (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "EXIF 타임스태프"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "크기"
|
||||
|
||||
@@ -1,265 +1,250 @@
|
||||
# Translators:
|
||||
# woosuk park <bjh13579@gmail.com>, 2015
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2015-01-24 07:38+0000\n"
|
||||
"Last-Translator: woosuk park <bjh13579@gmail.com>\n"
|
||||
"Language-Team: Korean (http://www.transifex.com/projects/p/dupeguru/language/ko/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Korean (https://www.transifex.com/voltaicideas/teams/116153/ko/)\n"
|
||||
"Language: ko\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: ko\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
msgstr "표시된 중복 항목이 없습니다. 아무것도하지 않았습니다."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr ""
|
||||
msgstr "선택한 중복 항목이 없습니다. 아무것도하지 않았습니다."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
msgstr ""
|
||||
msgstr "한 번에 많은 파일을 열려고합니다. 그 파일을 여는 것에 따라 그렇게하면 꽤 엉망이 될 수 있습니다. 계속하다?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr ""
|
||||
msgstr "중복 검색"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "불러오는중"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "이동중"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "복사중"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "휴지통으로 보내기"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
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:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "중복 파일이 없습니다."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr ""
|
||||
msgstr "표시된 모든 파일이 성공적으로 복사되었습니다."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr ""
|
||||
msgstr "표시된 모든 파일이 성공적으로 이동되었습니다."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr ""
|
||||
msgstr "표시된 모든 파일이 성공적으로 휴지통으로 전송되었습니다."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "파일을로드 할 수 없습니다 : {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}' 는 이미 목록에 있습니다."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' 가 존재하지 않습니다."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
msgstr ""
|
||||
msgstr "선택된 %d개의 일치 항목은 모든 후속 검색에서 무시됩니다. 계속하다?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "복사"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "표시된 파일을 복사 할 디렉토리를 선택하십시오"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "이동"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "표시된 파일을 이동할 디렉토리를 선택하십시오"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr ""
|
||||
msgstr "내 보낸 CSV의 대상을 선택하십시오"
|
||||
|
||||
#: core/app.py:518
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:719
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:751
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:810
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr ""
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
msgid "0 matches found"
|
||||
msgstr ""
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
msgid "%d matches found"
|
||||
msgstr ""
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr ""
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr ""
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr ""
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr ""
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
msgid "Preparing for matching"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
msgstr "파일에 쓸 수 없습니다 : {}"
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr "사용자 지정 명령을 설정하지 않았습니다. 기본 설정에서 설정하십시오."
|
||||
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "결과에서 %d 개의 파일을 제거하려고합니다. 계속하다?"
|
||||
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{} 개의 중복 그룹이 우선 순위 재 지정으로 변경되었습니다."
|
||||
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "선택한 디렉토리에 스캔 가능한 파일이 없습니다."
|
||||
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "스캔 할 파일 수집"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d 폐기)"
|
||||
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "일치하는 항목이 없습니다"
|
||||
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d개의 일치 항목을 찾았습니다."
|
||||
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "{}개의 파일을 휴지통으로 보내고 있습니다."
|
||||
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "정규식"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr "무시 목록에서 항목 %d개를 정말로 제거 하시겠습니까?"
|
||||
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
msgstr "파일 이름"
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
msgstr "파일 이름 - 필드"
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
msgstr "파일 이름 - 필드 (주문 없음)"
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
msgstr "태그"
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
msgstr "내용"
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "%d/%d 사진 분석"
|
||||
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "%d/%d 청크 매치 수행"
|
||||
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "매칭 준비"
|
||||
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "%d/%d 일치 확인"
|
||||
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "%d/%d 사진의 EXIF 읽기"
|
||||
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "EXIF 타임 스탬프"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "없음"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "숫자로 끝남"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "숫자로 끝나지 않음"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "최장"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "최단"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "제일 높은"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "최저"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "최신"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "가장 오래된"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) 개의 중복이 표시되었습니다."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr "필터: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "%d/%d 개의 파일을 읽을 수 있습니다."
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "%d/%d 개 파일의 메타 데이터를 읽었습니다."
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "거의 완료되었습니다! 결과를 만지작 거리는 중..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "휴지통으로 보내기"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr ""
|
||||
msgstr "폴더"
|
||||
|
||||
@@ -1,123 +1,122 @@
|
||||
# Translators:
|
||||
# Kees Duvekot, 2015
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2015-07-11 12:36+0000\n"
|
||||
"Last-Translator: Kees Duvekot\n"
|
||||
"Language-Team: Dutch (http://www.transifex.com/p/dupeguru/language/nl/)\n"
|
||||
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2021\n"
|
||||
"Language-Team: Dutch (https://www.transifex.com/voltaicideas/teams/116153/nl/)\n"
|
||||
"Language: nl\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: nl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Bestand locatie"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Fout Melding"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Kind"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Folder"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Bestandsnaam"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Grote"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Aanpassing"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Tijdsduur"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Bitrate"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Sample frequentie"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Bestandsnaam"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Folder"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Grote (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Tijd"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Sample Frequentie"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Kind"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Aanpassing"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Artiest"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Jaar"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Track nummer"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Commentaar"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Zekerheid %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Woorden gebruikt"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Dubbel telling"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Afmetingen"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Grote (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "EXIF Tijdstip"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Grote"
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
# Translators:
|
||||
# Kees Duvekot, 2015
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2015-07-11 12:39+0000\n"
|
||||
"Last-Translator: Kees Duvekot\n"
|
||||
"Language-Team: Dutch (http://www.transifex.com/p/dupeguru/language/nl/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Dutch (https://www.transifex.com/voltaicideas/teams/116153/nl/)\n"
|
||||
"Language: nl\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: nl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "Er zijn geen gemarkeerde dubbelingen. Er is niks gedaam"
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "Er zijn geen dubelingen geselecteerd. Er is niks gedaan"
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
@@ -28,27 +28,27 @@ msgstr ""
|
||||
"Afhankelijk met welke applicaties die bestanden worden geopened kan het best"
|
||||
" een rommeltje worden. Doorgaan?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Dubbelingen aan het opsporen"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Laden"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Verplaatsen"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Kopieeren"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Naar de prullebak verplaatsen"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -56,31 +56,35 @@ msgstr ""
|
||||
"Er is nog een vorige actie bezig. Je kan nu nog geen nieuwe actie starten. "
|
||||
"Wacht een paar seconden en probeer het opnieuw"
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Geen dubbelingen gevonden"
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "Alle gemarkeerde bestanden zijn succesvol gekopieerd."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "Alle gemarkeerde bestanden zijn succesvol verplaatst."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr "Alle gemarkeerde bestanden zijn met succes in de prullenbak gedaan."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Kan bestand niet laden: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}'staat al in de lijst."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' bestaat niet."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
@@ -88,193 +92,176 @@ msgstr ""
|
||||
"Alle geselecteerde %d overeenkomsten zullen in toekomstige onderzoeken "
|
||||
"worden overgslagen. Doorgaan?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "kopieer"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "verplaats"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr ""
|
||||
"Selecteer een map waar u de gemarkeerde bestanden naartoe wilt kopiëren"
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr ""
|
||||
"Selecteer een map waar u de gemarkeerde bestanden naartoe wilt verplaatsen"
|
||||
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Selecteer een locatie voor de CSV export"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Kan niet schrijven naar bestand: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
"Er is nog geen \"aangepaste opdracht\" ingericht. Je kan dit doen bij de "
|
||||
"voorkeuren."
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr ""
|
||||
"Je staat op het punt om %d bestanden te verwijderen uit de resultaten. "
|
||||
"Doorgaan?"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr ""
|
||||
"{} dubbelingen groepen waren veranderd door de prioriteits verschuiving."
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Bestanden aan het verzamelen om te onderzoeken"
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr ""
|
||||
"De geselecteerde folders bevatten geen bestanden die onderzocht kunnen "
|
||||
"worden."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Bestanden aan het verzamelen om te onderzoeken"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d weggelaten)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "0 overeenkomsten gevonden"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d overeenkomsten gevonden"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Bestands grote van %d/%d bestanden aan het lezen."
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "Je verplaatst {} bestanden naar de prullenbak"
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Normale Uitdrukkingen"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr ""
|
||||
"Weet je zeker dat je all %d regels uit de overslaan lijst wilt verwijderen?"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr "Geen"
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Bestandsnaam"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Eindigt met nummer"
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Bestandsnaam - Velden"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Eindigt niet met een nummer"
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Bestandsnaam - Velden (geen volgorde)"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr "langste"
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr "kortste"
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Inhoud"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "hoogste"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "laagste"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "nieuwste"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "oudste"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s /%s) dubbelingen gemarkeerd"
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr "filter: %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Metadata van %d/%d bestanden gelezen"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "%d van de %d afbeeldingen aan het analyseren"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "%d van de %d bulk overeenkomsten uitgevoerd"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Voorbereiden voor dubbelingen bepaling"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "%d van de %d overeenkomsten nagekeken"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "EXIF informatie van %d van de %d afbeeldingen gelezen"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "EXIF-tijdstempel"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Geen"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Eindigt met nummer"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Eindigt niet met een nummer"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "langste"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "kortste"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "hoogste"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "laagste"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "nieuwste"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "oudste"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s /%s) dubbelingen gemarkeerd"
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr "filter: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Bestands grote van %d/%d bestanden aan het lezen."
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Metadata van %d/%d bestanden gelezen"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "Bijna klaar! Gehannes met resultaten..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "Bestanden naar de prullebak aan het verplaatsen"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "%d van %d overeenkomsten gegroepeerd"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Verkeerde overeenkomsten aan het verwijderen"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr "% d van de %d overeenkomsten vergeleken met de overslaan lijst"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Groepen aan het priotiriseren"
|
||||
msgstr "Mappen"
|
||||
|
||||
@@ -1,25 +1,34 @@
|
||||
# Translators:
|
||||
# Kees Duvekot, 2015
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2015-07-11 12:34+0000\n"
|
||||
"Last-Translator: Kees Duvekot\n"
|
||||
"Language-Team: Dutch (http://www.transifex.com/p/dupeguru/language/nl/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Dutch (https://www.transifex.com/voltaicideas/teams/116153/nl/)\n"
|
||||
"Language: nl\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: nl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Afsluiten"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Opties"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "Overslaan lijst"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Afbeelding cache leegmaken"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "dupeGuru Help"
|
||||
@@ -32,6 +41,14 @@ msgstr "Over dupeGuru"
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Debug Log openen"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Weet je zeker dat je de afbeeldings-analyse cache wilt verwijderen"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Afbeelding cache leeggemaakt"
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "{} bestand (*.{})"
|
||||
@@ -128,6 +145,30 @@ msgstr "Help"
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Recente resultaten inlezen"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Toepassingsmodus:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Muziek"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Beeld"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Standaard"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Onderzoeks type"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Meer Opties"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr ""
|
||||
@@ -204,9 +245,78 @@ msgstr "opheffen"
|
||||
msgid "Close"
|
||||
msgstr "sluiten"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Onderzoeks type"
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "details"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Labels die onderzocht moeten worden"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Nummer"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artiest"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Jaar"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Word gewicht"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "vergelijk gelijkwaardige woorden"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Bestandsformaten mogen doorelkaar gebruikt worden"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Gebruik \"reguliere expressies\" tijdens het filteren"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Verwijder lege folders tijdens weggooien of verplaatsen"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "negeer dubbelingen die hard gelinkt zijn aan het zelfde bestand"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Debug stand (herstart is nodig)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Afbeeldingen met afwijkende afmetingen toch gebruiken bij onderzoek"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
@@ -284,12 +394,6 @@ msgstr ""
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Toon selectie"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "details"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
@@ -407,85 +511,6 @@ msgstr "Verschillen"
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Selecteerd een bestand om het resultaat op te slaan"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Labels die onderzocht moeten worden"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Nummer"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artiest"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Album"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Titel"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Genre"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Jaar"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Word gewicht"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "vergelijk gelijkwaardige woorden"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Bestandsformaten mogen doorelkaar gebruikt worden"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Gebruik \"reguliere expressies\" tijdens het filteren"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Verwijder lege folders tijdens weggooien of verplaatsen"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "negeer dubbelingen die hard gelinkt zijn aan het zelfde bestand"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Debug stand (herstart is nodig)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Afbeeldingen met afwijkende afmetingen toch gebruiken bij onderzoek"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Afbeelding cache leegmaken"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Weet je zeker dat je de afbeeldings-analyse cache wilt verwijderen"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Afbeelding cache leeggemaakt"
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "Negeer bestanden kleiner dan"
|
||||
@@ -642,11 +667,6 @@ msgstr "Meer resultaten"
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Opties"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Plakken"
|
||||
@@ -711,116 +731,216 @@ msgstr "Venster"
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Uitsluitingsfilters"
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Scanresultaten"
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "Mappen laden ..."
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Mappen opslaan ..."
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Selecteer een directory-bestand om te laden"
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "dupeGuru-mappen (*.dupegurudirs)"
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "Selecteer een bestand om uw mappen in op te slaan"
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "dupeGuru-mappen (*.dupegurudirs)"
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Toevoegen"
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Herstel de standaardinstellingen"
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "Test tekenreeks"
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "Typ hier een reguliere expressie voor python..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr "Typ hier een bestandssysteempad of bestandsnaam ..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"Deze (hoofdlettergevoelige) reguliere expressies van Python filteren bestanden uit tijdens scans.<br>Mappen hebben ook hun <strong>standaardstatus</strong> ingesteld op \"Uitgesloten\" in het tabblad Mappen als hun naam overeenkomt met een van de reguliere expressies. <br>Voor elk verzameld bestand worden twee tests uitgevoerd op elk van hen om te bepalen of ze al dan niet moeten worden uitgefilterd:<br><li>1. Reguliere expressies zonder padscheidingsteken worden alleen vergeleken met de bestandsnaam.</li>\n"
|
||||
"<li>2. Reguliere expressies zonder padscheidingsteken worden vergeleken met het volledige pad naar het bestand.</li><br>\n"
|
||||
"Voorbeeld: als u de PNG-bestanden alleen uit de map \"My Pictures\" wilt filteren:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>U kunt de reguliere expressie testen met de functie teststring door er een neppad in te plakken:<br><code> C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
|
||||
"Overeenkomende reguliere expressies worden gemarkeerd.<br>Als er ten minste één highlight is, wordt het geteste pad genegeerd tijdens scans.<br><br>Mappen en bestanden die beginnen met een punt '.' worden standaard uitgefilterd.<br><br>"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "Compilatiefout:"
|
||||
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "Zoom vergroten"
|
||||
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "Zoom verkleinen"
|
||||
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "Normale grootte"
|
||||
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "Beste pasvorm"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Fotocachemodus:"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr "Overschrijf themapictogrammen in de werkbalk van de viewer"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
"Gebruik onze eigen interne pictogrammen in plaats van die van de thema-"
|
||||
"engine"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "Toon schuifbalken in afbeeldingsviewers"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
"Als de weergegeven afbeelding niet in de viewport past, laat dan "
|
||||
"schuifbalken zien om de weergave rondom te omspannen"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr ""
|
||||
"Gebruik de standaardpositie voor de tabbalk (opnieuw opstarten vereist)"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Plaats de tabbalk onder het hoofdmenu in plaats van ernaast.\n"
|
||||
"Op MacOS vult de tabbalk in plaats daarvan de breedte van het venster."
|
||||
|
||||
#~ msgid "Removing dead tracks from your iTunes Library"
|
||||
#~ msgstr ""
|
||||
#~ "Bezig met niet bestaande nummers uit je iTunes bibliotheek te verwijderen"
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "Gebruik vet lettertype voor referenties"
|
||||
|
||||
#~ msgid "Scanning the iTunes Library"
|
||||
#~ msgstr "iTunes biliotheek aan het doorzoeken"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "Referentie voorgrondkleur:"
|
||||
|
||||
#~ msgid "Sending dupes to the Trash"
|
||||
#~ msgstr "Dubbelingen naar de prullenbak aan het verplaatsen"
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "Referentie achtergrondkleur:"
|
||||
|
||||
#~ msgid "Talking to iTunes. Don't touch it!"
|
||||
#~ msgstr "Bezig met communicatie met iTunes. Afblijven!"
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "Delta voorgrondkleur:"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||
#~ msgstr ""
|
||||
#~ "Je iTunes bibliotheek bevat %d niet bestaande nummer die verwijderd kunnen "
|
||||
#~ "worden. Doorgaan?"
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "Toon de titelbalk en kan worden gedokt"
|
||||
|
||||
#~ msgid "You have no dead tracks in your iTunes Library"
|
||||
#~ msgstr ""
|
||||
#~ "Er zijn geen niet bestaande nummers in je iTunes bilbiotheek aangetroffen"
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
"Terwijl de titelbalk verborgen is, gebruik maken van de speciale toets op "
|
||||
"het zwevende venster slepen"
|
||||
|
||||
#~ msgid "The iTunes application couldn't be found."
|
||||
#~ msgstr "De iTunes toepassing kan niet gevonden worden"
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
"De titelbalk kan alleen worden uitgeschakeld terwijl het venster is gedokt"
|
||||
|
||||
#~ msgid "Talking to iPhoto. Don't touch it!"
|
||||
#~ msgstr "Bezig met communicatie met iPhoto. Afblijven!"
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "Verticale titelbalk"
|
||||
|
||||
#~ msgid "Talking to Aperture. Don't touch it!"
|
||||
#~ msgstr "Met Aperture aan het communiceren. Afblijven!"
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr "Wijzig de titelbalk van horizontaal geplaatst, verticale links"
|
||||
|
||||
#~ msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||
#~ msgstr ""
|
||||
#~ "Verwijderde Aperture afbeeldingen zijn verplaats naar de \"dupeGuru Trash\" "
|
||||
#~ "project"
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "Tabbladbalk weergeven"
|
||||
|
||||
#~ msgid "The iPhoto application couldn't be found."
|
||||
#~ msgstr "de iPhoto toepassing kan niet gevonden worden"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"Deze (hoofdlettergevoelige) reguliere expressies van Python filteren bestanden uit tijdens scans.<br>Mappen hebben ook hun <strong>standaardstatus</strong> ingesteld op Uitgesloten in het tabblad Mappen als hun naam toevallig overeenkomt met een van de geselecteerde reguliere expressies. <br>Voor elk verzameld bestand worden twee tests uitgevoerd om te bepalen of het al dan niet volledig moet worden genegeerd:<br><li>1. Reguliere expressies zonder padscheidingsteken worden alleen vergeleken met de bestandsnaam.</li>\n"
|
||||
"<li>2. Reguliere expressies met ten minste één padscheidingsteken worden vergeleken met het volledige pad naar het bestand.</li><br>\n"
|
||||
"<br>Voorbeeld: als u .PNG-bestanden alleen uit de map \"My Pictures\" wilt filteren:<code>.*My\\sPictures\\\\.*\\.png</code><br><br>U kunt de reguliere expressie testen met de \"test string\" -knop nadat u een neppad in het testveld hebt geplakt:<br><code> C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
|
||||
"Overeenkomende reguliere expressies worden gemarkeerd. <br>Als er ten minste één markering is, wordt het geteste pad of de bestandsnaam genegeerd tijdens het scannen.<br><br>Mappen en bestanden die beginnen met een punt '.' worden standaard uitgefilterd.<br><br>"
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Voorkeuren"
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Resultaten"
|
||||
|
||||
#~ msgid "Check for Update"
|
||||
#~ msgstr "Controleer nieuwere versie"
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "Algemene interface"
|
||||
|
||||
#~ msgid "Filename"
|
||||
#~ msgstr "Bestandsnaam"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Resultaattabel"
|
||||
|
||||
#~ msgid "Filename - Fields"
|
||||
#~ msgstr "Bestandsnaam - velden"
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Details Venster"
|
||||
|
||||
#~ msgid "Filename - Fields (No Order)"
|
||||
#~ msgstr "Bestandsnaam - velden (geen volgorde)"
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "Algemeen"
|
||||
|
||||
#~ msgid "Tags"
|
||||
#~ msgstr "Label"
|
||||
|
||||
#~ msgid "Contents"
|
||||
#~ msgstr "inhoud"
|
||||
|
||||
#~ msgid "Audio Contents"
|
||||
#~ msgstr "Geluidsinhoud"
|
||||
|
||||
#~ msgid "EXIF Timestamp"
|
||||
#~ msgstr "EXIF tijdstip"
|
||||
|
||||
#~ msgid "Folders"
|
||||
#~ msgstr "Folders"
|
||||
|
||||
#~ msgid "Add Aperture Library"
|
||||
#~ msgstr "Aperture biliotheek toevoegen"
|
||||
|
||||
#~ msgid "Add iPhoto Library"
|
||||
#~ msgstr "iPhoto bibliotheek toevoegen"
|
||||
|
||||
#~ msgid "Add iTunes Library"
|
||||
#~ msgstr "iTunes biliotheek toevoegen"
|
||||
|
||||
#~ msgid "Audio Content"
|
||||
#~ msgstr "geluidsinhoud"
|
||||
|
||||
#~ msgid "Content"
|
||||
#~ msgstr "inhoud"
|
||||
|
||||
#~ msgid "dupeGuru ME Preferences"
|
||||
#~ msgstr "dupeGuru ME voorkeuren"
|
||||
|
||||
#~ msgid "dupeGuru PE Preferences"
|
||||
#~ msgstr "dupeGuru PE voorkeuren"
|
||||
|
||||
#~ msgid "Remove Dead Tracks in iTunes"
|
||||
#~ msgstr "Niet bestaande nummer verwijderen in iTunes"
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Scherm"
|
||||
|
||||
@@ -1,121 +1,122 @@
|
||||
# Translators:
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2012-09-05 15:22+0000\n"
|
||||
"Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/dupeguru/language/pl_PL/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Polish (Poland) (https://www.transifex.com/voltaicideas/teams/116153/pl_PL/)\n"
|
||||
"Language: pl_PL\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: pl_PL\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\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/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr ""
|
||||
msgstr "Ścieżka pliku"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr ""
|
||||
msgstr "Komunikat o błędzie"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
msgstr "Trwanie"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr ""
|
||||
msgstr "Szybkość transmisji"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr ""
|
||||
msgstr "Samplerate"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Nazwa pliku"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Katalog"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr ""
|
||||
msgstr "Rozmiar (MB)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
msgstr "Czas"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr ""
|
||||
msgstr "Częstotliwość próbkowania"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Rodzaj"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Modyfikacja"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
msgstr "Tytuł"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr ""
|
||||
msgstr "Artysta"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr ""
|
||||
msgstr "Album"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr ""
|
||||
msgstr "Gatunek"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
msgstr "Rok"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr ""
|
||||
msgstr "Numer utworu"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
msgstr "Komentarz"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr ""
|
||||
msgstr "Mecz %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr ""
|
||||
msgstr "Użyte słowa"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr ""
|
||||
msgstr "Liczba duplikatów"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr ""
|
||||
msgstr "Wymiary"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr ""
|
||||
msgstr "Rozmiar (KB)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Sygnatura czasowa EXIF"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Rozmiar"
|
||||
|
||||
@@ -1,81 +1,90 @@
|
||||
# Translators:
|
||||
# mstefanski1987 <mstefanski1987@gmail.com>, 2014
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2014-06-09 16:28+0000\n"
|
||||
"Last-Translator: mstefanski1987 <mstefanski1987@gmail.com>\n"
|
||||
"Language-Team: Polish (Poland) (http://www.transifex.com/p/dupeguru/language/pl_PL/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Polish (Poland) (https://www.transifex.com/voltaicideas/teams/116153/pl_PL/)\n"
|
||||
"Language: pl_PL\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: pl_PL\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\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:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "Brak wykrytych duplikatów. Nic nie zrobiono."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "Brak wybranych duplikatów. Nic nie zrobiono."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
msgstr ""
|
||||
"Masz zamiar otworzyć wiele plików jednocześnie. W zależności od tego, za "
|
||||
"pomocą czego te pliki są otwierane, może to spowodować spory bałagan. "
|
||||
"Kontyntynuj?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr ""
|
||||
msgstr "Wyszukiwanie duplikatów"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
msgstr "Ładuję"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr ""
|
||||
msgstr "Przenoszę"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr ""
|
||||
msgstr "Kopiowanie"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr ""
|
||||
msgstr "Wysyłam do kosza"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
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 ""
|
||||
"Wciąż wisi tam poprzednia akcja. Nie możesz jeszcze rozpocząć nowego. "
|
||||
"Poczekaj kilka sekund i spróbuj ponownie."
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Nie znaleziono duplikatów."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr ""
|
||||
msgstr "Wszystkie zaznaczone pliki zostały pomyślnie skopiowane."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr ""
|
||||
msgstr "Wszystkie zaznaczone pliki zostały pomyślnie przeniesione."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr ""
|
||||
msgstr "Wszystkie zaznaczone pliki zostały pomyślnie wysłane do kosza."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Nie udało się załadować pliku: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "'{}' jest już na liście."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "'{}' nie istnieje."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
@@ -83,185 +92,168 @@ msgstr ""
|
||||
"Wszystkie zaznaczone %d duplikaty będą ignorowane w kolejnych skanach. "
|
||||
"Kontynuować?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "kopiuj"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Wybierz katalog, do którego chcesz skopiować zaznaczone pliki"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "przenieś"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "Wybierz katalog, do którego chcesz przenieść zaznaczone pliki"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr "Wybierz katalog do {} duplikatów"
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr ""
|
||||
msgstr "Wybierz miejsce docelowe dla eksportowanego pliku CSV"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Nie udało się zapisać do pliku: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
"Nie masz skonfigurowanego polecenia niestandardowego. Ustaw to w swoich "
|
||||
"preferencjach."
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr ""
|
||||
msgstr "Zamierzasz usunąć %d plików z wyników. Kontyntynuj?"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr ""
|
||||
msgstr "{} zduplikowanych grup zmieniono przez ponowne ustalenie priorytetów."
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr ""
|
||||
msgstr "Wybrane katalogi nie zawierają plik skanowalną."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Zbieranie plików do skanowania"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr ""
|
||||
msgstr "%s(%d odrzucone)"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr ""
|
||||
msgstr "Znaleziono 0 pasujących wyników"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr ""
|
||||
msgstr "Znaleziono %d pasujących wyników"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr ""
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr ""
|
||||
msgstr "Wysyłasz {} plików do Kosza"
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Wyrażenia regularne"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr ""
|
||||
msgstr "Czy na pewno chcesz usunąć wszystkie %d pozycji z listy ignorowanych?"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr ""
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr ""
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr ""
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr ""
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
msgid "Preparing for matching"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
msgstr "Nazwa pliku"
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
msgstr "Nazwa pliku - pola"
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
msgstr "Nazwa pliku - pola (bez kolejności)"
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
msgstr "Tagi"
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
msgstr "Treść"
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "Analizowane %d/%d zdjęć"
|
||||
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "Wykonano %d/%d dopasowań fragmentów"
|
||||
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Przygotowanie do dopasowania"
|
||||
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "Zweryfikowane %d/%d meczów"
|
||||
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "Przeczytaj EXIF z %d/%d zdjęć"
|
||||
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Sygnatura czasowa EXIF"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Nie"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Kończy się numerem"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Nie kończy się liczbą"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Najdłużej"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Najkrótsza"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Najwyższa"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Najniższa"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Najnowsza"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Najstarszy"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplikaty oznakowane."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr " filtr: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Odczytaj rozmiar %d/%d plików"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Przeczytaj metadane %d/%d plików"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "Prawie skończone! Porządkowanie wyników..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr ""
|
||||
msgstr "Katalogi"
|
||||
|
||||
@@ -1,125 +1,122 @@
|
||||
# Translators:
|
||||
# Vitu <xcoisas@me.com>, 2012-2013
|
||||
# Vitu <contact@brlingo.com>, 2013
|
||||
# Vitu <contact@brlingo.com>, 2012
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-11-20 11:53+0000\n"
|
||||
"Last-Translator: Vitu <contact@brlingo.com>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/dupeguru/language/pt_BR/)\n"
|
||||
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2021\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/voltaicideas/teams/116153/pt_BR/)\n"
|
||||
"Language: pt_BR\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Caminho"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Mensagem de Erro"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Tipo"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Pasta"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Nome do Arquivo"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Tamanho"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Modificado"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Duração"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Taxa de Bits"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Amostragem"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Nome do Arquivo"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Pasta"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Tamanho"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Duração"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Tamanho da Amostra"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Tipo"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Modificado"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Nome"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Álbum"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Gênero"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Ano"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Número da Faixa"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Comentário"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "% Precisão"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Palavras Usadas"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Duplicatas"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensões"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Tamanho"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "Timestamp EXIF"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Tamanho"
|
||||
|
||||
@@ -1,28 +1,25 @@
|
||||
# Translators:
|
||||
# Vitu <contact@brlingo.com>, 2013
|
||||
# Vitu <xcoisas@me.com>, 2012-2013
|
||||
# Vitu <contact@brlingo.com>, 2013
|
||||
# Vitu <contact@brlingo.com>, 2012
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-12-07 15:22+0000\n"
|
||||
"Last-Translator: hsoft <hsoft@hardcoded.net>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/dupeguru/language/pt_BR/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/voltaicideas/teams/116153/pt_BR/)\n"
|
||||
"Language: pt_BR\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: core/app.py:40
|
||||
#: core\app.py:42
|
||||
msgid "There are no marked duplicates. Nothing has been done."
|
||||
msgstr "Não há duplicatas marcadas. Nada foi feito."
|
||||
|
||||
#: core/app.py:41
|
||||
#: core\app.py:43
|
||||
msgid "There are no selected duplicates. Nothing has been done."
|
||||
msgstr "Não há duplicatas selecionadas. Nada foi feito."
|
||||
|
||||
#: core/app.py:42
|
||||
#: core\app.py:44
|
||||
msgid ""
|
||||
"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?"
|
||||
@@ -30,27 +27,27 @@ msgstr ""
|
||||
"Você está prestes a abrir muitos arquivos de uma vez. Problemas podem surgir"
|
||||
" dependendo de qual app seja usado para abri-los. Deseja continuar?"
|
||||
|
||||
#: core/app.py:65
|
||||
#: core\app.py:71
|
||||
msgid "Scanning for duplicates"
|
||||
msgstr "Buscando por duplicatas"
|
||||
|
||||
#: core/app.py:66
|
||||
#: core\app.py:72
|
||||
msgid "Loading"
|
||||
msgstr "Carregando"
|
||||
|
||||
#: core/app.py:67
|
||||
#: core\app.py:73
|
||||
msgid "Moving"
|
||||
msgstr "Movendo"
|
||||
|
||||
#: core/app.py:68
|
||||
#: core\app.py:74
|
||||
msgid "Copying"
|
||||
msgstr "Copiando"
|
||||
|
||||
#: core/app.py:69
|
||||
#: core\app.py:75
|
||||
msgid "Sending to Trash"
|
||||
msgstr "Movendo para o Lixo"
|
||||
|
||||
#: core/app.py:279
|
||||
#: core\app.py:308
|
||||
msgid ""
|
||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||
"Wait a few seconds, then try again."
|
||||
@@ -58,216 +55,201 @@ msgstr ""
|
||||
"Ainda há uma ação em andamento. Não é possível iniciar outra agora. Espere "
|
||||
"alguns segundos e tente novamente."
|
||||
|
||||
#: core/app.py:289
|
||||
#: core\app.py:318
|
||||
msgid "No duplicates found."
|
||||
msgstr "Nenhuma duplicata encontrada."
|
||||
|
||||
#: core/app.py:304
|
||||
#: core\app.py:333
|
||||
msgid "All marked files were copied successfully."
|
||||
msgstr "Todos os arquivos marcados foram copiados corretamente."
|
||||
|
||||
#: core/app.py:305
|
||||
#: core\app.py:334
|
||||
msgid "All marked files were moved successfully."
|
||||
msgstr "Todos os arquivos marcados foram relocados corretamente."
|
||||
|
||||
#: core/app.py:306
|
||||
#: core\app.py:335
|
||||
msgid "All marked files were successfully sent to Trash."
|
||||
msgstr "Todos os arquivos marcados foram movidos para o Lixo corretamente."
|
||||
|
||||
#: core/app.py:368
|
||||
#: core\app.py:343
|
||||
msgid "Could not load file: {}"
|
||||
msgstr "Não foi possível carregar o arquivo: {}"
|
||||
|
||||
#: core\app.py:399
|
||||
msgid "'{}' already is in the list."
|
||||
msgstr "‘{}’ já está na lista."
|
||||
|
||||
#: core/app.py:370
|
||||
#: core\app.py:401
|
||||
msgid "'{}' does not exist."
|
||||
msgstr "‘{}’ não existe."
|
||||
|
||||
#: core/app.py:379
|
||||
#: core\app.py:410
|
||||
msgid ""
|
||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||
"Continue?"
|
||||
msgstr "Excluir %d duplicata(s) selecionada(s) de escaneamentos posteriores?"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "copy"
|
||||
msgstr "copiar"
|
||||
#: core\app.py:486
|
||||
msgid "Select a directory to copy marked files to"
|
||||
msgstr "Selecione um diretório onde deseja copiar os arquivos marcados"
|
||||
|
||||
#: core/app.py:450
|
||||
msgid "move"
|
||||
msgstr "mover"
|
||||
#: core\app.py:487
|
||||
msgid "Select a directory to move marked files to"
|
||||
msgstr "Selecione um diretório para onde deseja mover os arquivos marcados"
|
||||
|
||||
#: core/app.py:451
|
||||
msgid "Select a directory to {} marked files to"
|
||||
msgstr "Selecione uma pasta para {} os arquivos marcados"
|
||||
|
||||
#: core/app.py:490
|
||||
#: core\app.py:527
|
||||
msgid "Select a destination for your exported CSV"
|
||||
msgstr "Selecione uma pasta para o CSV exportado"
|
||||
|
||||
#: core/app.py:518
|
||||
#: core\app.py:534 core\app.py:801 core\app.py:811
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr "Não foi possível gravar no arquivo: {}"
|
||||
|
||||
#: core\app.py:559
|
||||
msgid "You have no custom command set up. Set it up in your preferences."
|
||||
msgstr ""
|
||||
"Você não possui nenhum comando personalizado. Crie um nas preferências."
|
||||
|
||||
#: core/app.py:672 core/app.py:685
|
||||
#: core\app.py:727 core\app.py:740
|
||||
msgid "You are about to remove %d files from results. Continue?"
|
||||
msgstr "Remover %d arquivo(s) dos resultados?"
|
||||
|
||||
#: core/app.py:719
|
||||
#: core\app.py:774
|
||||
msgid "{} duplicate groups were changed by the re-prioritization."
|
||||
msgstr "{} grupos de duplicatas alterados ao repriorizar."
|
||||
|
||||
#: core/app.py:762
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Juntando arquivos para escanear"
|
||||
|
||||
#: core/app.py:751
|
||||
#: core\app.py:821
|
||||
msgid "The selected directories contain no scannable file."
|
||||
msgstr "As pastas selecionadas não contém arquivos escaneáveis."
|
||||
|
||||
#: core/app.py:810
|
||||
#: core\app.py:835
|
||||
msgid "Collecting files to scan"
|
||||
msgstr "Juntando arquivos para escanear"
|
||||
|
||||
#: core\app.py:891
|
||||
msgid "%s (%d discarded)"
|
||||
msgstr "%s (%d rejeitado(s))"
|
||||
|
||||
#: core/engine.py:222 core/engine.py:262
|
||||
#: core\engine.py:244 core\engine.py:288
|
||||
msgid "0 matches found"
|
||||
msgstr "0 resultados encontrados"
|
||||
|
||||
#: core/engine.py:240 core/engine.py:270
|
||||
#: core\engine.py:262 core\engine.py:296
|
||||
msgid "%d matches found"
|
||||
msgstr "%d resultados encontrados"
|
||||
|
||||
#: core/scanner.py:77
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Tamanho lido em %d/%d arquivos"
|
||||
|
||||
#: core/gui/deletion_options.py:69
|
||||
#: core\gui\deletion_options.py:73
|
||||
msgid "You are sending {} file(s) to the Trash."
|
||||
msgstr "Você está movendo {} arquivo(s) para o Lixo."
|
||||
|
||||
#: core/gui/ignore_list_dialog.py:24
|
||||
#: core\gui\exclude_list_table.py:15
|
||||
msgid "Regular Expressions"
|
||||
msgstr "Expressões regulares"
|
||||
|
||||
#: core\gui\ignore_list_dialog.py:25
|
||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||
msgstr "Tem certeza de que deseja remover todos os %d itens da lista Ignorar?"
|
||||
|
||||
#: core/prioritize.py:68
|
||||
msgid "None"
|
||||
msgstr "Nenhum"
|
||||
#: core\me\scanner.py:20 core\se\scanner.py:16
|
||||
msgid "Filename"
|
||||
msgstr "Nome do arquivo"
|
||||
|
||||
#: core/prioritize.py:96
|
||||
msgid "Ends with number"
|
||||
msgstr "Termina com número"
|
||||
#: core\me\scanner.py:21
|
||||
msgid "Filename - Fields"
|
||||
msgstr "Nome do arquivo - campos"
|
||||
|
||||
#: core/prioritize.py:97
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Não termina com número"
|
||||
#: core\me\scanner.py:22
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr "Nome do arquivo - campos (sem pedido)"
|
||||
|
||||
#: core/prioritize.py:98
|
||||
msgid "Longest"
|
||||
msgstr "Mais longo"
|
||||
#: core\me\scanner.py:23
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: core/prioritize.py:99
|
||||
msgid "Shortest"
|
||||
msgstr "Mais curto"
|
||||
#: core\me\scanner.py:24 core\pe\scanner.py:21 core\se\scanner.py:17
|
||||
msgid "Contents"
|
||||
msgstr "Conteúdo"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Highest"
|
||||
msgstr "Maior"
|
||||
|
||||
#: core/prioritize.py:132
|
||||
msgid "Lowest"
|
||||
msgstr "Menor"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Newest"
|
||||
msgstr "Mais recente"
|
||||
|
||||
#: core/prioritize.py:159
|
||||
msgid "Oldest"
|
||||
msgstr "Mais antigo"
|
||||
|
||||
#: core/results.py:129
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicatas marcadas."
|
||||
|
||||
#: core/results.py:136
|
||||
msgid " filter: %s"
|
||||
msgstr " filtro: %s"
|
||||
|
||||
#: core/scanner.py:101
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Metadados lidos em %d/%d arquivos"
|
||||
|
||||
#: core/pe/matchblock.py:61
|
||||
#: core\pe\matchblock.py:72
|
||||
msgid "Analyzed %d/%d pictures"
|
||||
msgstr "%d/%d fotos analizadas"
|
||||
|
||||
#: core/pe/matchblock.py:156
|
||||
#: core\pe\matchblock.py:181
|
||||
msgid "Performed %d/%d chunk matches"
|
||||
msgstr "%d/%d resultados em blocos executados"
|
||||
|
||||
#: core/pe/matchblock.py:161
|
||||
#: core\pe\matchblock.py:191
|
||||
msgid "Preparing for matching"
|
||||
msgstr "Preparando para comparação"
|
||||
|
||||
#: core/pe/matchblock.py:206
|
||||
#: core\pe\matchblock.py:244
|
||||
msgid "Verified %d/%d matches"
|
||||
msgstr "%d/%d resultados verificados"
|
||||
|
||||
#: core/pe/matchexif.py:18
|
||||
#: core\pe\matchexif.py:19
|
||||
msgid "Read EXIF of %d/%d pictures"
|
||||
msgstr "EXIF lido em %d/%d fotos"
|
||||
|
||||
#: core/app.py:312
|
||||
msgid "Could not load file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/app.py:496 core/app.py:742
|
||||
msgid "Couldn't write to file: {}"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:19 core/se/scanner.py:15
|
||||
msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:20
|
||||
msgid "Filename - Fields"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:21
|
||||
msgid "Filename - Fields (No Order)"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:22
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: core/me/scanner.py:23 core/pe/scanner.py:20 core/se/scanner.py:16
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
|
||||
#: core/pe/scanner.py:21
|
||||
#: core\pe\scanner.py:22
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr ""
|
||||
msgstr "Timestamp EXIF"
|
||||
|
||||
#: core/scanner.py:139
|
||||
#: core\prioritize.py:70
|
||||
msgid "None"
|
||||
msgstr "Nenhum"
|
||||
|
||||
#: core\prioritize.py:100
|
||||
msgid "Ends with number"
|
||||
msgstr "Termina com número"
|
||||
|
||||
#: core\prioritize.py:101
|
||||
msgid "Doesn't end with number"
|
||||
msgstr "Não termina com número"
|
||||
|
||||
#: core\prioritize.py:102
|
||||
msgid "Longest"
|
||||
msgstr "Mais longo"
|
||||
|
||||
#: core\prioritize.py:103
|
||||
msgid "Shortest"
|
||||
msgstr "Mais curto"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Highest"
|
||||
msgstr "Maior"
|
||||
|
||||
#: core\prioritize.py:140
|
||||
msgid "Lowest"
|
||||
msgstr "Menor"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Newest"
|
||||
msgstr "Mais recente"
|
||||
|
||||
#: core\prioritize.py:169
|
||||
msgid "Oldest"
|
||||
msgstr "Mais antigo"
|
||||
|
||||
#: core\results.py:142
|
||||
msgid "%d / %d (%s / %s) duplicates marked."
|
||||
msgstr "%d / %d (%s / %s) duplicatas marcadas."
|
||||
|
||||
#: core\results.py:149
|
||||
msgid " filter: %s"
|
||||
msgstr " filtro: %s"
|
||||
|
||||
#: core\scanner.py:85
|
||||
msgid "Read size of %d/%d files"
|
||||
msgstr "Tamanho lido em %d/%d arquivos"
|
||||
|
||||
#: core\scanner.py:109
|
||||
msgid "Read metadata of %d/%d files"
|
||||
msgstr "Metadados lidos em %d/%d arquivos"
|
||||
|
||||
#: core\scanner.py:147
|
||||
msgid "Almost done! Fiddling with results..."
|
||||
msgstr ""
|
||||
msgstr "Quase pronto! Mexendo nos resultados ..."
|
||||
|
||||
#: core/se/scanner.py:17
|
||||
#: core\se\scanner.py:18
|
||||
msgid "Folders"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Sending files to the recycle bin"
|
||||
#~ msgstr "Movendo arquivos para o Lixo"
|
||||
|
||||
#~ msgid "Grouped %d/%d matches"
|
||||
#~ msgstr "%d/%d resultados agrupados"
|
||||
|
||||
#~ msgid "Removing false matches"
|
||||
#~ msgstr "Removendo resultados falsos"
|
||||
|
||||
#~ msgid "Processed %d/%d matches against the ignore list"
|
||||
#~ msgstr "%d/%d resultados processados em oposição à lista Ignorar"
|
||||
|
||||
#~ msgid "Doing group prioritization"
|
||||
#~ msgstr "Executando priorização de grupo"
|
||||
msgstr "Pastas"
|
||||
|
||||
@@ -1,28 +1,34 @@
|
||||
# Translators:
|
||||
# Vitu <contact@brlingo.com>, 2013
|
||||
# Vitu <xcoisas@me.com>, 2012-2013
|
||||
# Vitu <contact@brlingo.com>, 2013
|
||||
# Vitu <contact@brlingo.com>, 2012
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
# Fuan <jcfrt@posteo.net>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2014-03-31 00:15+0000\n"
|
||||
"Last-Translator: Vitu <contact@brlingo.com>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/p/dupeguru/language/pt_BR/)\n"
|
||||
"Last-Translator: Fuan <jcfrt@posteo.net>, 2021\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/voltaicideas/teams/116153/pt_BR/)\n"
|
||||
"Language: pt_BR\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: qt/app.py:81
|
||||
msgid "Quit"
|
||||
msgstr "Encerrar"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Opções"
|
||||
|
||||
#: qt/app.py:83 qt/ignore_list_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore List"
|
||||
msgstr "Lista Ignorar"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Apagar Cache de Fotos"
|
||||
|
||||
#: qt/app.py:85 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "dupeGuru Help"
|
||||
msgstr "Ajuda dupeGuru"
|
||||
@@ -35,6 +41,14 @@ msgstr "Sobre o dupeGuru"
|
||||
msgid "Open Debug Log"
|
||||
msgstr "Abrir Registro de Depuração"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Deseja remover todo o cache das fotos já analizadas?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Cache de fotos apagado."
|
||||
|
||||
#: qt/app.py:251
|
||||
msgid "{} file (*.{})"
|
||||
msgstr "Arquivo {} (*.{})"
|
||||
@@ -130,6 +144,30 @@ msgstr "Ajuda"
|
||||
msgid "Load Recent Results"
|
||||
msgstr "Carregar Resultados Recentes"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
msgstr "Modo de Aplicação:"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
msgstr "Música"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
msgstr "Imagem"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
msgstr "Padrão"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Tipo de Scan:"
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
msgstr "Mais opções"
|
||||
|
||||
#: qt/directories_dialog.py:139 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Select folders to scan and press \"Scan\"."
|
||||
msgstr "Selecione as pastas desejadas e clique em “Escanear”."
|
||||
@@ -203,9 +241,78 @@ msgstr "Limpar"
|
||||
msgid "Close"
|
||||
msgstr "Fechar"
|
||||
|
||||
#: qt/directories_dialog.py:128 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Scan Type:"
|
||||
msgstr "Tipo de Scan:"
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Detalhes"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Escanear Tags:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Faixa"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Álbum"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Nome"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Gênero"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Ano"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Importância da palavra"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Coincidir palavras similares"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Pode misturar tipo de arquivo"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Usar expressões regulares ao filtrar"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Remover pastas vazias ao apagar ou mover"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignorar duplicatas de hardlink a um mesmo arquivo"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Modo de Depuração (requer reinício)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Coincidir fotos de dimensões diferentes"
|
||||
|
||||
#: qt/preferences_dialog.py:43
|
||||
msgid "Filter Hardness:"
|
||||
@@ -285,12 +392,6 @@ msgstr ""
|
||||
msgid "Reveal Selected"
|
||||
msgstr "Mostrar Seleção"
|
||||
|
||||
#: qt/me/details_dialog.py:18 qt/pe/details_dialog.py:24
|
||||
#: qt/result_window.py:56 qt/result_window.py:192 qt/se/details_dialog.py:18
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Details"
|
||||
msgstr "Detalhes"
|
||||
|
||||
#: qt/result_window.py:57 qt/result_window.py:104 qt/result_window.py:167
|
||||
#: qt/result_window.py:191 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Actions"
|
||||
@@ -408,85 +509,6 @@ msgstr "Valores Delta"
|
||||
msgid "Select a file to save your results to"
|
||||
msgstr "Selecione onde salvar seus resultados"
|
||||
|
||||
#: qt/me/preferences_dialog.py:30 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Tags to scan:"
|
||||
msgstr "Escanear Tags:"
|
||||
|
||||
#: qt/me/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Track"
|
||||
msgstr "Faixa"
|
||||
|
||||
#: qt/me/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Artist"
|
||||
msgstr "Artista"
|
||||
|
||||
#: qt/me/preferences_dialog.py:40 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Album"
|
||||
msgstr "Álbum"
|
||||
|
||||
#: qt/me/preferences_dialog.py:42 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Title"
|
||||
msgstr "Nome"
|
||||
|
||||
#: qt/me/preferences_dialog.py:44 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Genre"
|
||||
msgstr "Gênero"
|
||||
|
||||
#: qt/me/preferences_dialog.py:46 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Year"
|
||||
msgstr "Ano"
|
||||
|
||||
#: qt/me/preferences_dialog.py:50 qt/se/preferences_dialog.py:30
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Word weighting"
|
||||
msgstr "Importância da palavra"
|
||||
|
||||
#: qt/me/preferences_dialog.py:52 qt/se/preferences_dialog.py:32
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match similar words"
|
||||
msgstr "Coincidir palavras similares"
|
||||
|
||||
#: qt/me/preferences_dialog.py:54 qt/pe/preferences_dialog.py:21
|
||||
#: qt/se/preferences_dialog.py:34 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Can mix file kind"
|
||||
msgstr "Pode misturar tipo de arquivo"
|
||||
|
||||
#: qt/me/preferences_dialog.py:56 qt/pe/preferences_dialog.py:23
|
||||
#: qt/se/preferences_dialog.py:36 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Use regular expressions when filtering"
|
||||
msgstr "Usar expressões regulares ao filtrar"
|
||||
|
||||
#: qt/me/preferences_dialog.py:58 qt/pe/preferences_dialog.py:25
|
||||
#: qt/se/preferences_dialog.py:38 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Remove empty folders on delete or move"
|
||||
msgstr "Remover pastas vazias ao apagar ou mover"
|
||||
|
||||
#: qt/me/preferences_dialog.py:60 qt/pe/preferences_dialog.py:27
|
||||
#: qt/se/preferences_dialog.py:59 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Ignore duplicates hardlinking to the same file"
|
||||
msgstr "Ignorar duplicatas de hardlink a um mesmo arquivo"
|
||||
|
||||
#: qt/me/preferences_dialog.py:62 qt/pe/preferences_dialog.py:29
|
||||
#: qt/se/preferences_dialog.py:62 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Debug mode (restart required)"
|
||||
msgstr "Modo de Depuração (requer reinício)"
|
||||
|
||||
#: qt/pe/preferences_dialog.py:19 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Match pictures of different dimensions"
|
||||
msgstr "Coincidir fotos de dimensões diferentes"
|
||||
|
||||
#: qt/app.py:84 qt/app.py:179 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Clear Picture Cache"
|
||||
msgstr "Apagar Cache de Fotos"
|
||||
|
||||
#: qt/app.py:180 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Do you really want to remove all your cached picture analysis?"
|
||||
msgstr "Deseja remover todo o cache das fotos já analizadas?"
|
||||
|
||||
#: qt/app.py:184
|
||||
msgid "Picture cache cleared."
|
||||
msgstr "Cache de fotos apagado."
|
||||
|
||||
#: qt/se/preferences_dialog.py:41
|
||||
msgid "Ignore files smaller than"
|
||||
msgstr "Ignorar arquivos menores que"
|
||||
@@ -643,11 +665,6 @@ msgstr "+ resultados"
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: qt/app.py:82 qt/preferences_dialog.py:116
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Options"
|
||||
msgstr "Opções"
|
||||
|
||||
#: cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Paste"
|
||||
msgstr "Colar"
|
||||
@@ -712,112 +729,217 @@ msgstr "Janela"
|
||||
msgid "Zoom"
|
||||
msgstr "Ampliar/Reduzir"
|
||||
|
||||
#: qt/directories_dialog.py:116 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Application Mode:"
|
||||
#: qt\app.py:158
|
||||
msgid "Exclusion Filters"
|
||||
msgstr "Filtros de Exclusão"
|
||||
|
||||
#: qt\directories_dialog.py:91
|
||||
msgid "Scan Results"
|
||||
msgstr "Resultados da varredura"
|
||||
|
||||
#: qt\directories_dialog.py:95
|
||||
msgid "Load Directories..."
|
||||
msgstr "Carregar diretórios..."
|
||||
|
||||
#: qt\directories_dialog.py:96
|
||||
msgid "Save Directories..."
|
||||
msgstr "Salvar diretórios..."
|
||||
|
||||
#: qt\directories_dialog.py:337
|
||||
msgid "Select a directories file to load"
|
||||
msgstr "Selecione um arquivo de diretórios para carregar"
|
||||
|
||||
#: qt\directories_dialog.py:338
|
||||
msgid "dupeGuru Results (*.dupegurudirs)"
|
||||
msgstr "Diretórios de dupeGuru (* .dupegurudirs)"
|
||||
|
||||
#: qt\directories_dialog.py:347
|
||||
msgid "Select a file to save your directories to"
|
||||
msgstr "Selecione um arquivo para salvar seus diretórios"
|
||||
|
||||
#: qt\directories_dialog.py:348
|
||||
msgid "dupeGuru Directories (*.dupegurudirs)"
|
||||
msgstr "Diretórios de dupeGuru (* .dupegurudirs)"
|
||||
|
||||
#: qt\exclude_list_dialog.py:44
|
||||
msgid "Add"
|
||||
msgstr "Adicionar"
|
||||
|
||||
#: qt\exclude_list_dialog.py:46
|
||||
msgid "Restore defaults"
|
||||
msgstr "Restaurar padrões"
|
||||
|
||||
#: qt\exclude_list_dialog.py:47
|
||||
msgid "Test string"
|
||||
msgstr "String de teste"
|
||||
|
||||
#: qt\exclude_list_dialog.py:83
|
||||
msgid "Type a python regular expression here..."
|
||||
msgstr "Digite uma expressão regular python aqui..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:85
|
||||
msgid "Type a file system path or filename here..."
|
||||
msgstr "Digite um caminho ou nome de arquivo do sistema de arquivos aqui..."
|
||||
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happen to match one of the regular expressions.<br>For each file collected two tests are perfomed on each of them to determine whether or not to filter them out:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\n"
|
||||
"<li>2. Regular expressions with no path separator in them will be compared to the full path to the file.</li><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>"
|
||||
msgstr ""
|
||||
"Essas expressões regulares Python (diferenciando maiúsculas e minúsculas) filtrarão os arquivos durante as varreduras.<br>Directores também terão seu <strong>estado padrão</strong> definido como \"Excluído\" na guia Diretórios se seu nome corresponder a uma das expressões regulares selecionadas.<br>Para cada arquivo coletado, dois testes são realizados para determinar se deve ou não ignorá-lo completamente:<br><li>\n"
|
||||
"1. Expressões regulares sem separador de caminho serão comparadas apenas ao nome do arquivo.<li>2. Expressões regulares com pelo menos um separador de caminho serão comparadas ao caminho completo para o arquivo.</li><br>\n"
|
||||
"Exemplo: se você deseja filtrar arquivos .PNG apenas do diretório \"Minhas imagens\":<br><code>*Minhas\\sImagens\\\\.*\\.png</code><br><br>Você pode testar a expressão regular com o botão \"string de teste\" após colar um caminho falso no campo de teste:<br><code>C:\\\\Usuário\\Minhas Imagens\\test.png</code><br><br>\n"
|
||||
"As expressões regulares correspondentes serão destacadas.<br>Se houver pelo menos um destaque, o caminho ou nome do arquivo testado será ignorado durante as varreduras.<br><br>Diretórios e arquivos que começam com um ponto '.' são filtrados por padrão.<br><br>"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Music"
|
||||
#: qt\exclude_list_table.py:36
|
||||
msgid "Compilation error: "
|
||||
msgstr "Erro de compilação:"
|
||||
|
||||
#: qt\pe\image_viewer.py:56
|
||||
msgid "Increase zoom"
|
||||
msgstr "Aumentar zoom"
|
||||
|
||||
#: qt\pe\image_viewer.py:66
|
||||
msgid "Decrease zoom"
|
||||
msgstr "Diminuir zoom"
|
||||
|
||||
#: qt\pe\image_viewer.py:71
|
||||
msgid "Ctrl+/"
|
||||
msgstr "Ctrl+/"
|
||||
|
||||
#: qt\pe\image_viewer.py:76
|
||||
msgid "Normal size"
|
||||
msgstr "Tamanho normal"
|
||||
|
||||
#: qt\pe\image_viewer.py:81
|
||||
msgid "Ctrl+*"
|
||||
msgstr "Ctrl+*"
|
||||
|
||||
#: qt\pe\image_viewer.py:86
|
||||
msgid "Best fit"
|
||||
msgstr "Melhor ajuste"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:49
|
||||
msgid "Picture cache mode:"
|
||||
msgstr "Modo de cache de imagem:"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:56
|
||||
msgid "Override theme icons in viewer toolbar"
|
||||
msgstr "Substituir os ícones do tema na barra de ferramentas do visualizador"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:58
|
||||
msgid ""
|
||||
"Use our own internal icons instead of those provided by the theme engine"
|
||||
msgstr ""
|
||||
"Use nossos próprios ícones internos em vez dos fornecidos pelo mecanismo de "
|
||||
"tema"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Picture"
|
||||
#: qt\pe\preferences_dialog.py:66
|
||||
msgid "Show scrollbars in image viewers"
|
||||
msgstr "Mostrar barras de rolagem em visualizadores de imagens"
|
||||
|
||||
#: qt\pe\preferences_dialog.py:68
|
||||
msgid ""
|
||||
"When the image displayed doesn't fit the viewport, show scrollbars to span "
|
||||
"the view around"
|
||||
msgstr ""
|
||||
"Quando a imagem exibida não couber na janela de visualização, mostre as "
|
||||
"barras de rolagem para abranger a visualização"
|
||||
|
||||
#: qt/directories_dialog.py:121 cocoa/en.lproj/Localizable.strings:0
|
||||
msgid "Standard"
|
||||
#: qt\preferences_dialog.py:156
|
||||
msgid "Use default position for tab bar (requires restart)"
|
||||
msgstr "Use a posição padrão para a barra de guias (requer reinicialização)"
|
||||
|
||||
#: qt\preferences_dialog.py:158
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Coloque a barra de guias abaixo do menu principal em vez de ao lado dele\n"
|
||||
"No MacOS, a barra de guias preencherá a largura da janela."
|
||||
|
||||
#: qt/directories_dialog.py:135
|
||||
msgid "More Options"
|
||||
#: qt\preferences_dialog.py:172
|
||||
msgid "Use bold font for references"
|
||||
msgstr "Use fonte em negrito para referências"
|
||||
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Reference foreground color:"
|
||||
msgstr "Cor de primeiro plano de referência:"
|
||||
|
||||
#: qt\preferences_dialog.py:179
|
||||
msgid "Reference background color:"
|
||||
msgstr "Cor de fundo de referência:"
|
||||
|
||||
#: qt\preferences_dialog.py:182 qt\preferences_dialog.py:216
|
||||
msgid "Delta foreground color:"
|
||||
msgstr "Cor de primeiro plano do delta:"
|
||||
|
||||
#: qt\preferences_dialog.py:195
|
||||
msgid "Show the title bar and can be docked"
|
||||
msgstr "Mostra a barra de título e pode ser encaixada"
|
||||
|
||||
#: qt\preferences_dialog.py:197
|
||||
msgid ""
|
||||
"While the title bar is hidden, use the modifier key to drag the floating "
|
||||
"window around"
|
||||
msgstr ""
|
||||
"Enquanto a barra de título está oculta, use a tecla modificadora para "
|
||||
"arrastar a janela flutuante"
|
||||
|
||||
#~ msgid "Removing dead tracks from your iTunes Library"
|
||||
#~ msgstr "Removendo faixas sem referência da sua Biblioteca do iTunes"
|
||||
#: qt\preferences_dialog.py:199
|
||||
msgid "The title bar can only be disabled while the window is docked"
|
||||
msgstr ""
|
||||
"A barra de título só pode ser desativada enquanto a janela está encaixada"
|
||||
|
||||
#~ msgid "Scanning the iTunes Library"
|
||||
#~ msgstr "Escaneando Biblioteca do iTunes"
|
||||
#: qt\preferences_dialog.py:202
|
||||
msgid "Vertical title bar"
|
||||
msgstr "Barra de título vertical"
|
||||
|
||||
#~ msgid "Sending dupes to the Trash"
|
||||
#~ msgstr "Movendo duplicatas para o Lixo"
|
||||
#: qt\preferences_dialog.py:204
|
||||
msgid ""
|
||||
"Change the title bar from horizontal on top, to vertical on the left side"
|
||||
msgstr ""
|
||||
"Altere a barra de título de horizontal na parte superior para vertical no "
|
||||
"lado esquerdo"
|
||||
|
||||
#~ msgid "Talking to iTunes. Don't touch it!"
|
||||
#~ msgstr "Comunicando com o iTunes. Não mexa!"
|
||||
#: qt\tabbed_window.py:44
|
||||
msgid "Show tab bar"
|
||||
msgstr "Mostrar barra de abas"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||
#~ msgstr "Remover %d faixas sem referência da Biblioteca do iTunes?"
|
||||
#: qt\exclude_list_dialog.py:152
|
||||
msgid ""
|
||||
"These (case sensitive) python regular expressions will filter out files during scans.<br>Directores will also have their <strong>default state</strong> set to Excluded in the Directories tab if their name happens to match one of the selected regular expressions.<br>For each file collected, two tests are performed to determine whether or not to completely ignore it:<br><li>1. Regular expressions with no path separator in them will be compared to the file name only.</li>\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>\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>"
|
||||
msgstr ""
|
||||
"Essas expressões regulares Python (diferenciando maiúsculas e minúsculas) filtrarão os arquivos durante as varreduras.<br>Directores também terão seu <strong>estado padrão</strong> definido como \"Excluído\" na guia Diretórios se seu nome corresponder a uma das expressões regulares selecionadas.<br>Para cada arquivo coletado, dois testes são realizados para determinar se deve ou não ignorá-lo completamente:<br><li>\n"
|
||||
"1. Expressões regulares sem separador de caminho serão comparadas apenas ao nome do arquivo.<li>2. Expressões regulares com pelo menos um separador de caminho serão comparadas ao caminho completo para o arquivo.</li><br>\n"
|
||||
"Exemplo: se você deseja filtrar arquivos .PNG apenas do diretório \"Minhas imagens\":<br><code>*Minhas\\sImagens\\\\.*\\.png</code><br><br>Você pode testar a expressão regular com o botão \"string de teste\" após colar um caminho falso no campo de teste:<br><code>C:\\\\Usuário\\Minhas Imagens\\test.png</code><br><br>\n"
|
||||
"As expressões regulares correspondentes serão destacadas.<br>Se houver pelo menos um destaque, o caminho ou nome do arquivo testado será ignorado durante as varreduras.<br><br>Diretórios e arquivos que começam com um ponto '.' são filtrados por padrão.<br><br>"
|
||||
|
||||
#~ msgid "You have no dead tracks in your iTunes Library"
|
||||
#~ msgstr "Você não possui nenhuma faixa sem referência na Biblioteca do iTunes"
|
||||
#: qt\app.py:256
|
||||
msgid "Results"
|
||||
msgstr "Resultados"
|
||||
|
||||
#~ msgid "The iTunes application couldn't be found."
|
||||
#~ msgstr "O aplicativo iTunes não foi encontrado."
|
||||
#: qt\preferences_dialog.py:150
|
||||
msgid "General Interface"
|
||||
msgstr "Interface Geral"
|
||||
|
||||
#~ msgid "Talking to iPhoto. Don't touch it!"
|
||||
#~ msgstr "Comunicando com o iPhoto. Não mexa!"
|
||||
#: qt\preferences_dialog.py:176
|
||||
msgid "Result Table"
|
||||
msgstr "Tabela de Resultados"
|
||||
|
||||
#~ msgid "Talking to Aperture. Don't touch it!"
|
||||
#~ msgstr "Comunicando com o Aperture. Não mexa!"
|
||||
#: qt\preferences_dialog.py:205
|
||||
msgid "Details Window"
|
||||
msgstr "Janela de Detalhes"
|
||||
|
||||
#~ msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||
#~ msgstr ""
|
||||
#~ "As fotos apagadas do Aperture foram movidas para o projeto \"dupeGuru "
|
||||
#~ "Trash\"."
|
||||
#: qt\preferences_dialog.py:285
|
||||
msgid "General"
|
||||
msgstr "Geral"
|
||||
|
||||
#~ msgid "The iPhoto application couldn't be found."
|
||||
#~ msgstr "O aplicativo iPhoto não foi encontrado."
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Preferências"
|
||||
|
||||
#~ msgid "Check for Update"
|
||||
#~ msgstr "Buscar Atualizaçõs"
|
||||
|
||||
#~ msgid "Filename"
|
||||
#~ msgstr "Nome do Arquivo"
|
||||
|
||||
#~ msgid "Filename - Fields"
|
||||
#~ msgstr "Nome do Arquivo - Campos"
|
||||
|
||||
#~ msgid "Filename - Fields (No Order)"
|
||||
#~ msgstr "Nome do Arquivo - Campos (Sem Ordem)"
|
||||
|
||||
#~ msgid "Tags"
|
||||
#~ msgstr "Tags"
|
||||
|
||||
#~ msgid "Contents"
|
||||
#~ msgstr "Conteúdo"
|
||||
|
||||
#~ msgid "Audio Contents"
|
||||
#~ msgstr "Conteúdo de Áudio"
|
||||
|
||||
#~ msgid "EXIF Timestamp"
|
||||
#~ msgstr "Timestamp EXIF"
|
||||
|
||||
#~ msgid "Folders"
|
||||
#~ msgstr "Pastas"
|
||||
|
||||
#~ msgid "Add Aperture Library"
|
||||
#~ msgstr "Adicionar Biblioteca do Aperture"
|
||||
|
||||
#~ msgid "Add iPhoto Library"
|
||||
#~ msgstr "Adicionar Biblioteca do iPhoto"
|
||||
|
||||
#~ msgid "Add iTunes Library"
|
||||
#~ msgstr "Adicionar Biblioteca do iTunes"
|
||||
|
||||
#~ msgid "Audio Content"
|
||||
#~ msgstr "Conteúdo de Áudio"
|
||||
|
||||
#~ msgid "Content"
|
||||
#~ msgstr "Conteúdo"
|
||||
|
||||
#~ msgid "dupeGuru ME Preferences"
|
||||
#~ msgstr "Preferências do dupeGuru ME"
|
||||
|
||||
#~ msgid "dupeGuru PE Preferences"
|
||||
#~ msgstr "Preferências do dupeGuru PE"
|
||||
|
||||
#~ msgid "Remove Dead Tracks in iTunes"
|
||||
#~ msgstr "Remover Faixas sem Referência do iTunes"
|
||||
#: qt\preferences_dialog.py:286
|
||||
msgid "Display"
|
||||
msgstr "Exibição"
|
||||
|
||||
@@ -1,123 +1,122 @@
|
||||
# Translators:
|
||||
# Kyrill Detinov <lazy.kent@opensuse.org>, 2013
|
||||
# Andrew Senetar <arsenetar@gmail.com>, 2021
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: dupeGuru\n"
|
||||
"PO-Revision-Date: 2013-11-20 11:53+0000\n"
|
||||
"Last-Translator: Kyrill Detinov <lazy.kent@opensuse.org>\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/projects/p/dupeguru/language/ru/)\n"
|
||||
"Last-Translator: Andrew Senetar <arsenetar@gmail.com>, 2021\n"
|
||||
"Language-Team: Russian (https://www.transifex.com/voltaicideas/teams/116153/ru/)\n"
|
||||
"Language: ru\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
|
||||
#: core/gui/problem_table.py:17
|
||||
#: core\gui\ignore_list_table.py:19 core\gui\ignore_list_table.py:20
|
||||
#: core\gui\problem_table.py:18
|
||||
msgid "File Path"
|
||||
msgstr "Путь к файлу"
|
||||
|
||||
#: core/gui/problem_table.py:18
|
||||
#: core\gui\problem_table.py:19
|
||||
msgid "Error Message"
|
||||
msgstr "Сообщение об ошибке"
|
||||
|
||||
#: core/me/result_table.py:24 core/pe/result_table.py:21 core/prioritize.py:63
|
||||
#: core/se/result_table.py:21
|
||||
msgid "Kind"
|
||||
msgstr "Тип"
|
||||
|
||||
#: core/me/result_table.py:19 core/pe/result_table.py:19 core/prioritize.py:72
|
||||
#: core/se/result_table.py:19
|
||||
msgid "Folder"
|
||||
msgstr "Каталог"
|
||||
|
||||
#: core/me/result_table.py:18 core/pe/result_table.py:18 core/prioritize.py:88
|
||||
#: core/se/result_table.py:18
|
||||
msgid "Filename"
|
||||
msgstr "Имя файла"
|
||||
|
||||
#: core/prioritize.py:147
|
||||
msgid "Size"
|
||||
msgstr "Размер"
|
||||
|
||||
#: core/me/result_table.py:25 core/pe/result_table.py:24
|
||||
#: core/prioritize.py:153 core/se/result_table.py:22
|
||||
msgid "Modification"
|
||||
msgstr "Время изменения"
|
||||
|
||||
#: core/me/prioritize.py:18
|
||||
#: core\me\prioritize.py:23
|
||||
msgid "Duration"
|
||||
msgstr "Продолжительность"
|
||||
|
||||
#: core/me/prioritize.py:24 core/me/result_table.py:22
|
||||
#: core\me\prioritize.py:30 core\me\result_table.py:23
|
||||
msgid "Bitrate"
|
||||
msgstr "Битрейт"
|
||||
|
||||
#: core/me/prioritize.py:30
|
||||
#: core\me\prioritize.py:37
|
||||
msgid "Samplerate"
|
||||
msgstr "Частота оцифровки"
|
||||
|
||||
#: core/me/result_table.py:20
|
||||
#: core\me\result_table.py:19 core\pe\result_table.py:19 core\prioritize.py:92
|
||||
#: core\se\result_table.py:19
|
||||
msgid "Filename"
|
||||
msgstr "Имя файла"
|
||||
|
||||
#: core\me\result_table.py:20 core\pe\result_table.py:20 core\prioritize.py:75
|
||||
#: core\se\result_table.py:20
|
||||
msgid "Folder"
|
||||
msgstr "Каталог"
|
||||
|
||||
#: core\me\result_table.py:21
|
||||
msgid "Size (MB)"
|
||||
msgstr "Размер (МБ)"
|
||||
|
||||
#: core/me/result_table.py:21
|
||||
#: core\me\result_table.py:22
|
||||
msgid "Time"
|
||||
msgstr "Время"
|
||||
|
||||
#: core/me/result_table.py:23
|
||||
#: core\me\result_table.py:24
|
||||
msgid "Sample Rate"
|
||||
msgstr "Частота"
|
||||
|
||||
#: core/me/result_table.py:26
|
||||
#: core\me\result_table.py:25 core\pe\result_table.py:22 core\prioritize.py:65
|
||||
#: core\se\result_table.py:22
|
||||
msgid "Kind"
|
||||
msgstr "Тип"
|
||||
|
||||
#: core\me\result_table.py:26 core\pe\result_table.py:25
|
||||
#: core\prioritize.py:163 core\se\result_table.py:23
|
||||
msgid "Modification"
|
||||
msgstr "Время изменения"
|
||||
|
||||
#: core\me\result_table.py:27
|
||||
msgid "Title"
|
||||
msgstr "Название"
|
||||
|
||||
#: core/me/result_table.py:27
|
||||
#: core\me\result_table.py:28
|
||||
msgid "Artist"
|
||||
msgstr "Исполнитель"
|
||||
|
||||
#: core/me/result_table.py:28
|
||||
#: core\me\result_table.py:29
|
||||
msgid "Album"
|
||||
msgstr "Альбом"
|
||||
|
||||
#: core/me/result_table.py:29
|
||||
#: core\me\result_table.py:30
|
||||
msgid "Genre"
|
||||
msgstr "Жанр"
|
||||
|
||||
#: core/me/result_table.py:30
|
||||
#: core\me\result_table.py:31
|
||||
msgid "Year"
|
||||
msgstr "Год"
|
||||
|
||||
#: core/me/result_table.py:31
|
||||
#: core\me\result_table.py:32
|
||||
msgid "Track Number"
|
||||
msgstr "Номер дорожки"
|
||||
|
||||
#: core/me/result_table.py:32
|
||||
#: core\me\result_table.py:33
|
||||
msgid "Comment"
|
||||
msgstr "Комментарий"
|
||||
|
||||
#: core/me/result_table.py:33 core/pe/result_table.py:25
|
||||
#: core/se/result_table.py:23
|
||||
#: core\me\result_table.py:34 core\pe\result_table.py:26
|
||||
#: core\se\result_table.py:24
|
||||
msgid "Match %"
|
||||
msgstr "Совпадение %"
|
||||
|
||||
#: core/me/result_table.py:34 core/se/result_table.py:24
|
||||
#: core\me\result_table.py:35 core\se\result_table.py:25
|
||||
msgid "Words Used"
|
||||
msgstr "Использованные слова"
|
||||
|
||||
#: core/me/result_table.py:35 core/pe/result_table.py:26
|
||||
#: core/se/result_table.py:25
|
||||
#: core\me\result_table.py:36 core\pe\result_table.py:27
|
||||
#: core\se\result_table.py:26
|
||||
msgid "Dupe Count"
|
||||
msgstr "Количество дубликатов"
|
||||
|
||||
#: core/pe/prioritize.py:18 core/pe/result_table.py:22
|
||||
#: core\pe\prioritize.py:23 core\pe\result_table.py:23
|
||||
msgid "Dimensions"
|
||||
msgstr "Размеры"
|
||||
|
||||
#: core/pe/result_table.py:20 core/se/result_table.py:20
|
||||
#: core\pe\result_table.py:21 core\se\result_table.py:21
|
||||
msgid "Size (KB)"
|
||||
msgstr "Размер (КБ)"
|
||||
|
||||
#: core/pe/result_table.py:23
|
||||
#: core\pe\result_table.py:24
|
||||
msgid "EXIF Timestamp"
|
||||
msgstr "Временная отметка EXIF"
|
||||
|
||||
#: core\prioritize.py:156
|
||||
msgid "Size"
|
||||
msgstr "Размер"
|
||||
|
||||