Compare commits

..

319 commits

Author SHA1 Message Date
Michael Mayer
7c0bf9da60 Frontend: Update npm dependencies and run Vitest on forks pool 2026-07-18 12:07:24 +00:00
Michael Mayer
a27a3bb6e3 Backend: Update Go module dependencies and regenerate NOTICE 2026-07-18 12:07:20 +00:00
Michael Mayer
4dab3c7666 Frontend: Regenerate src/locales/json/de.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-07-18 13:34:54 +02:00
Michael Mayer
77ead7fda9 Vision: Retry HTTP 429 via new pkg/http/client backoff wrapper #5729 2026-07-18 11:27:22 +00:00
Weblate
38bbb734ea Weblate: Update frontend translations 2026-07-18 10:29:15 +02:00
Michael Mayer
0cecb5287f Search: Match folder album_path case-insensitively #5724
Folder search lowercases the query term, but album_path is VARBINARY and
compared byte-exact (case-sensitive) on MySQL/MariaDB, so a lowercased
term no longer matched uppercase folder paths. A parent folder still
appeared via its case-insensitive title, while child folders - matchable
only by path - dropped out of the results.

Add a dialect-aware PathLike helper: MySQL converts album_path to a
case-insensitive collation for the LIKE, SQLite and other dialects fall
back to a plain LIKE (SQLite is already ASCII case-insensitive). Only the
folder search filter is affected; byte-exact album_path identity lookups
are unchanged, so emoji and case-distinct folders stay distinct.
2026-07-16 16:53:28 +00:00
Michael Mayer
3f039866ff Sharing: Fix single-item access for shared smart albums #5727
Pictures shared only through a folder, moment, calendar, or region link
have no photos_albums row, so the by-UID and by-hash visibility checks
reported them out of scope and returned "Entity not found" - for example
when downloading a single image from a shared folder. The photo and file
visibility helpers now fall back to the shared album's filter, matching
what browsing and full-album downloads already allow. The fallback runs
only after the cheaper personal-scope check misses and skips regular
albums, so full-access and regular-share sessions add no queries.
2026-07-16 12:10:44 +00:00
Michael Mayer
4946bd2050 Vision: Add OpenAI service_tier via Service.Tier config #5725
Add a string-valued Service.Tier field (OpenAI-scoped) that is sent
verbatim as a top-level service_tier field in the Responses API request
body, reusing the existing Org/Project plumbing. Defaults empty
(backward compatible, OpenAI "auto") and supports ${ENV} expansion.

Bounded exponential-backoff retry on HTTP 429 is a separate follow-up
on the shared client (#5729).
2026-07-16 10:37:15 +00:00
Michael Mayer
5682b3df2e Docker: Allow Ollama and Vision env overrides via .env #5726
Make PHOTOPRISM_VISION_URI/KEY and OLLAMA_BASE_URL/OLLAMA_API_KEY
configurable through .env so Ollama Cloud can be tested without
editing compose.yaml directly.
2026-07-16 10:21:54 +00:00
Michael Mayer
311929ab27 Vision: Disable Ollama reasoning by default, refresh defaults #5728 #5726
- Default Service.Think to "false" for the Ollama engine via a new
  EngineInfo.DefaultThink applied in ApplyEngineDefaults; re-enable
  reasoning explicitly with Service.Think: "true".
- Replace the retired cloud default qwen3-vl:235b-instruct-cloud with
  minimax-m3:cloud, and refresh the self-hosted default from
  gemma3:latest to gemma4:latest.
- Warn on HTTP 404/410 (retired/renamed model) and other 4xx statuses
  in ollamaParser.Parse so failures are diagnosable instead of silent.
- Defensively strip a leading, tag-delimited <think>...</think> block
  from the response body.
- Update tests, regenerate testdata/vision.yml, and refresh package docs.
2026-07-16 10:21:49 +00:00
Michael Mayer
017e24927e Tests: Refine isolated test-folder cleanup and logging #5263 2026-07-12 06:31:52 +00:00
Keith Martin
b6687b6c29
Tests: Improve isolation and add fixes #5263
* Tests: fix random selection of deleted record causing test failure
* Tests: fix test folders being left after test
* Tests: ensure that required records are available
* Tests: make each package execute against it's own testdata folder to ensure no interpackage test failures
* Tests: add unit tests of CleanupTestFolder
* Tests:  Allow defer in TestMain
* Tests: rename testMain to runTestMain
2026-07-12 05:47:21 +02:00
Michael Mayer
79a3d36334 AI: Drop ROCm support from the llama.cpp install script
Only Vulkan and CPU (plus Intel SYCL) builds are installed now. Benchmarks
show Vulkan generally matches or beats the ROCm build for llama.cpp (except
some prompt-processing cases), while ROCm is far more complex to provision:
the prebuilt HIP backend needs a matching ROCm runtime, and consumer/iGPU
architectures such as gfx1150 additionally require HSA_OVERRIDE_GFX_VERSION
because rocBLAS ships no kernels for them. Vulkan drives NVIDIA, AMD, and
Intel GPUs on Linux with none of that setup, so auto-detection now selects
the Vulkan build for any supported GPU and the CPU build otherwise.
2026-07-10 10:40:58 +02:00
Cathie Integra
fb6e17ee69 Index: Resolve S2 cell in XMP branch, downgrade geocoding warn
When an XMP sidecar provides GPS coordinates, call UpdateLocation()
immediately so the S2 cell is resolved and cached in the local DB.
Without this, subsequent re-indexes always triggered a live geocoding
request (even though the coordinates were already known), producing a
spurious error on every re-index pass.

Downgrade the geocoding failure log in photo_location.go and
places/cell.go from Errorf to Warnf: a transient network failure to
the places service is non-fatal (the photo is indexed successfully,
just without a resolved place name) and must not surface as an
indexing error in the test suite.
2026-07-10 10:14:02 +02:00
Michael Mayer
98aa4d24ea AI: Add install-llamacpp.sh for llama.cpp Linux binaries
Installs prebuilt llama.cpp binaries from GitHub releases on AMD64/ARM64,
defaulting to the latest release or an explicit tag. Auto-detects the GPU
(sysfs PCI vendor IDs, lspci/nvidia-smi fallback) and picks ROCm, Vulkan,
or a plain CPU build, with a graceful fallback chain; NVIDIA GPUs get the
Vulkan build since upstream ships no CUDA build for Linux. Extracts into
<destdir>/lib/llama.cpp and symlinks the executables into <destdir>/bin
(the binaries carry RUNPATH "$ORIGIN"). Accelerator overridable via flags
or PHOTOPRISM_LLAMA_ACCEL; optional LLAMA_SHA256 verification.
2026-07-10 10:02:56 +02:00
Michael Mayer
c9362a6720 Docker: Refine smaller-skeleton bashrc setup for all images #5154 #5155
Follow-up to the contributor change that moves shell customization out of
per-user home directories:

- Migrate the resolute, trixie, and questing (+ slim) dev images to the
  shared install-bashrc.sh; the shared create-users.sh now hands users a
  minimal skeleton, so images still writing to /etc/skel/.bashrc would
  otherwise lose their aliases and prompt.
- Restore export PATH="$PATH:$HOME/.local/bin" (needed for claude/gh) in
  the full dev images by writing it to /etc/bash.bashrc; kept out of the
  slim and production images, which never had it.
- Guard the /etc/skel/.config copy in create-users.sh so production images
  without it don't emit a spurious error, and use rm -f /root/.bashrc.
- Fix the install-bashrc.sh header reference and silence an intentional
  SC2016 on the runtime-expanded PS1.
2026-07-10 00:56:15 +02:00
Alexis Lefebvre
44e7ed3f7e feat: use a smaller skeleton when calling useradd
# Conflicts:
#	docker/develop/armv7/Dockerfile
#	docker/develop/bookworm/Dockerfile
#	docker/develop/bullseye/Dockerfile
#	docker/develop/buster/Dockerfile
#	docker/develop/jammy/Dockerfile
#	docker/develop/lunar/Dockerfile
#	docker/develop/mantic/Dockerfile
#	docker/develop/noble/Dockerfile
#	docker/develop/oracular/Dockerfile
#	docker/develop/plucky/Dockerfile
2026-07-10 00:48:46 +02:00
Michael Mayer
1f9909d148 Develop: Make "docker-build" only pull the most important images
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-07-10 00:36:06 +02:00
Cathie Integra
cff0dcf92f Docker: Bump dev base image to develop:260709-resolute 2026-07-10 00:24:01 +02:00
Michael Mayer
c7a292e5a0 Backend: Update Go deps in go.mod and go.sum
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-07-09 17:13:11 +02:00
Michael Mayer
12d043f809 Places: Reuse pooled transport and log geocoding host only 2026-07-09 15:08:40 +00:00
Michael Mayer
d06ea1e19f Rules: Note gettext-lint gate and msgid-trim workflow 2026-07-09 13:57:51 +00:00
Michael Mayer
d33d3f11ab Translations: Trim trailing space in a German catalog string 2026-07-09 12:58:07 +00:00
Michael Mayer
9f6b95d049 Translations: Trim redundant trailing spaces on services help text 2026-07-09 12:03:17 +00:00
Michael Mayer
f864348474 Translations: Restore dropped placeholders in ga, ja, ku, nl, fa 2026-07-09 11:43:01 +00:00
Michael Mayer
6b4dcb09bd Translations: Fix French grammar and recompile stale fr.json
A recent Weblate update changed six French strings in fr.po without
recompiling fr.json, leaving the JSON out of sync. Recompile fr.json to
match, and fix "plutôt qu'au cliquant" -> "plutôt qu'au clic" (invalid
French) in the Open on Hover hint.
2026-07-09 11:26:14 +00:00
Cathie Integra
0eecc6e99b Frontend: Recompile translation JSON 2026-07-09 13:17:46 +02:00
Cathie Integra
6a1dc7d194 Translations: Restore broken placeholder tokens in catalogs 2026-07-09 13:17:46 +02:00
Cathie Integra
d5fb43f3d8 Translations: Add gettext placeholder and whitespace lint script 2026-07-09 13:17:46 +02:00
Weblate
54e258d4eb Weblate: Update frontend translations 2026-07-09 13:05:41 +02:00
Theresa Gresch
543a7c4258 Tests: Adapt tests to changes 2026-07-08 16:13:02 +02:00
Michael Mayer
4acbfd3d1b Frontend: Recompile translation JSON
Recompile the frontend translation JSON files from the current .po
catalogs (the pulled Weblate updates plus the German/French/Hebrew
refinements) via `make gettext-compile`.
2026-07-08 12:34:13 +00:00
Michael Mayer
d08d136ce8 Frontend: Refine German, French, and Hebrew settings translations #5429
- German: use „Bereich" for the Folders hint to match the sibling
  sections, and phrase the Open on Hover hint as an imperative.
- French: switch the new Accessibility and feature hints from informal
  tutoiement to the infinitive/vouvoiement used elsewhere in the UI.
- Hebrew: use the singular imperative for Reduce Motion, „קטע" (section)
  for the Albums hint, and align the Open on Hover hint with the label's
  hover wording.
2026-07-08 12:34:13 +00:00
Weblate
af7e06e5d1 Weblate: Update frontend translations 2026-07-08 14:17:58 +02:00
Ömer Duran
6dc0acac13
Settings: Reorganize UI and add an Accessibility section #848 #799 #5429
* Frontend: Add settings for albums, favorites, folders, and media features

* Frontend: Enhance download settings for files and albums #848

* Frontend: Enhance download settings for files and albums #848

* Frontend: Update album download settings to restrict access to super admins

* Frontend: Add album sorting options to settings for super admins

* Frontend: Update download settings visibility

* Frontend: Refine download settings access control for user roles

* Tests: Add album, folder, moment, state, and month order selection options to page-model

* Frontend: Update access control for super admins in settings to include scope check

* Tests: Add new tests for download name and album order settings persistence

* Tests: Implement new tests for default album sort order persistence in settings

* Frontend: Move default album order settings

* Frontend: Add zoom accessibility option in settings #799

* Frontend: Update download name from "Share Identifier" to "Share Friendly" and refine hints for download options in settings

* Tests: Add new acceptance test for disabling album downloads while allowing file downloads in settings

* Frontend: Improve download options layout and hints

* Frontend: Refactor download options condition in settings page

* Frontend: Implement native zoom control in lightbox component

* Settings: Add Collections tab and move Services to its own page #848 #5429

- Add a super-admin Collections tab after Content holding the album
  Download and Sort Order settings; remove those cards from Content.
- Move Services from a settings tab to a dedicated page
  (page/services.vue) with a search toolbar and a Reload / Learn More
  action menu; link it from the navigation settings menu.
- Implement server-side services search (acc_name filter) with tests.
- De-duplicate the picture sort-order options into a shared
  SortOrderOptions builder in options.js.
- Update acceptance/unit tests and page models to match.

* Frontend: Regenerate translation catalogs #848 #5429

Ran `make gettext-extract` to pick up the new settings strings
(Collections, Features, Disable Downloads, and related messages) so
Weblate can translate them. Existing translations are preserved.

* Frontend: Move lightbox viewport-zoom handling into the view helper

- Move the viewport pinch-zoom lock/restore (disableNativeZoom /
  restoreNativeZoom + savedViewportContent) from lightbox.vue onto the
  View singleton in common/view.js.
- Drive it passively from View.apply() via a disableViewportZoom flag in
  the PLightbox case, alongside hideScrollbar / disableScrolling /
  disableNavigationGestures; lightbox.vue no longer references zoom.
- Make save/restore idempotent and extract the viewport constants.
- Cover the helpers and the apply() wiring in view.test.js.

* Settings: Add Accessibility section to General with Reduce Motion #848 #5429

- Move the page-zoom checkbox out of the feature-flags grid into a
  dedicated Accessibility card (super-admin only) with four toggles:
  Open on Hover, Reduce Motion, Hide Scrollbar, and Allow Page Zoom.
- Add a UI.ReduceMotion flag (defaults false) that toggles an
  html.reduce-motion class via config.setReduceMotion and suppresses map
  fly-to animations non-destructively (util.mapAnimateDuration).
- Make Open on Hover apply live by reading shouldOpenOnHover() through a
  reactive computed in the action/auth/lightbox menus; Zoom and Hide
  Scrollbar reload since they are baked into the server-rendered HTML.
- Reword two feature-grid hints to the "pictures" convention and cover
  the new helpers with Go and Vitest tests.

* Frontend: Regenerate translation catalogs #848 #5429

Ran `make gettext-extract` to pick up the new Accessibility settings
strings (Accessibility, Allow Page Zoom, Open on Hover, Hide Scrollbar,
Reduce Motion, and their hints) and the reworded feature-grid hints.
Existing translations are preserved.

---------

Co-authored-by: Michael Mayer <michael@photoprism.app>
2026-07-08 14:11:36 +02:00
Michael Mayer
a22c99dd12 Frontend: Upgrade Vitest, Vite, browserslist & Vue language server
- @vitest/coverage-v8 ^4.1.9 => ^4.1.10
- @vue/language-server ^3.3.5 => ^3.3.6
- browserslist ^4.28.4 => ^4.28.5
- vite ^8.1.0 => ^8.1.3
- vitest ^4.1.9 => ^4.1.10

Dev dependencies only; NOTICE (prod-only) unchanged.
2026-07-08 00:04:29 +00:00
Michael Mayer
138075fc0a Dependencies: Upgrade klauspost, geo, x/text & x/tools Go modules
- github.com/klauspost/compress v1.18.6 => v1.19.0
- github.com/klauspost/cpuid/v2 v2.3.0 => v2.4.0
- github.com/golang/geo => 20260706204034
- golang.org/x/text v0.38.0 => v0.39.0
- golang.org/x/tools v0.45.0 => v0.47.0 (indirect)

Run go mod tidy and regenerate NOTICE.
2026-07-07 23:57:52 +00:00
Michael Mayer
c9f21cd965 Server: Derive WebDAV proxy test paths from proxy.PathPrefix
TestIsWebDAVPath hardcoded the "/i/" proxy prefix, so it failed when
proxy.DefaultPathPrefix changed. Build the proxy cases from proxy.PathPrefix,
the same value IsWebDAVPath uses, so they track the configured prefix.
2026-07-07 23:47:57 +00:00
Michael Mayer
a693df1eaa WebDAV: Route favorite-flag sidecar errors to the system log #5715
WebDAVSetFavoriteFlag logged sidecar mkdir/write failures at error level on
the UI log stream with the raw error, leaking the absolute sidecar path.
Route them through event.SystemError with clean.Error, matching the request
error handling in the WebDAV logger.
2026-07-07 23:47:57 +00:00
Michael Mayer
7bea2dccfe WebDAV: Route request errors to the system log, not the UI #5715
All WebDAV write-method errors (PUT/DELETE/MOVE/COPY/MKCOL/...) now go to
the console-only system log instead of the in-app errors table and browser
log viewer, because golang.org/x/net/webdav embeds absolute server paths in
its messages. Operators still see full detail in the container/service logs.

A MKCOL against an already-existing collection is a benign probe used by
sync clients such as PhotoSync to test for a directory before creating it;
it returns 405 and is logged at debug rather than as an error.
2026-07-07 23:27:52 +00:00
Michael Mayer
d33bca4f48 Metadata: Fix XMP body serial and add tiff: field fallbacks #2260
Read the standard exifEX:BodySerialNumber property, which ExifTool and
Adobe emit; the previous exifEX:SerialNumber matched no compliant XMP
sidecar and silently fell through to aux:SerialNumber.

Add deprecated TIFF-schema fallbacks still emitted by some writers:
tiff:Software (Software), tiff:ImageDescription (Description), and
tiff:Copyright (Copyright).
2026-07-07 11:44:33 +00:00
Michael Mayer
b7e758c607 PWA: Only emit maskable icons when the variant exists #5696 2026-07-06 10:58:16 +00:00
Ömer Duran
4b33d3bd1a
PWA: Add maskable icons, lang/dir, and install screenshots #5696 2026-06-30 19:53:52 +02:00
Michael Mayer
25b99b3ec4 Convert: Gate RAW render rejection by file format #5673
Apply the RawTherapee stderr rejection (raw.DecoderErrors) only for a
gated set of formats (default .cr3) instead of every RAW format.
RawTherapee prints "Cannot use camera white balance" for any sensor it
cannot read, including bodies whose default-WB render is fine, so for
formats it alone can decode (e.g. .raw, .kdc) the warning-based discard
left nothing to index. CR3 is unchanged: a magenta render warns and
falls back to the embedded preview.
2026-06-30 14:04:59 +00:00
Michael Mayer
6dc3ecbf25 Metadata: Map XMP dc:subject to Subject field, not Keywords #2075 #2260
dc:subject is Adobe's "Keywords" panel, but PhotoPrism's Keywords,
Labels, and Subject fields serve distinct purposes. Route dc:subject to
the descriptive Details.Subject field only (matching the embedded/
ExifTool path, where data.Subject comes from the dc:subject-backed
Subject tag and data.Keywords from IPTC Keywords), never the Keywords
field. Multi-word entries keep their spaces; the value stays searchable
via IndexKeywords and still drives label matching.
2026-06-30 10:12:45 +00:00
Michael Mayer
38b50724f5 Convert: Prefer embedded preview over untrustworthy RAW render #5673 2026-06-30 07:49:32 +00:00
Michael Mayer
9f3d958b02 Frontend: Update deps in package.json and package-lock.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-30 01:55:38 +02:00
Michael Mayer
1b572c0da7 Auth: Store session login_at as NULL when no client IP is set #5707 2026-06-29 23:28:12 +00:00
Cathie Integra
b2116154d3 Docker: Bump dev base image to develop:260629-resolute 2026-06-30 01:13:20 +02:00
Michael Mayer
b1a7a5d147 HEIC: Allow install-libheif.sh to upgrade held package #5708 2026-06-29 22:30:23 +00:00
Michael Mayer
50d4256b71 Frontend: Regenerate src/locales/json/fr.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-30 00:25:18 +02:00
Michael Mayer
5eeb0d6291 Convert: Verify RAW previews and prefer djxl for JPEG XL #5673 #5693 2026-06-29 21:59:48 +00:00
Michael Mayer
d330f0e05c Users: Apply 2FA changes for the cluster service principal 2026-06-29 21:59:48 +00:00
Michael Mayer
3e5ea71fb6 Users: Strengthen Add Account and built-in super-admin form gating 2026-06-29 21:59:48 +00:00
Cathie Integra
fd02897278 HEIC: Default install-libheif.sh to v1.23.1 #5708 2026-06-29 23:29:22 +02:00
Cathie Integra
95603b8f64 HEIC: Upgrade libheif from v1.23.0 to v1.23.1 #5708 2026-06-29 22:22:37 +02:00
Weblate
35caddae32 Weblate: Update backend translations 2026-06-28 19:14:37 +02:00
Weblate
fa4596883d Weblate: Update frontend translations 2026-06-28 19:14:10 +02:00
Cathie Integra
75e08934b8 AI: Add GPU/CUDA option to ONNX Runtime install script #5703 2026-06-28 15:53:46 +02:00
Cathie Integra
021bdeb428 Setup: Default to MariaDB 12.3 (LTS) in compose examples #5705 2026-06-28 15:15:27 +02:00
Michael Mayer
71c14fc68b Docs: Update tagline in README.md
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-28 10:36:59 +02:00
Michael Mayer
ba82cefb83 Setup: Add PHOTOPRISM_OIDC_PROMPT to compose & Helm examples #5698
Lists the new OIDC authorization prompt option alongside the other
PHOTOPRISM_OIDC_ settings (in flag order) in the dev compose files and the
Plus Helm chart values/questions. Empty default preserves current behavior.
2026-06-27 12:39:25 +00:00
Michael Mayer
9d0aca64b8 OIDC: Add configurable authorization prompt option #5698
Add PHOTOPRISM_OIDC_PROMPT (--oidc-prompt) to forward the OpenID Connect
"prompt" parameter (login, select_account, consent) on the authorization
request, so a rejected user can re-authenticate or pick another account
instead of being silently signed in again. Unsupported values (including
"none", which would break interactive login) are dropped with a warning;
empty preserves the seamless-SSO default.
2026-06-27 12:35:04 +00:00
Michael Mayer
063f3c1245 Backend: Update Go deps in go.mod and go.sum
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-27 13:41:03 +02:00
Michael Mayer
b1318d57fa Frontend: Update deps in package.json and package-lock.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-27 13:38:53 +02:00
Michael Mayer
f351d5a5a7 Frontend: Recompile translation JSON for new auth messages #5699 #5682 2026-06-27 11:34:54 +00:00
Michael Mayer
0575659c08 Frontend: Render auth error toasts in the current UI locale #5699 #5682 2026-06-27 11:34:54 +00:00
Michael Mayer
a2e8592dd5 Auth: Localize login/session/OIDC error responses via messageId #5699 #5682 2026-06-27 11:34:54 +00:00
Weblate
0293736a08 Weblate: Update frontend translations 2026-06-27 12:29:30 +02:00
Weblate
4c86c71417 Weblate: Update backend translations 2026-06-27 12:29:16 +02:00
Michael Mayer
68a6ad24f4 Translations: Regenerate .po and .pot files from source #5699
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-27 12:27:09 +02:00
Michael Mayer
d081997cff Frontend: Move batch edit dialog close button to toolbar start 2026-06-27 08:19:00 +00:00
Michael Mayer
03c22ca66c UX: Fix 404 page logo text rendering under RTL locales 2026-06-27 08:19:00 +00:00
Michael Mayer
69de3d7a05 Tests: Alias "app.vue" so Portal hooks.test.js resolves the root component 2026-06-26 13:45:38 +00:00
Ömer Duran
b2b1785126
Tests: Add unit tests for recent metadata, auth, and config changes #5697 2026-06-26 14:12:59 +02:00
Michael Mayer
9fe532914d Update tagline in README.md
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-26 09:48:44 +02:00
Michael Mayer
d13b9e50ca Frontend: Update deps in package.json and package-lock.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-25 20:46:45 +02:00
Cathie Integra
16eb3fb708 Frontend: Revert dep bump that broke options.js in prod bundle
Reverts 0182c46bb. The webpack 5.107.2->5.108.0 bump changed prod-bundle
scope-hoisting so option-builders in src/options/options.js (Languages,
TimeZones, StartPages, MapsAnimate) threw "Cannot read properties of
undefined", breaking the login and Settings pages on all editions.
Re-apply the photo-sphere-viewer/tar patch bumps separately.
2026-06-25 20:11:57 +02:00
Michael Mayer
7654e676b7 Frontend: Remove unused babel-plugin-istanbul and dead Karma config #5659
The babel-plugin-istanbul coverage plugin was only wired into the retired karma.conf.js; Vitest measures coverage via @vitest/coverage-v8 (.babelrc has no plugins). Dropping it removes the orphaned @istanbuljs/load-nyc-config -> js-yaml@3 subtree and clears the GHSA-h67p-54hq-rp68 DoS advisory; npm audit now reports 0 vulnerabilities.
2026-06-25 16:29:40 +00:00
Michael Mayer
d2a2597ab6 Users: Centralize Add Account auth field gating in the user model 2026-06-25 16:24:55 +00:00
Michael Mayer
41fdb578b2 Users: Prevent a non-super-admin admin from locking out the super admin 2026-06-25 16:24:51 +00:00
Michael Mayer
0182c46bbb Frontend: Update deps in package.json and package-lock.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-25 18:18:08 +02:00
Michael Mayer
57e4de738e Vision: Fix data race in image classifier during parallel indexing #5694
Indexing workers share one classify.Model whose Run() built tensors into a single shared ImageTensorBuilder buffer with no lock, so concurrent classification corrupted images and produced garbage labels. Pool a per-call builder instead, restoring the pre-#5164 concurrency safety.

Add a concurrent regression test and consolidate the model benchmark.
2026-06-25 15:01:23 +00:00
Michael Mayer
80437299da OIDC: Send and validate a nonce on authorization requests #5695 2026-06-25 16:54:29 +02:00
Michael Mayer
9a25a19824 JPEG XL: Decode natively via libvips with "djxl" fallback #5693
Route JPEG XL through the native libvips path (govips jxlload) like
HEIC/AVIF, keeping the external "djxl" decoder as an automatic fallback
for runtimes whose libvips lacks JPEG XL support.

Decouple format enablement from "djxl": DisableJpegXL now stays enabled
when either the decoder is present or libvips can decode JPEG XL natively.
The libvips capability probe (thumb.JpegXLSupported) is cached and runs
only when no decoder is present, so config introspection on standard
installs (which ship "djxl") does not start libvips.

Add a shared assets/samples/dice.jxl fixture and focused tests for the
native conversion path, the djxl fallback command, and the capability
decision table.
2026-06-25 14:31:10 +00:00
Weblate
a88264df82 Weblate: Update backend translations 2026-06-25 15:47:49 +02:00
Theresa Gresch
cd0deacbc1 Tests: Make acceptance tests more stable 2026-06-25 15:29:11 +02:00
Cathie Integra
9ff36af70c Docs: Update project tagline in README 2026-06-25 15:00:42 +02:00
Michael Mayer
6b485b7308 Frontend: Regenerate src/locales/json/fr.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-24 23:03:31 +02:00
Michael Mayer
6ee98a14ad Auth: Chain RP-initiated OIDC logout on direct /logout entry #5684 2026-06-24 22:52:48 +02:00
Weblate
05669ccdcc Weblate: Update frontend translations 2026-06-24 21:21:20 +02:00
Michael Mayer
8a3c3fb8f1 Tests: Make TestService_Discovery use a local WebDAV server
Service discovery was probing the live https://www.photoprism.app/ and asserting
success, so the test broke when the website migrated to Hugo (no PROPFIND
support). Point it at a local httptest WebDAV-like server and allow the loopback
host via servicesCIDR, making the test deterministic and offline-safe.
2026-06-24 15:31:31 +00:00
Michael Mayer
11c074cb85 Auth: Delegate cluster OIDC logout to the Portal end-session endpoint #5684
On a cluster-OIDC Sign-Out the instance now delegates the Portal session and the
upstream RP-logout to the Portal's end-session endpoint instead of doing them
itself: revokePeerSessions skips the Portal peer's backend DELETE (still clearing
its storage), and DeleteSession skips clearing the OP session cookie when it
returns a providerLogoutUri — otherwise the Portal OP could not resolve the
session (via that cookie) to chain the upstream logout. onLogout now resolves to
the chosen landing URL so the /logout route guard follows the provider logout URL
too. Adds the oidcLogout client-config accessor and an instance.portal session
marker so the Portal peer is identified explicitly rather than by URL shape.
2026-06-24 15:22:04 +00:00
Michael Mayer
50976f427e Auth: Add RP-initiated OIDC logout via PHOTOPRISM_OIDC_LOGOUT #5684 #5433
Sign-out of an OIDC session redirects the browser to the provider's
discovered end_session_endpoint (id_token_hint + absolute
post_logout_redirect_uri) when PHOTOPRISM_OIDC_LOGOUT is enabled, so the
provider SSO session ends and the next login re-prompts. Opt-in (default
off); local/LDAP logout and providers without an end-session endpoint fall
back to local logout.

Adds the shared CE /api/v1/oauth/logout route and OAuthLogoutHandler hook
plus the Portal OP end_session_endpoint advertised in the Portal discovery
document, for Portal builds to serve via the override hook.
2026-06-24 17:21:00 +02:00
Cathie Integra
3f096a592b Links: Use canonical trailing-slash form for website URLs 2026-06-24 17:20:30 +02:00
Michael Mayer
e1c9eafe88 Frontend: Update deps in package.json and package-lock.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-24 10:45:53 +02:00
Michael Mayer
95ae2be80c Frontend: Harden i18n positional shim against literal % in translations #5682
interpolatePositional now matches only real Go fmt verb letters and disallows the space flag, so a literal percent in a translated message (e.g. "100% sicher") is not mistaken for a verb and corrupted. Adds a regression test.
2026-06-23 13:30:22 +00:00
Michael Mayer
c5658a053d API: Align i18n.Response Go field names with JSON keys #5682
Rename the Response struct fields to match their json tags (Err to Error, Msg to Message) and the Error() method to ErrorString() to avoid a field/method clash; update callers and tests. JSON wire format is unchanged.
2026-06-23 12:42:57 +00:00
Michael Mayer
fd8448d6de UX: Name message fields messageId/messageParams in i18n payloads #5682
Rename the i18n notification/error envelope fields from id/params to messageId/messageParams across the WS notify Data and the i18n.Response body, so they are unambiguous next to session, log, and correlation ids. Updates the frontend consumers (notify.vue, api.js), tests, swagger, and the event/locales READMEs.
2026-06-23 12:22:30 +00:00
Michael Mayer
2fd9e93247 Tests: Fix label toast assertions after %{name} change #5682
labels.vue now notifies via $gettext("Removed/Added %{name}"); update the expected toast strings to match.
2026-06-23 12:07:01 +00:00
Michael Mayer
f5373ccec6 UX: Render backend error responses in the current UI locale #5682
The i18n.Response envelope now carries the untranslated source id and params; the frontend (api.js) renders them via Tp in the user's UI locale, with the server-rendered error/message as the instance-locale fallback. Common not-found/conflict/bad-request handlers were switched from hardcoded literals and raw err.Error() to Abort/i18n.Message helpers, so they benefit automatically.
2026-06-23 12:06:49 +00:00
Michael Mayer
49c6535c81 Storage: Fix duf path lookup to resolve the containing mount #5683
FindByPath now resolves a path's containing filesystem by longest-prefix match against the raw mount list, instead of the df-style display filter that hides overlay/pseudo roots. This fixes PathInfo/Free/StorageLow for paths like "/" whose mount is hidden (e.g. a container overlay root), which previously resolved to an arbitrary masked tmpfs.
2026-06-23 11:18:13 +00:00
Michael Mayer
a12d287c19 Docs: Document per-user notification localization in READMEs #5682
Describe the event *Msg structured payload and frontend per-user rendering in the event and backend-locales READMEs; fix a stale go-generate path (/internal/i18n to /pkg/i18n).
2026-06-23 09:23:31 +00:00
Michael Mayer
9ec70731e2 UX: Fix notification messages that bypassed translation #5682
Route user-facing notifications through extractable $gettext (aliased ctx.$gettext is not extracted), wrap hardcoded English strings, replace concatenation with interpolation, and drop redundant English backend label toasts already covered by localized frontend ones.
2026-06-23 09:06:56 +00:00
Michael Mayer
9ecdb0ae26 UX: Render backend notifications in the current UI locale #5682
Backend *Msg helpers now publish the untranslated message id and params alongside the rendered fallback; the frontend translates the id and applies a positional-placeholder shim so notifications render in each user's UI language.
2026-06-23 09:06:46 +00:00
Michael Mayer
544a4cfef2 Lightbox: Handle each Escape press once in face-marker mode #5672 2026-06-23 10:51:21 +02:00
Michael Mayer
a930ae24d7 Assets: Normalize locales/he/default.po
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-23 10:20:08 +02:00
Michael Mayer
deb2a5b71d Weblate: Update frontend translation .json files #5681
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-23 10:19:07 +02:00
Weblate
2f70683d0d Weblate: Update frontend translations 2026-06-23 10:18:02 +02:00
Michael Mayer
bf8e559091 Frontend: Update .po, .pot, and .json translation files
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-23 10:11:52 +02:00
Michael Mayer
bc33917ac7 Frontend: Update .json translation files
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-23 09:43:43 +02:00
Weblate
7a8fc6d01e Weblate: Update frontend translations 2026-06-23 09:42:48 +02:00
Michael Mayer
0954426eb4 Frontend: Update locales.js & regenerate .po and .pot translation files
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-23 09:29:12 +02:00
Cathie Integra
d3d9bbe09f Helm: Bump Plus chart to 1.1.2 and refine DB password secret #5661
Skip storing the inline database password in the chart-managed secret when
database.passwordSecretName references an external secret, fix the env-var
template formatting, document precedence, and surface the new values in the
Rancher questions form.
2026-06-23 08:01:48 +02:00
Brodie Kurczynski
4a9fc0314e
Helm: Allow referencing external secret for database password #5661
* Helm: Allow referencing external secret for database password
* Helm: Document database.passwordSecretName in values and README
2026-06-23 07:58:19 +02:00
Ömer Duran
4443c892ef
UX: Refine face-marker overlay performance and interaction #5672 #5677 2026-06-23 07:38:23 +02:00
Michael Mayer
b61345584b Frontend: Document webpack to Vite migration plan #5679
Add a README section mapping the current webpack build to its Vite
equivalents, and record the vue3-gettext 4.x ESM-only blocker (webpack
cannot resolve `fs` from pofile) that motivates the migration.
2026-06-22 20:17:34 +00:00
Michael Mayer
8b0cf318b0 Backend: Update deps in go.mod and go.sum
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-22 21:47:20 +02:00
Michael Mayer
83e6796e40 Frontend: Update deps in package.json and package-lock.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-22 21:46:50 +02:00
Michael Mayer
8fea28399b Weblate: Update JSON translation file #5674
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-22 21:41:14 +02:00
Weblate
baadd6940e Weblate: Update frontend translations 2026-06-22 21:38:26 +02:00
Weblate
bc20d156aa Weblate: Update backend translations 2026-06-22 21:35:55 +02:00
Michael Mayer
c650f38f18 Docs: Clarify checking off met Acceptance Criteria in GitHub issues 2026-06-18 12:40:54 +00:00
Michael Mayer
1350d9fe85 RAW: Fall back to embedded JPEG previews for unsupported files #5673 2026-06-18 12:29:55 +00:00
Michael Mayer
74339513f4 Lightbox: Native icon buttons, contain inline-editor Enter #1307 #4966 2026-06-18 10:33:16 +00:00
Michael Mayer
1854e69094 Gettext: Regenerate .po and .pot translation files
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-18 11:47:42 +02:00
Michael Mayer
63e0f02727 Lightbox: Pause slideshow on any content interaction #352 #5623 #5671 2026-06-18 11:43:15 +02:00
Theresa Gresch
acb04f2a05 Tests: Improve acceptance tests 2026-06-18 11:31:03 +02:00
Weblate
790181a743 Weblate: Update backend translations 2026-06-18 11:15:04 +02:00
Ömer Duran
3b21cf111b
Lightbox: Stop slideshow on sphere gestures #352 #4718 #5623 #5671 2026-06-18 11:13:59 +02:00
Michael Mayer
d52554fc50 Lightbox: Add 16K thumbnails and refine 360° viewer routing #5669 #5623 2026-06-17 04:12:41 +00:00
Michael Mayer
4ab00fa32d Config: Raise thumbnail and conversion size limits to 16K #5669 2026-06-17 04:12:40 +00:00
Michael Mayer
43506ad883 Thumbs: Add 16K (15360px) fit size for photos and videos #5669 #5623 2026-06-17 04:12:40 +00:00
Michael Mayer
f894157191 Docs: Update LICENSE notice files #352 #4718 #5623 2026-06-17 03:38:36 +02:00
Michael Mayer
6006e08a38 Frontend: Update deps in package.json and package-lock.json #352 #4718 #5623 2026-06-17 03:29:55 +02:00
Ömer Duran
3ea547a564
Lightbox: Add support for 360° photos and videos #352 #4718 #5623
* Lightbox: Add 360° photo and video sphere viewer support

Wires Photo Sphere Viewer v5 into the lightbox for equirectangular
media. Backend detects UsePanoramaViewer and IsPhotosphere markers
alongside ProjectionType, and exposes Panorama + Projection in the
viewer / search result DTOs so the frontend can dispatch on the
projection type. The renderer (ThreeJS + PSV core + video plugin +
equirectangular video adapter) is lazy-loaded into a dedicated
webpack chunk so the base bundle is unchanged for users with no
360° media. PhotoPrism's existing lightbox controls drive the
underlying HTMLVideoElement that the PSV adapter creates for 360°
videos. Includes Vitest coverage for the sphere helper and the
lightbox dispatch, plus a TestCafe smoke spec and three new
ExifTool metadata fixtures.

* Lightbox: Fix 360° controls leak, hide zoom button, add sidebar icon

* Lightbox: Fix 360° touch panning and navigation arrows

* Lightbox: Fix fast swipe switching photos on 360° slides

Suppress PhotoSwipe swipe/drag navigation at its source via the dispatched pointer hook while a sphere slide is active, since the per-element gesture trap is outrun by a fast swipe whose pointer leaves the sphere container (touch-capable Windows). UI controls stay excluded so buttons and arrows still navigate.

* Lightbox: Route only equirectangular media to the 360° viewer

Routing was based on the loose photo_panorama flag for videos, which is also
true for cubemap and merely-wide (aspect > 1.9) videos, so non-equirectangular
media wrongly opened, distorted, in the sphere viewer. Route strictly on the
equirectangular projection for both photos and videos. Surface the video file's
projection in the viewer DTO via Photo.MediaProjection() (the primary search row
is a poster JPEG with no projection). Add an MP4 metadata-detection test.

* Lightbox: Open tagless 2:1 360° videos in the sphere viewer

Many 360° videos carry no projection tag PhotoPrism can read, so strict
equirectangular-projection routing left them in the flat player. Fall back to
equirectangular's defining 2:1 frame for panorama-flagged videos without a
projection, via is360Equirectangular() in common/sphere.js, while cubemap and
ultrawide (~2.35:1) clips stay flat.

* Tests: Make the 360° sphere video test assert instead of skipping
2026-06-17 03:26:25 +02:00
Michael Mayer
bf081bd68b Users: Add canEnableLogin() to gate the Web Login toggle 2026-06-17 00:26:18 +00:00
Michael Mayer
a2e708e7ab Meta: Update go-mp4, regenerate NOTICE, fix XMP doc spelling #2260 #5563
Bump abema/go-mp4 to v1.7.1 (only outdated direct dependency) and tidy
go.sum, pruning stale checksums left by the XMP sidecar merge. Regenerate
the license NOTICE for the updated dependency.

Use US-English spelling in the new XMP sidecar comments and tests, and
drop a specs/ reference from internal/meta/README.md so the public package
doc has no link into the private subrepo. Regenerate dialect_mysql.go from
SQL.
2026-06-17 00:14:33 +00:00
Ömer Duran
86efc1c982
Index: Improve support for metadata in XMP sidecar files #2260 #2828 #5563
* Meta: Add XMP sidecar fixture corpus for reader rewrite #2260
* Meta: Replace XMP sidecar reader with antchfx/xmlquery #2260
* Meta: Add XMP sidecar reader test suite #2260
* Meta: Assert XMP GPS extraction on Apple/Adobe sidecars #2828
* Meta: Apply XMP sidecar metadata to photo and primary file #2260
* Meta: Resolve XMP sidecar time zone via shared helper #2260
* Meta: Derive panorama & caption keywords on XMP sidecar reads #2260
* Meta: Assert XMP sidecar GPS override and malformed-file handling #2260
* Meta: Tidy XMP sidecar reader comments and reuse logName local #2260
* Meta: Fix XMP sidecar capture-time priority OffsetTime handling #2260
* Meta: Address XMP sidecar review feedback #2260
2026-06-17 01:53:28 +02:00
Michael Mayer
ee0b1a616a Search: Sort geo "near" results by distance to the photo #5643
A "near=<uid>" geo search set the S2 cell but left the form lat/lng at
zero, so results sorted by distance from the (0,0) origin instead of
the referenced picture. Use the picture's own position in the ORDER BY,
falling back to time order when it has no usable coordinates.
2026-06-16 23:19:46 +00:00
Michael Mayer
50e1e595de Places: Group coincident map photos by screen proximity #5643
Past the cluster zoom threshold, group un-clustered photo features by
projected screen distance instead of exact coordinates, so pictures at
the same place stack into one counter marker even when their stored
coordinates differ slightly (GPS jitter, tile quantization). Key each
stack by a stable member UID and open it by its bounding box so the
panel lists exactly those pictures.
2026-06-16 23:19:37 +00:00
Michael Mayer
bad538e51b Index: Do not assign OriginalName to indexed files #5668
Stop deriving a file's OriginalName from cached metadata during indexing.
The ExifTool JSON cache is keyed by content hash, so a renamed file was
re-indexed against the old name and surfaced it as OriginalName, making
cards show a stale name while the sidebar showed the current one.

OriginalName is now set only from the explicit import original name, so
plain-indexed files no longer carry one and imported files are unaffected.
2026-06-16 17:21:56 +00:00
Michael Mayer
74a95fc748 ACL: Generate CLI role & auth-provider help from role tables #5667
Add pkg/txt.JoinOr plus acl.RolesCliUsageString and UserRoleUsageFor so the users/clients --role and --auth help derive from the role tables instead of hand-maintained literals, filtering the app/uploader aliases and visitor. Each edition lists its own roles; federatable contexts (LDAP, OIDC group-role, cluster grants) use ClusterInstanceRoles.
2026-06-16 11:57:44 +02:00
Cathie Integra
8e219a006c Setup: Remove pre-rendered pkg/linux/README.html
dl.photoprism.app now renders README.html on demand from README.md
(Caddy/goldmark), so the hand-maintained HTML copy is redundant.
2026-06-16 11:36:21 +02:00
Cathie Integra
f1d5ae2ba2 ACL: Add ClusterInstanceRoles source of truth for group-role help 2026-06-16 09:32:15 +02:00
Cathie Integra
d78966141a Build: Add tag-release.sh and tag-release Makefile target 2026-06-16 07:45:40 +02:00
Michael Mayer
f31db8a03b Tests: Add missing $util.shouldOpenOnHover mock to people-tab suite #5666
PActionMenu reads $util.shouldOpenOnHover() in data(); the suite only
passed because PActionMenu was stubbed. Complete the $util mock so the
tests no longer depend on that stub to hide the call, which otherwise
fails with "this.$util.shouldOpenOnHover is not a function".
2026-06-16 03:12:34 +00:00
Michael Mayer
2f94755af6 People: Seed type-ahead cache on name save to fix stale suggestions #5666
Naming faces in quick succession left the second new name out of the
people type-ahead until a manual reload, because eviction relied on the
subjects WS event, which can lag the next focus-triggered read.

Marker.setName() and Face.setName() now seed the shared people cache with
the saved name so it is suggestible immediately; the rename path seeds via
recognized.vue (Subject.update() also backs hide/show, so it can't host the
seed). Harden the cache itself: get() snapshots an epoch so a fetch that
resolves after an evict/upsert no longer clobbers the slot with stale data,
and upsertPeople merges idempotently. Reload new.vue suggestions on focus
to match the photo people tab.
2026-06-16 02:57:58 +00:00
Michael Mayer
cbc548d771 Frontend: Revert menu/action icons back to vertical dots
see c13c260

Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-16 04:02:33 +02:00
Michael Mayer
bf14649ce4 Places: Stack photos at identical coordinates on the map #5643
Group un-clustered geo features by exact coordinates so that pictures
sharing a spot render as one stack marker with a counter instead of
overlapping, hidden duplicates once zoomed past the cluster threshold.
Clicking such a stack opens the location's collection panel rather than
a radius search that surfaced unrelated nearby photos.

Key the embedded photo list by latlng so an already-open panel re-runs
its search for the newly selected cluster or stack.
2026-06-16 01:56:03 +00:00
Michael Mayer
fe0a59a138 Users: Exclude remote LDAP accounts from canHavePassword() 2026-06-16 00:41:34 +00:00
Michael Mayer
85d58f7cbe Users: Add canHavePassword() to gate password change actions 2026-06-16 00:30:13 +00:00
Michael Mayer
75a5e1ee0b Auth: Log anonymous API requests at debug level instead of warning #5647
Only warn when a request presents a token that is rejected; requests
without any credentials (e.g. the web app loading public config before
login) are routine and now logged at debug level, reducing log noise.
2026-06-15 23:56:56 +00:00
Michael Mayer
c45ee6e54f Auth: Revoke derived sessions & gate app passwords by login state #5647
- Add scoped session revocation (RevokeSessions / RevokeDerivedSessions)
  shared by the user-update API and the CLI: a privilege-level change now
  revokes logins and app-password-derived sessions while keeping the app
  passwords themselves, so configured devices keep working.
- Identify app-password-derived sessions by auth_method "session".
- Deny app passwords on the REST API when the account cannot log in
  (DenyLogIn); WebDAV access stays governed by CanUseWebDAV.
- Reduce the WebDAV auth cache expiration to one minute.
- Add IsSystemOrInvalid; allow deleting the initial admin account and skip
  re-initializing a deactivated or deleted admin in InitAccount.
- Move session-revocation scopes to pkg/authn and extend tests.
2026-06-15 23:41:01 +00:00
Michael Mayer
aff25636b5 People: Fix name-save re-entry and avoid full-list refetch #5666
Guard recognized.vue onSave against re-submission while the people cache
resolves by setting busy before the async lookup. Drop updatePersonList so
Browse Pictures / Set Cover no longer evict and refetch the whole people
list; the name combobox reloads suggestions on focus and WS events keep
the cache current. Make the people-tab test seed via a mocked getPeople.
2026-06-15 16:50:35 +00:00
Michael Mayer
997ff2e70d People: Load name suggestions from typeahead cache #5666
Move the people name list out of the client config into the shared
typeahead cache (getPeople, backed by GET /api/v1/subjects), matching
labels and albums. Consumers load suggestions on demand and the cache
evicts on people.* / subjects.* events and clears on logout; the
config.js people machinery is removed and ClientConfig keeps only
count.people for the navigation badge.
2026-06-15 14:38:04 +00:00
Michael Mayer
6addeaa7a4 People: Scope client config people list to authorized roles #5666
Groundwork for the people type-ahead cache: include the people list and
count in the client config only for roles that may view or search people,
and omit the list from the global config.updated broadcast. Clients load
it via GET /config and keep it current through people.* events.
2026-06-15 13:45:38 +00:00
Michael Mayer
a3f9df12ca Tests: Fix cleanup album revert helper for deleted albums #5646
helperAfterEach reverted photos before restoring albums, so re-adding a
photo to an album a test soft-deleted targeted a dead UID, 404'd, and
cascaded into helperFailures. Determine album changes first so the photo
loop can skip albums revertAlbums restores (recreated foreign-owned ones
get a new UID), and tolerate 404 on add-to-album.
2026-06-15 13:04:25 +00:00
Michael Mayer
2fd0ed8631 Events: UID-only camera/lens/country payloads & people refetch #5663 #1307
Make the cameras/lenses/countries content-channel events publish only a
stable identity ([]string of slug or ISO code) instead of full entity
models, matching the UID-only invariant of every other content channel.
The update path no longer republishes count.* (an edit does not change
the count).

Restore surgical people updates: onPeople refetches only the affected
people by UID via Subject.search (refetchPeople) and upserts them in
place instead of forcing a full client-config reload (a #1307 regression).

Document the dormant folders.*/faces.* subscribers (no publisher, not
forwarded) and fix the misleading payload example in the event README.
2026-06-15 11:37:26 +00:00
Michael Mayer
1b2ce048b2 Frontend: Update axios, vitest, playwright & coverage-v8
Pin axios 1.18.0 (security-hardening minor: strips sensitive headers on cross-origin redirects, rejects malformed http/https URLs, tightens prototype-pollution defenses; no breaking changes). Bump vitest and coverage-v8 to 4.1.9, playwright to ^1.61.0. OSV-Scanner clean for both ecosystems.
2026-06-15 10:23:12 +00:00
Michael Mayer
0e79cf9eca Backend: Update golang/geo and refresh NOTICE
Bump golang/geo to 20260612074446 (same module license). go mod tidy also drops a stale golang.org/x/net v0.55.0 checksum.
2026-06-15 10:23:07 +00:00
Michael Mayer
2c278cbd96 Import: Fix data race in import destination settings #5607 #5652
GetDest() lazily wrote the shared ImportSettings.Dest on every call, so
parallel ImportWorker goroutines raced on it. Make GetDest side-effect
free and normalize an invalid stored pattern once in Settings.Propagate.

Also align the per-hash indexing lock added in #5652 with code style.
2026-06-15 09:58:52 +00:00
Kevin Nowald
4f341768e4
Index: Serialize indexing of byte-identical files to avoid duplicates #5607 #5652 2026-06-15 11:31:49 +02:00
Weblate
f88a870379 Weblate: Update backend translations 2026-06-15 11:28:47 +02:00
Michael Mayer
8422fb8ddd Locales: Regenerate backend translations for #5663 2026-06-15 09:25:44 +00:00
Michael Mayer
bc327016ad Metadata: Add Camera Make and Model updates via CLI & API #5663 #5656
Mirror the lens make/model editing surface for cameras: entity UpdateMakeModel/SaveForm, form validation, query, search, the GET/PUT /api/v1/cameras endpoints, and the cameras CLI command, plus a cameras ACL resource and scope.

Also tidy the lens surface for parity: self-validating SaveForm, empty make/model guard, X-Count search header, service-role grant, the empty-id/slug docs, and order cameras before lenses everywhere.
2026-06-15 09:25:44 +00:00
Keith Martin
7c6546ce19
API: Search X-Count header for Labels and Services #5649
* API: Add X-Count response headers for services and labels.
* API: update swagger annotations for response headers
2026-06-15 10:00:08 +02:00
Keith Martin
c3eda657fd
Metadata: Add Lens Make and Model updates via CLI & API #5644 #5656
Adds the ability to override a lens's Make/Model (e.g. fixing Pentax lenses that ExifTool decodes as `4 38`) via a new photoprism lenses update CLI command and a `PUT /api/v1/lenses/:id endpoint`, plus a `GET /api/v1/lenses` search endpoint, a new lenses ACL resource, and an lenses ls list command.
2026-06-15 09:37:32 +02:00
Michael Mayer
41369dd5ce Tests: Fix duplicate testIDs and inverted reversion logic #5646 2026-06-15 07:11:00 +00:00
Keith Martin
3a4140b686 Tests: add ability to run the reversion tests, remove outdated config, remove console.log and mark test as skipped due to inability to test 2026-06-15 08:53:33 +02:00
Keith Martin
389b361a25 Tests: Improve test logging (when SHOW_LOGS is true in environment 2026-06-15 08:53:33 +02:00
Keith Martin
541c554206 Tests: Fix issue with NotYetExisting being clicked due to middle of dialog box selection issue 2026-06-15 08:53:33 +02:00
Keith Martin
b8a2091e6c Tests: Performance improvements and utilisation of reversion capabilities 2026-06-15 08:53:33 +02:00
Keith Martin
592a9958e1 Tests: Implement beforeEach, afterEach and before for after each test change reversions 2026-06-15 08:53:33 +02:00
Keith Martin
9ca202b65a Tests: Add Reversion capability and tests thereof 2026-06-15 08:53:33 +02:00
Keith Martin
c7afdf09dd Tests: Enable elapsed time logging for each acceptance test 2026-06-15 08:53:33 +02:00
Michael Mayer
e88751a501 Config: Add bloom, flower, ring & shutter app icons #5662
Adds four selectable app-icon variants with optimized SVGs and full PNG size sets. bloom and ring use a round canvas like logo; flower and shutter use the rounded-square canvas. Updates the frontend icon resolver, app-icon help text, and config tests, and strips editor data-name attributes from the existing icons.
2026-06-15 06:29:43 +00:00
Michael Mayer
9605d87731 Tests: Isolate reaction redaction subtest from mutation fixtures 2026-06-14 16:38:34 +00:00
Michael Mayer
b24e84f5f5 Frontend: Upgrade Vitest to v4 and Vite to v8 to drop esbuild #5659 2026-06-14 16:15:51 +00:00
Michael Mayer
9f373a909c Frontend: Update deps in package.json and package-lock.json 2026-06-14 17:43:11 +02:00
Michael Mayer
c6cab2856d Photos: Limit by-UID label, marker & file edits to the session scope #1307
Single-photo label add/remove/update, marker create/update/clear, file
unstack, orientation, and delete now apply the same shared-scope
visibility predicate as photo search and update, so by-UID and by-hash
edits stay consistent with album and photo updates and never act on
content outside the session's shared view. File-scoped handlers gate on
the resolved file's owning photo. Full-access sessions skip the check
with no database query via PhotoSessionSeesEverything.
2026-06-14 15:37:57 +00:00
Michael Mayer
a9f5996b43 Frontend: Update JSON translation files #5658
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-14 16:13:43 +02:00
Weblate
748e60c6dd Weblate: Update frontend translations 2026-06-14 16:12:59 +02:00
Michael Mayer
0f2629a11f Frontend: Regenerate translation catalogs 2026-06-14 14:08:13 +00:00
Michael Mayer
015c4efdb7 UX: Fix active-item contrast in the data-table items-per-page select
VDataTable.color is forwarded only to the footer, where it sets the
items-per-page select's itemColor; "background" rendered the selected
option as low-contrast text-background. Use surface-variant to match the
regular <v-select> active color across all themes (it does not theme the
table — VDataTable/VTable never read color).
2026-06-14 14:05:08 +00:00
Weblate
9d1f9017c3 Weblate: Update frontend translations 2026-06-14 16:03:35 +02:00
Michael Mayer
6ca27c827b Cluster: Add GroupsSrc to the node DTO for group-config provenance 2026-06-14 12:06:28 +00:00
Michael Mayer
0b0efaeddd Auth: Replace OIDC login error alert with the notification toast 2026-06-14 10:24:13 +00:00
Michael Mayer
ae1069b0c4 UX: Remove border-radius from .v-avatar.nav-logo in navigation.css
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-14 11:22:41 +02:00
Cathie Integra
38821507eb Config: Add oidcEnabled and ldapEnabled client config helpers 2026-06-14 10:46:58 +02:00
Cathie Integra
5aae042e2b Docker: Skip "cgroupfs-mount" when no apt install candidate exists 2026-06-13 17:08:46 +02:00
Michael Mayer
e1bf7096c8 Cluster: Accept all instance roles in group config, tolerate spaces 2026-06-13 12:54:54 +00:00
Michael Mayer
974321b8a1 Cluster: Re-register node config on restart via OAuth credentials 2026-06-13 12:54:48 +00:00
Michael Mayer
e832784856 Users: Prevent disabling own super admin status and web login 2026-06-12 20:36:35 +00:00
Michael Mayer
e308fd7b58 Auth: Land cluster sign-out on the Portal login without return_to 2026-06-12 19:56:44 +00:00
Michael Mayer
9f9fce0976 Tests: Update stale portal paths after frontend URI change 2026-06-12 19:56:38 +00:00
Michael Mayer
d594edd5de Cluster: Declare per-node group config via instance env/flags 2026-06-12 18:52:54 +00:00
Michael Mayer
d091958a60 Cluster: Collect OIDC groups at login for group-based admission 2026-06-12 16:08:38 +00:00
Cathie Integra
babb44115f HEIC: Build libheif archives for Debian trixie too #5653 2026-06-12 09:05:27 +02:00
Cathie Integra
b9e6158557 Docker: Bump dev base image to develop:260611-resolute 2026-06-11 18:42:54 +02:00
Cathie Integra
d25713867f HEIC: Bump libheif .deb build targets to v1.23.0 #5653 2026-06-11 18:19:15 +02:00
Michael Mayer
ebf4a88183 Tests: Add unit tests for label and subject change notifications #1307 2026-06-11 17:54:02 +02:00
Michael Mayer
ae9a10431a Frontend: Add User isCurrentUser, isAdmin & isClusterAdmin helpers 2026-06-11 15:49:30 +00:00
Michael Mayer
d26412bcca Auth: Normalize a super admin's role to the running edition 2026-06-11 15:49:30 +00:00
Michael Mayer
7486982342 Events: Refactor entity change notifications for sharing features #1307 2026-06-11 15:40:57 +00:00
Cathie Integra
3930bc7f4b HEIC: Default install-libheif.sh to v1.23.0 #5653 2026-06-11 13:37:57 +02:00
Cathie Integra
7b623997ec HEIC: Upgrade libheif from v1.22.2 to v1.23.0 #5653 2026-06-11 12:35:50 +02:00
Michael Mayer
bdd2a468bd Vision: Bound the service API response read size 2026-06-11 10:02:17 +00:00
Michael Mayer
e8a04a7d4f JWT: Bound the JWKS response read size 2026-06-11 10:02:17 +00:00
Michael Mayer
0f2de0fc15 WebDAV: Bound sync download size to the originals limit 2026-06-11 09:51:36 +00:00
Michael Mayer
487b0c0ec3 Http: Recognize additional reserved IPv4 ranges 2026-06-11 09:37:40 +00:00
Michael Mayer
71a82a9ac9 Auth: Refine passcode recovery code comparison 2026-06-11 09:37:40 +00:00
Michael Mayer
08945d25d7 Frontend: Resolve theme asset icons by basename or /_theme path
themeAssetUri now accepts a bare filename (logo.svg, the recommended
form since the theme author can't get the mount path wrong) as well as a
root-relative /_theme/... path, resolving either against the base URI so
they load on path-prefixed deployments. Absolute, protocol-relative, data,
and already-prefixed values pass through. Memoized via memoize-one (the
base URI is fixed once the config is loaded).
2026-06-11 10:46:14 +02:00
Cathie Integra
81eccd7647 Build: Install distribution libvips-dev when recent enough, gate PPA 2026-06-11 09:57:46 +02:00
Michael Mayer
b6e8ad2d60 WebDAV: Limit PUT upload size to the configured originals limit
Cap the WebDAV PUT request body at OriginalsLimitBytes when an originals limit is configured, so a single upload cannot stream an unbounded body to disk past the per-file ceiling; no-op when unlimited. Adds a load-bearing regression test.
2026-06-10 20:40:28 +00:00
Michael Mayer
d3a94bb8a8 Auth: Keep the deep-link target on a manual OIDC sign-in
onOidcLogin arms the per-tab OIDC attempt guard instead of the post-login redirect-loop guard, so an authenticated return within the loop window resumes the stored deep link or Portal return_to rather than discarding it. Updates the login spec test to pin the guard choice.
2026-06-10 20:08:36 +00:00
Michael Mayer
5c6e30260f Photos: Test that in-scope reactions are redacted for shared sessions
Add a guest regression case asserting the like endpoint returns an in-scope picture with identifying metadata stripped, so dropping the per-session redaction call fails a test rather than regressing silently.
2026-06-10 19:24:29 +00:00
Michael Mayer
856600cd02 Photos: Scope photo reactions to the session's shared view
Apply the same per-session visibility gate and response redaction the photo read and update endpoints already use, so the favorite (like/dislike) routes return only what the session is entitled to see. Adds guest regression subtests for both routes. #1307
2026-06-10 18:57:11 +00:00
Michael Mayer
014f5752f4 Setup: Fix DigitalOcean firewall status detection in check.sh
The status checks captured redirected command output, so the csf and firewalld branches never evaluated correctly (firewalld was reported active unconditionally). Use systemctl is-active --quiet instead.
2026-06-10 18:25:05 +00:00
Michael Mayer
e232ea7de7 Build: Verify SHA-256 checksums when installing s6-overlay & yt-dlp
Stage each download in a temporary file and verify it against the SHA-256 published by the upstream release (s6-overlay per-asset .sha256, yt-dlp SHA2-256SUMS) before installing. Abort on mismatch and warn when no manifest is published so older pinned tags still install.
2026-06-10 18:25:05 +00:00
Michael Mayer
88321bcda9 Docker: Remove unused goproxy module-proxy image and build target
The goproxy caching module proxy was a temporary workaround for build rate limits that no longer apply, and nothing references the published image (no compose service, CI step, or GOPROXY target).
2026-06-10 18:24:59 +00:00
Michael Mayer
1ca21007b3 Build: Update Go toolchain to 1.26.4 and refresh x/net and x/sys
Bumps the go.mod toolchain directive and the dummy OIDC fixture to
go1.26.4, clearing the GO-2026-5037/5038/5039 stdlib advisories. Updates
golang.org/x/net to v0.56.0 (NOTICE regenerated) and the fixture's
golang.org/x/sys to v0.46.0. osv-scanner --recursive returns zero
advisories and the full Go suite passes.
2026-06-10 18:06:19 +00:00
Michael Mayer
8b09cfe76e Photos: Limit by-UID and batch photo edits to the session scope
Single-photo update/approve/set-primary and batch archive/restore/approve/private/delete now apply the same shared-scope visibility predicate as photo search, so by-UID and bulk edits stay consistent with album updates and never act on content outside the session's shared scope. Visibility is evaluated against both the client and user role for client sessions. Full-access sessions skip the check with no database query via PhotoSessionSeesEverything / SelectedPhotoUIDsForSession.
2026-06-10 19:49:27 +02:00
Michael Mayer
22c1789c14 WebDAV: Harden joinUnderBase against drive-letter and backslash paths
Normalize separators, reject drive-letter prefixes, and verify
containment with filepath.Rel instead of a string prefix, matching the
pkg/fs ZIP safe-join. Extend TestJoinUnderBase to mirror TestSafeJoin
coverage and lock the handler surface via WebDAVFileName.
2026-06-10 17:44:13 +00:00
Michael Mayer
b59ebb994b Frontend: Resolve theme icon paths against the base URI
A theme-provided icon (theme variables.icon, e.g. /_theme/logo.svg) was
used verbatim, so on a path-prefixed deployment the browser requested it
without the /i/<node> base and got a 404 (the custom logo silently fell
back). Resolve it through a themeAssetUri helper in getIcon/getLoginIcon;
absolute, protocol-relative, data, and already-prefixed paths pass through
and root deployments are unaffected.
2026-06-10 19:02:34 +02:00
Michael Mayer
8c5e29771b Frontend: Upgrade axios from 1.16.1 to 1.17.0
Security-hardening and bug-fix minor release; no breaking changes for
our usage. Keeps the exact pin (no caret) per the high-risk-package
policy. Verified with make audit, OSV-Scanner, build-js, and test-js.
2026-06-10 16:55:39 +00:00
Michael Mayer
4b7565b3ac Auth: Show OIDC sign-in errors persistently and arm the loop guard
An OIDC sign-in failure (e.g. a cluster 'no access to this instance'
denial) was shown only as a transient toast the user could miss and
retry into a denial loop. Render it as a persistent, dismissible alert
on the login form instead, driven by the existing session.error bridge.
Also mark the redirect-loop guard when the user clicks the OIDC button,
so a bounce-back is recognized like the /login route guard's auto-redirect.
2026-06-10 16:22:42 +00:00
Michael Mayer
0379692a46 OIDC: Surface account-collision reconcile hint and add --auth-issuer
When an OIDC login matches a pre-existing non-OIDC account, log a
specific operator remedy (the exact 'users mod --auth oidc --auth-id'
command) to the audit and login-error logs instead of a bare provider
mismatch; the user-facing page stays a generic credentials error so the
account is not disclosed. Add a 'users mod --auth-issuer' flag so the
documented manual reconcile can pin the OIDC issuer, scoping the link to
that provider instead of matching any issuer with the same subject.
2026-06-10 15:31:34 +00:00
Michael Mayer
a7ee3c2e19 Config: Add PHOTOPRISM_SITE_NAME to compose examples and Helm charts
Also align the SITE_* inline doc comments with the CLI flag help.
2026-06-10 14:28:50 +00:00
Michael Mayer
785ae60a9d API: Add SiteName field to the generated swagger.json 2026-06-10 14:28:33 +00:00
Michael Mayer
f29413c7eb Tests: Replace customer names with neutral placeholders
Use "Acme Media" instead of real customer names in the SiteName and node DisplayName test fixtures.
2026-06-10 14:28:33 +00:00
Michael Mayer
6f5ffe7c2b Frontend: Add siteName to the client config test fixture 2026-06-10 14:28:33 +00:00
Michael Mayer
37116057b7 Frontend: List the Portal first in the instance switcher
listReachableInstances orders peers by ascending base-path so the Portal (origin root "/") leads, then co-located instances by path.
2026-06-10 14:28:33 +00:00
Michael Mayer
2b94975eb5 Config: Improve site option descriptions in CLI flag help 2026-06-10 14:28:33 +00:00
Michael Mayer
245ecc565e Config: Prefer SiteName for app name and site title
AppName() resolves to an explicit AppName, then SiteName (SITE_NAME), then SiteTitle. SiteTitle() falls back to SiteName when neither a SiteTitle nor an AppName is set, so an instance branded only via SITE_NAME stays consistent.
2026-06-10 14:28:33 +00:00
Cathie Integra
a10de3b616 Config: Add SITE_NAME option and use siteName for instance labels 2026-06-10 14:28:22 +02:00
Theresa Gresch
cf48930343 Tests: Adapt acceptance tests to changes 2026-06-10 14:16:25 +02:00
Cathie Integra
31e5d24d5a Frontend: Prefer configured app name in instance switcher labels 2026-06-10 14:10:18 +02:00
Michael Mayer
68c5d3b00e Frontend: Move the instance selector page under page/auth 2026-06-10 10:21:09 +00:00
Michael Mayer
56d9ea1bab Develop: Upgrade base image from :260603-resolute to :260610-resolute
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-10 06:44:52 +02:00
Michael Mayer
189284c61d Docs: Reflect the /portal default Portal web UI prefix 2026-06-10 04:43:50 +00:00
Michael Mayer
d34284994d Frontend: Update Portal route examples in comments to /portal 2026-06-10 04:39:26 +00:00
Michael Mayer
bf9866750f Frontend: Preserve an out-of-edition role in the user role selector 2026-06-10 04:08:30 +00:00
Michael Mayer
9d77c5fb36 Frontend: Regenerate translation JSON files 2026-06-10 03:31:17 +00:00
Weblate
c65be41692 Weblate: Update frontend translations 2026-06-10 05:27:57 +02:00
Michael Mayer
a4310674cd NOTICE: Regenerate after dependency updates 2026-06-10 03:24:26 +00:00
Michael Mayer
1fad248031 ONNX: Upgrade onnxruntime_go to v1.31.0 and runtime to 1.26.0 2026-06-10 03:24:26 +00:00
Michael Mayer
3f8b38c222 Backend: Update deps in go.mod and go.sum
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-10 05:07:03 +02:00
Michael Mayer
f205dd63ca Frontend: Update deps in package.json and package-lock.json
Signed-off-by: Michael Mayer <michael@photoprism.app>
2026-06-10 05:06:34 +02:00
Michael Mayer
6cb38abb43 Settings: Add UI OpenOnHover setting for hover menus #5650 2026-06-10 02:48:10 +00:00
Michael Mayer
14edf40abd OIDC: Drop residual cluster-OIDC gate on provisioned account email 2026-06-10 02:13:27 +00:00
Michael Mayer
a8849d111d Frontend: Scope instance role-select menu font-size to its overlay 2026-06-10 01:18:22 +00:00
Michael Mayer
71aeb26137 OIDC: Store email only when the token marks it verified 2026-06-10 00:04:26 +00:00
Michael Mayer
1bbb915167 Rules: Note untranslated technical labels and shared option labels 2026-06-09 22:47:57 +00:00
Michael Mayer
c61cc18e67 Frontend: Share role/provider option labels, untranslate identifiers 2026-06-09 22:47:57 +00:00
Michael Mayer
10dc504427 Frontend: Regenerate translation catalogs 2026-06-09 22:47:44 +00:00
Michael Mayer
03a7c7c37b Rules: Note FeatureSettings flag cascade and app-password identification 2026-06-09 17:36:30 +00:00
Michael Mayer
cb48c209b6 Auth: Gate app passwords behind a settings feature flag #5647
Adds an AppPasswords feature flag (default on) so app passwords can be disabled, closing the bypass where an app password minted by an OIDC-provisioned user keeps working after the account expires. When off, minting (oauth/token and auth add) is rejected and existing app passwords are no longer accepted on the REST API (403) or WebDAV (401). App passwords are identified by their session auth provider (IsApplication), covering every grant type. The Apps and Devices affordance is hidden for sessions that may not change a password; operators can force it off via PHOTOPRISM_DISABLE_FEATURES.
2026-06-09 17:36:24 +00:00
Michael Mayer
d0d956410c OIDC: Scope the RP state cookie to the instance OIDC base path
The relying-party state and PKCE cookies were left at the zitadel default Path=/, so on a shared-domain proxy (instances served under /i/<tenant>) they reached the callback only if the proxy rewrote the Set-Cookie path. They are now scoped to <base>/api/v1/oidc, covering both the login leg and the redirect callback, so they survive to the callback regardless of any proxy rewrite.
2026-06-09 15:36:35 +00:00
Michael Mayer
7881849b63 Cluster: Redirect cluster-OIDC sign-out to the Portal login
A user who signed in via cluster OIDC now returns to the Portal login (re-auth via OIDC) on sign-out instead of the instance's local form. The /logout route awaits the cluster-wide sign-out so the Portal OP cookie is cleared before the redirect, avoiding a silent re-SSO.
2026-06-09 15:36:24 +00:00
Michael Mayer
7232cc23a4 OIDC: Render a branded page when the RP code exchange fails
The OIDC RP callback handler returned without writing a response when
CodeExchangeUserInfo failed (e.g. a missing/expired state cookie), leaving
the raw zitadel error ("failed to get state: http: named cookie not present")
on screen with no way forward. CodeExchangeUserInfo now runs the exchange
against a recorder so the handler's raw error never reaches the browser, and
the callback renders the branded auth.gohtml page (which returns the user to
login) instead of a dead-end. Set-Cookie headers from a successful exchange
are still propagated.
2026-06-09 13:11:02 +00:00
Michael Mayer
6d0add2e69 Cluster: Address review findings on sign-out, OIDC bootstrap, errors
- /logout route guard now signs out cluster-wide: session.signOut shares
  revokePeerSessions with logoutEverywhere, so a direct /logout revokes peer
  sessions and clears shared storage too, not just the current session.
- Decouple PHOTOPRISM_CLUSTER_OIDC from the auto-join/theme toggles: InitConfig
  now always runs resolveNodeOIDCClient for an instance (join/theme moved into
  bootstrapClusterNode), so a registered node re-wires its OIDC RP on restart
  even with both bootstrap toggles disabled.
- Map redirected OAuth server_error / temporarily_unavailable to ErrUnexpected
  instead of "Invalid credentials", so a Portal-side failure isn't shown as a
  credential problem.
2026-06-09 10:38:22 +00:00
Michael Mayer
b88429f557 Cluster: Compact code comments in the OIDC follow-up changes 2026-06-09 10:20:17 +00:00
Michael Mayer
2d2dc47968 Frontend: Fix cluster sign-out to clear peer tokens from raw storage
logoutEverywhere read and cleared peer sessions through this.localStorage /
this.sessionStorage, which are NamespacedStorage wrappers (getAppStorage).
Enumerating or clearing a cross-namespace key through a wrapper double-prefixed
it (pp🅰️pp🅱️...), so peer session.token keys were left behind after Sign Out
even though the server sessions were revoked. Unwrap to the raw underlying store
first. The vitest case now constructs the session with a NamespacedStorage, as
the app does, so it would catch the regression.
2026-06-09 10:09:05 +00:00
Michael Mayer
872af5d8fd Cluster: Add cluster OIDC, branded authorize errors, and sign-out
Implements three OIDC follow-ups from specs/portal/cluster-oidc.md:

- Zero-touch instance OIDC RP config: PHOTOPRISM_CLUSTER_OIDC derives the
  OIDC RP client_id/secret from the node client credentials and defaults
  the issuer to the instance's own origin (scheme.OriginURL), so a single
  boot reaches a working Portal login. Explicit oidc-client/secret/uri win.
- Human-friendly authorize errors: redirectable errors 302 back to the
  validated redirect_uri; non-redirectable ones content-negotiate a
  branded HTML page (oauth-error.gohtml) vs JSON via shared helpers in
  internal/api/oauth_error.go. The RP callback surfaces inbound ?error=.
- Cluster-wide Sign-Out (Tier 2): session.logoutEverywhere fans out a
  best-effort DELETE per peer session, clears their storage, then signs
  out locally; session-delete clears the OP cookie on any shared-domain
  OIDC-against-Portal node (OIDCSessionCookieClearPath).
2026-06-09 09:39:01 +00:00
Michael Mayer
0a9e40d659 Frontend: Open the instance frontend route in the nav switcher 2026-06-09 08:16:14 +00:00
Michael Mayer
aae8137168 Cluster: Drop SiteCaption from the node DisplayName fallback 2026-06-09 07:56:45 +00:00
Michael Mayer
02819e6688 Frontend: Hide the Portal root path in the instance switcher 2026-06-09 07:23:09 +00:00
Michael Mayer
680469e781 Cluster: Add a per-instance node DisplayName field 2026-06-09 07:23:05 +00:00
Michael Mayer
680f1fef51 Auth: Drop the hard seed-admin lock in User.SaveForm 2026-06-09 04:18:36 +00:00
Michael Mayer
8f7866617a Docs: Document the API JSON field-casing convention
Add the TitleCase (entity-backed) vs camelCase (generated/artificial) rule to the
API package guide and the api-and-config rule's API Shape Checklist.
2026-06-09 03:18:15 +00:00
Michael Mayer
96f84c37e2 Frontend: Point the portal vitest alias at the cluster-instance model 2026-06-09 03:18:15 +00:00
Michael Mayer
427313c6c7 Frontend: Refine the navigation auth menu and instance switcher
Show the instance app icon and base path in the switcher, persisting the icon
alongside the SiteUrl and title per namespace (default to the logo when none is
set). Add a Manage Account item gated on the account feature, and open the menu
on hover like the other action menus.
2026-06-09 00:41:43 +00:00
Michael Mayer
c3c75dad18 Frontend: Rename PUserMenu to PAuthMenu and add a nav menu affordance
Move component/navigation/user-menu.vue to component/auth/menu.vue (and the
matching Vitest), and add an mdi-dots-horizontal affordance icon to the user
info row so the avatar overlay menu is discoverable.
2026-06-08 23:38:22 +00:00
Michael Mayer
c13c26002e Frontend: Switch menu/action icons from vertical to horizontal dots
Replaces mdi-dots-vertical with mdi-dots-horizontal for the navigation
mobile menu trigger and the p-action-menu default icon, and rotates the
lightbox PhotoSwipe menu-button SVG to match (kept centered in its 16x16
viewBox).
2026-06-08 23:08:36 +00:00
Michael Mayer
f3f358b766 Tests: Remove obsolete navigation showAccountSettings cases
showAccountSettings moved out of navigation.vue when the instance switcher
became the shared user menu; account settings is now a declarative sidebar
link. The avatar menu stays covered by user-menu.test.js.
2026-06-08 22:59:17 +00:00
Michael Mayer
927caa362b Frontend: Redirect CE admin/cluster/instances stubs to default route
These pages only exist as Plus/Pro/Portal overlays; in editions without
the overlay they now redirect to the user's default route via
$session.getDefaultRoute() instead of rendering a placeholder.
2026-06-08 22:59:13 +00:00
Ömer Duran
f07da222cf
Cluster: Polish the Portal admin accounts and instances UI 2026-06-08 15:47:44 +02:00
Ömer Duran
36c1bfcfb4 Tests: Resolve portal common/user-format overlay in vitest config
Add the per-file alias so portal vitest resolves the shared common/user-format formatters to the portal overlay, matching the existing common/instance-grants entry.
2026-06-08 11:14:38 +00:00
Ömer Duran
166b9513f1
Frontend: Hide the Places settings card on the Portal 2026-06-05 21:03:40 +02:00
Ömer Duran
1b5b54aaad
Frontend: Style the Portal Cluster Access role selector 2026-06-05 21:03:39 +02:00
Ömer Duran
75d4419b9b
Frontend: Relabel the user menu logout action to "Sign Out" 2026-06-05 21:03:39 +02:00
Ömer Duran
eefc11a31b
Frontend: Reject non-http(s) URLs in the instance switcher 2026-06-05 21:03:39 +02:00
Ömer Duran
3652ae7b76
Frontend: Add instance selector route with a CE stub page 2026-06-05 21:03:39 +02:00
Ömer Duran
8e73783ddd
Tests: Drop blank lines between Portal OpenID config subtests 2026-06-05 21:03:38 +02:00
Ömer Duran
ce5e10fef3
API: Set Cache-Control no-store on the session response 2026-06-05 21:03:38 +02:00
Ömer Duran
3e5522aa80
Auth: Set the OIDC OP session cookie for user sessions only
Skip user-less sessions whose signal NoUser() rejects, warn on the ephemeral key fallback, and keep a manager's delete-by-ref-id from wiping its own OP cookie.
2026-06-05 21:03:38 +02:00
Ömer Duran
cdc671677d
Auth: Let the cluster JWT sync privilege-level user fields
Thread admin authorization into SaveForm via byAdmin so the user-less cluster service principal can persist login/role/WebDAV instead of silently dropping them.
2026-06-05 21:03:38 +02:00
Ömer Duran
fddab77506
Auth: Apply Portal-granted role on OIDC instance login
Honor the pp_role claim (gated by pp_issuer_kind) over the group mapping so an instance login reflects the role the Portal granted, restricted to federatable roles.
2026-06-05 21:03:36 +02:00
Michael Mayer
366e576087 Frontend: Open the navigation user menu above the avatar
The explicit overlay z-index already keeps the teleported menu above the sidebar,
so anchor it back to location=top (above the avatar) instead of opening it to the
right of the navigation.
2026-06-03 21:01:49 +00:00
Michael Mayer
454998711e Frontend: Keep the navigation user menu above the sidebar
The menu content teleports to body, so a nav-scoped z-index does not apply. Set
an explicit overlay z-index and open it beside the drawer (location=end) so it is
no longer partially covered by the navigation.
2026-06-03 19:52:00 +00:00
Michael Mayer
dffb81ab31 Frontend: Move the instance switcher into the shared navigation user menu
Add a shared component/navigation/user-menu.vue (Settings / Switch Instance /
Log Out) wired into the navigation avatar, so every edition gets the switcher.
Instances record their identity under their storage namespace at session auth and
clear it on logout (common/instances + session.js), and the menu lists same-origin
peers that hold a live session. Keeps the distinctive base-path instanceLabel and
the post-login redirect loop guard. Replaces the bootstrap-time directory recording.
2026-06-03 19:42:56 +00:00
Michael Mayer
368ef7912b Auth: Store a signed session reference in the OP cookie, not the token
The OP session cookie stored the raw bearer token with a full-session lifetime,
so a leak of the cookie value was a usable credential against the whole API. It
now carries an HMAC-signed reference to the session id (a hash of the token,
useless as a bearer) with a 10-minute TTL refreshed on each session GET. The key
is persisted under the Portal config keys directory. The authorize handler
resolves the session via OIDCSessionCookieSession. Needs a coordinated SSO e2e
round in the Portal test env before merge.
2026-06-03 19:15:45 +00:00
Michael Mayer
be82697be2 Frontend: Alias portal common/instance-grants in the portal vitest config
Lets the Portal admin/users.vue page (which keeps the common/instance-grants
overlay) be imported under the portal vitest config so its methods can be
unit-tested.
2026-06-03 19:05:11 +00:00
Michael Mayer
d48ef12c99 Auth: Keep OIDC RP state and PKCE cookies Secure on HTTPS
Gate the OIDC relying-party cookie handler's WithUnsecure() on the existing
insecure flag instead of applying it unconditionally, so the round-trip state
(CSRF defense) and PKCE code_verifier cookies retain the Secure attribute on
HTTPS deployments. Addresses audit finding OJW-260603-02 (GO-HTTP-005).
2026-06-03 16:10:39 +00:00
Michael Mayer
51c4eed71e Auth: Serve Portal OIDC OP endpoints under /api/v1/oauth/* #4368 #4369
Move the Portal OIDC OP authorize/token/userinfo onto the shared CE
/api/v1/oauth/* routes (the reserved #4368/#4369 stubs) and drop the parallel
root /oauth/* set.

- Add overridable handler hooks (oauth_handlers.go) mirroring
  server.WebDAVHandler; OAuthToken delegates only the authorization_code grant
  (gated on a form content type) and keeps client_credentials/password/session
  unchanged; userinfo now serves GET and POST.
- Scope the OP session cookie to /api/v1/oauth (base-path aware) so the browser
  still sends it to the moved authorize endpoint instead of looping.
- Stop the proxy re-scoping instance->Portal authorize redirects
  (portalRootPathPrefixes -> /api/v1/oauth/).
- Point discovery at issuer + /api/v1/oauth/*; fix the JWKS URL base-path
  doubling for sub-path deployments (also in CE openid.go).
2026-06-03 15:28:05 +00:00
Michael Mayer
6b8ae165fb Auth: Accept EdDSA ID tokens in the OIDC relying party 2026-06-03 17:12:59 +02:00
Michael Mayer
c908ec5563 Auth: Advertise use and alg in the Ed25519 JWKS 2026-06-03 17:12:59 +02:00
Michael Mayer
b213d1efdd Frontend: Break post-login redirect loops on the login route 2026-06-03 17:12:59 +02:00
Michael Mayer
62da6ce738 Auth: Add OIDC OP session cookie for top-level navigations 2026-06-03 17:12:59 +02:00
Michael Mayer
a4afba69c6 Auth: Authorize cluster JWT for instance user management 2026-06-03 17:12:59 +02:00
Michael Mayer
46dcda2665 Frontend: Label instance switcher by distinctive base-path segment 2026-06-03 17:12:59 +02:00
Michael Mayer
dafba872a2 Frontend: Add shared browser-storage instance directory for switcher 2026-06-03 17:12:59 +02:00
Michael Mayer
f0fe14a449 Frontend: Add cluster_admin role label and Portal vitest config
Adds the Cluster Admin label to the auth role map and a Portal-specific vitest
config for the portal/frontend overlay tests.
2026-06-03 17:12:59 +02:00
Michael Mayer
49acee4afe Auth: Restrict OIDC-mapped account roles to federatable roles
OIDCGroupRoles and OIDCRole drop non-federatable roles, and the OIDC redirect
apply paths use acl.FederatedRoleUpdate, so an external identity provider cannot
assign cluster_admin/visitor as an account role or change an existing operator
account on login.
2026-06-03 17:12:59 +02:00
Michael Mayer
fbe8a6889b Auth: Add cluster_admin role with admin-tier and federation helpers
Adds the Portal-only cluster_admin operator role (declared in CE, registered
only on Portal builds), the acl.AdminRoles/IsAdminRole admin-tier set, and the
acl.IsFederatedRole/FederatedRoleUpdate helpers that keep cluster_admin and
visitor out of externally mapped account roles. SuperAdmin resolves to
cluster_admin on registered builds, SaveForm keeps an admin-level role on a
self-save, and UpdateUser rejects self-role changes. RoleStrings.Strings hides
visitor and none from the CLI role help.
2026-06-03 17:12:59 +02:00
Cathie Integra
e81794a533 Docker: Bump dev base image to develop:260603-resolute (Go 1.26.4) 2026-06-03 17:11:28 +02:00
Michael Mayer
9c96ffecc4 Event: Use first event segment as the system log prefix
Multi-segment events now log as "config: database › connect" instead of
"system: config › database › connect"; single-segment events keep the
generic "system: " prefix. The hub message is unchanged so the frontend
log viewer still shows the full joined event.
2026-06-03 14:58:01 +00:00
Michael Mayer
717b21c5ec Backend: Call clip.Bytes directly and drop the txt.ClipBytes facade #5638 2026-06-03 09:50:56 +00:00
Michael Mayer
d33bac96cb Entity: Rename Sanitize* to Clip* and string.go to clip.go 2026-06-03 09:50:56 +00:00
Michael Mayer
f70d6c113b Entity: Clip album, photo, and folder paths via shared ClipPath #5615 2026-06-03 09:34:40 +00:00
Michael Mayer
395bd76ee3 Backend: Print top-level CLI errors to stderr, not the DB logger #5637 2026-06-03 08:58:30 +00:00
Michael Mayer
5bf4a73aba Config: Report database errors via the system log, not the DB #5637 2026-06-03 08:42:57 +00:00
Michael Mayer
188aba723f Backend: Report recovered panics via SystemLog, not the DB logger #5637 2026-06-03 08:29:40 +00:00
Michael Mayer
2d3aa02dac Backend: Clip VARBINARY text columns by bytes to avoid write errors #5638 2026-06-03 08:04:40 +00:00
Michael Mayer
deb3723fd6 Albums: Clip album_path to the column byte budget on write #5615 2026-06-03 07:53:16 +00:00
Michael Mayer
87f3f6a64a Backend: Recover from panics in background tasks and album restore #5637 2026-06-03 07:45:07 +00:00
Michael Mayer
22ac0b4153 Backend: Log recovered panics with stack trace before exit #5637 2026-06-03 07:37:04 +00:00
Cathie Integra
332f3c4cd6 Helm: Bump Plus chart to 1.1.1 (appVersion 260601) 2026-06-01 23:52:11 +02:00
1158 changed files with 98746 additions and 41506 deletions

View file

@ -2,6 +2,8 @@
- Respect precedence: `options.yml` overrides CLI/env values, which override defaults.
- Adding a new option: update `internal/config/options.go` (yaml/flag tags), register in `internal/config/flags.go`, expose a getter, surface it in `*config.Report()`, and write generated values back to `options.yml`. Use `CliTestContext` in `internal/config/test.go` to exercise new flags.
- Adding a `customize.FeatureSettings` flag: a new field defaults to `true` via reflection (`features_default.go`) and is operator-disableable through `PHOTOPRISM_DISABLE_FEATURES` — no new CLI option needed. It cascades: update the full-struct literals in `internal/config/customize/{acl,scope}_test.go` and `internal/config/client_config_test.go` (the longest field name re-aligns every literal via gofmt), and `testdata/settings.yml` self-updates via `TestSettings_Save`. If the flag is only meaningful for accounts/roles, gate it per-session in `customize.Settings.ApplyACL` / `ApplyScope` (e.g. `Account`/`AppPasswords` require `ResourcePassword`/`ActionUpdate`); that shapes the Web UI client config only — enforce server-side behavior on the global flag via a `Config.DisableX()` helper.
- Identify an app-password credential by its session, not its token: `(*entity.Session).IsApplication()` (auth provider `application`) covers every grant that mints one (`password`/`session`/`cli`). The token format and grant type vary, so don't gate on `rnd.IsAppPassword` or `GrantType`.
- For `options.yml` writes, prefer config-owned persistence helpers: `Config.SaveOptionsPatch(...)` for generic merges, `Config.SaveClusterOptionsUpdate(...)` for cluster-managed metadata.
- Use `pkg/fs.ConfigFilePath` for config filenames so existing `.yml` files stay valid and new installs can adopt `.yaml` transparently.
- Use the public accessors on `*config.Config` (e.g. `JWKSUrl()`, `SetJWKSUrl()`) instead of mutating `Config.Options()` directly; reserve raw option tweaks for test fixtures.
@ -20,6 +22,7 @@
## API Shape Checklist
When renaming or adding fields:
- Field casing: **TitleCase** (`UUID`, `Name`, `SiteUrl`) for fields backed by a DB entity (mirror the entity/model), **camelCase** (`storageNamespace`, `redirectUri`) for generated/artificial payloads (client config, session, action/RPC bodies). A filtered/computed entity projection stays TitleCase; an action payload stays camelCase but MAY TitleCase its single entity-identity field (e.g. `UUID`). See `specs/common/field-casing.md`.
- Update DTOs in `internal/service/cluster/response.go` and any mappers.
- Update handlers and regenerate Swagger: `make fmt-go swag-fmt swag`.
- Update tests (search/replace old field names) and examples in `specs/`.
@ -35,5 +38,5 @@ When renaming or adding fields:
- Map roles via the shared tables: users through `acl.ParseRole(s)` / `acl.UserRoles[...]`, clients through `acl.ClientRoles[...]`.
- Treat `RoleAliasNone` ("none") and an empty string as `RoleNone`; default unknown client roles to `RoleClient`.
- Build CLI role help from `Roles.CliUsageString()` (e.g. `acl.ClientRoles.CliUsageString()`) — never hand-maintain role lists.
- Build CLI role help from the registered role map (never hand-maintained literals) so each edition lists exactly the roles it accepts: `commands.UserRoleUsageFor(<map>)` / `Roles.CliUsageString()`, passing CE `acl.UserRoles` or an edition's own static `auth.UserRoles` (reference the edition map directly, not the runtime-reassigned `acl.UserRoles`, to avoid the init-order trap; Portal's map includes `cluster_admin`). For federatable / cluster-instance contexts (LDAP, OIDC group→role, cluster grants) use `acl.ClusterInstanceRolesCliUsageString()` — it excludes `cluster_admin`/`visitor`. `pkg/txt.JoinOr` renders the "a, b, or c" style.
- For JWT/client scope checks, use the shared helpers (`acl.ScopePermits` / `acl.ScopeAttrPermits`).

View file

@ -27,6 +27,10 @@ Descriptions MUST conclude with a checklist of **Acceptance Criteria**:
- `MUST` — required for the issue to be considered complete
- `SHOULD` — strongly recommended but not strictly required
- `MAY` — optional enhancement
- Keep the checklist current: once the work for a criterion is implemented **and verified**, mark it done (`- [x]`).
- Leave items that are unverified, not yet implemented, or skipped optional (`MAY`) enhancements unchecked.
- An issue is complete only when every `MUST` is checked; never tick a box on the strength of a plan alone or an unrun test.
- When referencing an issue from a commit that fulfills some of its criteria, update the matching boxes first.
> Agents MUST create, edit, close, reopen, relabel, or otherwise modify GitHub issues only when explicitly requested by the user.

View file

@ -39,11 +39,11 @@
## Frontend Test Gotchas
- Hidden-route UI checks under `/library/hidden` or `/portal/admin/hidden` require both `files.file_error` and `photos.photo_quality = -1`; `file_error` alone will not surface the row.
- Hidden-route UI checks under `/library/hidden` or `/portal/hidden` require both `files.file_error` and `photos.photo_quality = -1`; `file_error` alone will not surface the row.
## Playwright MCP Usage
- Endpoint `http://localhost:2342/`; logins at `/library/login` (CE/Plus/Pro) and `/portal/admin/login` (Portal). Use local compose admin credentials; if login fails, inspect the active compose env.
- Endpoint `http://localhost:2342/`; logins at `/library/login` (CE/Plus/Pro) and `/portal/login` (Portal). Use local compose admin credentials; if login fails, inspect the active compose env.
- Viewports: desktop `1280x900`; mobile uses the mobile Playwright server at `375x667`. Close the browser tab after scripted interactions.
- Prefer waits over sleeps; click only visible/enabled elements; use role/label/text selectors (not XPath).
- Screenshots: small and reproducible — JPEG, visible viewport, deterministic `.local/screenshots/<case>/<step>__<viewport>.jpg` names, no large inline screenshots.
@ -60,8 +60,12 @@
## Frontend Translations
- Never hardcode locale strings in templates or scripts — every user-visible string MUST go through `$gettext` / `T` so it appears in `frontend/src/locales/translations.pot`.
- Extraction source of truth: root `make gettext-extract` (via `scripts/gettext-extract.sh`), which scans `frontend/src` plus available overlays in `plus/frontend`, `pro/frontend`, `portal/frontend`.
- **Exception — standardized technical identifiers stay untranslated.** Render protocol/acronym/identifier field labels and option values as literal strings, not via `$gettext`: e.g. `Client ID`, `Client Credentials`, `OIDC`, `UUID`, `Node UUID`. Translating them adds catalog noise and risks ambiguous renderings (e.g. "Client" → German "Kunde"). Common English field names like `Site URL` or `Advertise URL` stay translated.
- **Share role/provider labels, not the selectable lists.** Display names live once in `frontend/src/options/auth.js` (`Roles()` / `Providers()` maps, with `RoleOptions(keys, labelKey)` / `ProviderOptions(keys, labelKey)` builders). Private editions (`plus`/`pro`/`portal`) import these and pass their own key list — the selectable sets legitimately differ per edition (cluster_admin, LDAP/AD, reduced Plus set) but the labels must not be re-listed.
- Extraction source of truth: root `make gettext-extract` (via `scripts/gettext-extract.sh`), which scans `frontend/src` plus available overlays in `plus/frontend`, `pro/frontend`, `portal/frontend`. Feature PRs do **not** commit the resulting `.pot`/`.po` churn — Weblate re-extracts on its refresh cycle (see `specs/frontend/translations.md`); a dedicated "Regenerate translation catalogs" commit is the exception.
- Avoid punctuation-only gettext keys (e.g. `$gettext("—")`) — they clutter `frontend/src/locales/translations.pot`.
- Catalog integrity gate: run `make gettext-lint` (`scripts/gettext-lint.mjs`) after any `.po`/`.pot` edit. It flags placeholder-set mismatches between `msgid` and `msgstr` (frontend `%{name}`, backend printf verbs), edge-whitespace drift, and `msgfmt -c` c-format fatals — defects that silently break variable substitution at runtime. Leading/trailing/internal whitespace inside a `msgid` is itself runtime-inert (`vue3-gettext` trims + collapses keys on load and lookup), so trailing-space findings are cleanliness, not correctness.
- Trimming a source string's trailing space must stay consistent across template + `.po` + `.pot`: trim the literal, then `make gettext-extract`. Caveat: `msgmerge --no-fuzzy-matching` treats the trimmed `msgid` as new, blanks its `msgstr`, and moves the old translation to an obsolete `#~` block — so carry that translation onto the active trimmed entry (collapse any folded multi-line `#~ msgstr`) before `make gettext-compile`, or every locale renders untranslated. This only fills `msgstr`, so Weblate merges it cleanly.
## Web Templates & Shared Assets

View file

@ -13,7 +13,7 @@ PLEASE PROCEED ONLY IF YOU ARE SURE THAT THIS IS NOT A TECHNICAL SUPPORT INCIDEN
1. Thoroughly review our [Getting Started](https://docs.photoprism.app/getting-started/) and [User Guides](https://docs.photoprism.app/user-guide/).
2. Work through the [Troubleshooting Checklists](https://docs.photoprism.app/getting-started/troubleshooting/) we provide.
3. Do not report [known issues](https://docs.photoprism.app/known-issues/) or [missing features](https://github.com/photoprism/photoprism/issues) as bugs.
4. Use [GitHub Discussions](https://github.com/photoprism/photoprism/discussions) for community help, and visit our [Support Guide](https://www.photoprism.app/kb/getting-support) to learn more about support options.
4. Use [GitHub Discussions](https://github.com/photoprism/photoprism/discussions) for community help, and visit our [Support Guide](https://www.photoprism.app/kb/getting-support/) to learn more about support options.
THANK YOU! 💎
</details>
@ -23,7 +23,7 @@ THANK YOU! 💎
Links to the related documentation on [docs.photoprism.app](https://docs.photoprism.app/):
- ...
*Please never report [known issues](https://docs.photoprism.app/known-issues/) or [missing features](https://github.com/photoprism/photoprism/issues) as bugs, and do not submit bug reports for the purpose of getting [technical support](https://www.photoprism.app/kb/getting-support) or because you have not received a response in our [public community forums](https://github.com/photoprism/photoprism/discussions). Thank you very much!*
*Please never report [known issues](https://docs.photoprism.app/known-issues/) or [missing features](https://github.com/photoprism/photoprism/issues) as bugs, and do not submit bug reports for the purpose of getting [technical support](https://www.photoprism.app/kb/getting-support/) or because you have not received a response in our [public community forums](https://github.com/photoprism/photoprism/discussions). Thank you very much!*
### 1. How can we reproduce it?
@ -46,7 +46,7 @@ Always try to determine the cause of your problem using the checklists at <https
### 4. Can you provide us with example files for testing, error logs, or screenshots?
Please include sample files or screenshots that help to reproduce your problem. You can also email files or share a download link, see <https://www.photoprism.app/contact> for details.
Please include sample files or screenshots that help to reproduce your problem. You can also email files or share a download link, see <https://www.photoprism.app/contact/> for details.
Visit <https://docs.photoprism.app/getting-started/troubleshooting/browsers/> to learn how to diagnose frontend issues.

View file

@ -11,7 +11,7 @@ body:
1. Thoroughly review our [Getting Started](https://docs.photoprism.app/getting-started/) and [User Guides](https://docs.photoprism.app/user-guide/).
2. Work through the [Troubleshooting Checklists](https://docs.photoprism.app/getting-started/troubleshooting/) we provide.
3. Do not report [known issues](https://docs.photoprism.app/known-issues/) or [missing features](https://github.com/photoprism/photoprism/issues) as bugs.
4. Use [GitHub Discussions](https://github.com/photoprism/photoprism/discussions) for community help, and visit our [Support Guide](https://www.photoprism.app/kb/getting-support) to learn more about support options.
4. Use [GitHub Discussions](https://github.com/photoprism/photoprism/discussions) for community help, and visit our [Support Guide](https://www.photoprism.app/kb/getting-support/) to learn more about support options.
- type: textarea
id: documented-behavior
attributes:

View file

@ -4,5 +4,5 @@ contact_links:
url: https://github.com/photoprism/photoprism/discussions
about: Use Discussions for general questions, community support, and troubleshooting help.
- name: Read Our Support Guide
url: https://www.photoprism.app/kb/getting-support
url: https://www.photoprism.app/kb/getting-support/
about: Learn about official support options and how to get assistance with PhotoPrism.

View file

@ -54,6 +54,10 @@ Optional nested repositories such as `plus/`, `pro/`, `portal/`, and `specs/` ma
- Use level-3 Markdown headings for sections within issue descriptions, for example `### Acceptance Criteria`.
- Follow with behavior, rationale, technical considerations, and constraints.
- End with `- [ ]` checklist items for the acceptance criteria, each using `MUST`, `SHOULD`, or `MAY`.
- Keep the checklist current: once the work for a criterion is implemented **and verified**, mark it done (`- [x]`).
- Leave items that are unverified, not yet implemented, or skipped optional (`MAY`) enhancements unchecked.
- An issue is complete only when every `MUST` is checked; never tick a box on the strength of a plan alone or an unrun test.
- When referencing an issue from a commit that fulfills some of its criteria, update the matching boxes first.
- Agents MUST create, edit, close, reopen, relabel, or otherwise modify GitHub issues only when explicitly requested by the user.
### Specifications & Documentation

View file

@ -70,7 +70,7 @@ HTTP API
- `make swag-json` runs a stabilization step (`swaggerfix`) removing duplicated enums for `time.Duration`; API uses integer nanoseconds for durations.
- `/api/v1/metrics` (see `internal/api/metrics.go`) exposes Prometheus metrics, including cached filesystem/account usage derived from `config.Usage()`, registered user/guest totals, and portal cluster node counts when `NodeRole=portal`; the handler returns the standard Prometheus exposition content type (`text/plain; version=0.0.4`).
- Common groups in `routes.go`: sessions, OAuth/OIDC, config, users, services, thumbnails, video, downloads/zip, index/import, photos/files/labels/subjects/faces, batch ops, cluster, technical (metrics, status, echo).
- Hidden search behavior (used by the hidden route under the configured frontend URI, default `/library/hidden` for CE/Plus/Pro and `/portal/admin/hidden` for Portal) is implemented in `internal/entity/search/photos.go`:
- Hidden search behavior (used by the hidden route under the configured frontend URI, default `/library/hidden` for CE/Plus/Pro and `/portal/hidden` for Portal) is implemented in `internal/entity/search/photos.go`:
- `frm.Hidden` enforces `photos.photo_quality = -1` and `photos.deleted_at IS NULL`.
- Non-hidden searches exclude errored files by default (`files.file_error = ''`) unless `frm.Error` is explicitly set.
- Search DTOs in `internal/entity/search/photos_results.go` expose `FileError` (`files.file_error`) so clients can render hidden reasons without loading full file details first.

View file

@ -1,8 +1,8 @@
# PhotoPrism® Code of Conduct
**By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms), including our [Privacy Policy](https://www.photoprism.app/privacy) and the following Code of Conduct. It explains the "dos and donts" when interacting with our team and other community members.**
**By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms/), including our [Privacy Policy](https://www.photoprism.app/privacy/) and the following Code of Conduct. It explains the "dos and donts" when interacting with our team and other community members.**
*This Code of Conduct was last updated on May 30, 2026. A German translation is available at [photoprism.app/de/code-of-conduct](https://www.photoprism.app/de/code-of-conduct).*
*This Code of Conduct was last updated on May 30, 2026. A German translation is available at [photoprism.app/de/code-of-conduct](https://www.photoprism.app/de/code-of-conduct/).*
## Rules
@ -30,7 +30,7 @@ We have found that many of the issues that new users get upset about when they r
## Reporting
We encourage all community members to resolve problems on their own whenever possible. Serious and persistent violations, such as disrespectful, abusive, harassing, or otherwise unacceptable behavior, [may be reported](https://www.photoprism.app/contact) to us.
We encourage all community members to resolve problems on their own whenever possible. Serious and persistent violations, such as disrespectful, abusive, harassing, or otherwise unacceptable behavior, [may be reported](https://www.photoprism.app/contact/) to us.
## Enforcement
@ -38,4 +38,4 @@ Our community standards will be enforced as necessary to protect everyone's well
In cases where violations may be unintentional and improvement seems possible, we aim to issue warnings before taking further action.
In serious cases, we may use technical measures to restrict your access to our infrastructure, including GitHub, forums, and chats, either temporarily or permanently. We also reserve the right to delete rants, personal attacks, spam, and unsolicited advertisements. If you believe we made a mistake, you may [email us](https://www.photoprism.app/contact) to request an appeal.
In serious cases, we may use technical measures to restrict your access to our infrastructure, including GitHub, forums, and chats, either temporarily or permanently. We also reserve the right to delete rants, personal attacks, spam, and unsolicited advertisements. If you believe we made a mistake, you may [email us](https://www.photoprism.app/contact/) to request an appeal.

View file

@ -4,9 +4,9 @@ We welcome contributions of any kind, including blog posts, tutorials, testing,
## Join the Community ##
Follow us on [Mastodon](https://floss.social/@photoprism), [Bluesky](https://bsky.app/profile/photoprism.app), or join the [Community Chat](https://link.photoprism.app/chat) to get regular updates, connect with other users, and discuss your ideas. Our [Code of Conduct](https://www.photoprism.app/code-of-conduct) explains the "dos and donts" when interacting with other community members.
Follow us on [Mastodon](https://floss.social/@photoprism), [Bluesky](https://bsky.app/profile/photoprism.app), or join the [Community Chat](https://link.photoprism.app/chat) to get regular updates, connect with other users, and discuss your ideas. Our [Code of Conduct](https://www.photoprism.app/code-of-conduct/) explains the "dos and donts" when interacting with other community members.
As a [contributor](https://docs.photoprism.app/developer-guide/), you are also welcome to [contact us directly](https://www.photoprism.app/contact) if you have something on your mind that you don't want to discuss publicly. Please note, however, that due to the high volume of emails we receive, our team may be unable to get back to you immediately. We do our best to respond within five business days or less.
As a [contributor](https://docs.photoprism.app/developer-guide/), you are also welcome to [contact us directly](https://www.photoprism.app/contact/) if you have something on your mind that you don't want to discuss publicly. Please note, however, that due to the high volume of emails we receive, our team may be unable to get back to you immediately. We do our best to respond within five business days or less.
## Not a Developer? No Problem ##
@ -36,7 +36,7 @@ We kindly ask you not to report bugs via GitHub Issues **unless you are certain
- When reporting a problem, always include the software versions you are using and other information about your environment such as [browser, browser plugins](https://docs.photoprism.app/getting-started/troubleshooting/browsers/), operating system, [storage type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#storage), [memory size](https://docs.photoprism.app/getting-started/troubleshooting/performance/#memory), and [processor](https://docs.photoprism.app/getting-started/troubleshooting/performance/#server-cpu)
- Note that all issue **subscribers receive an email notification** from GitHub whenever a new comment is added, so these should only be used for sharing important information and not for discussions, questions or expressing personal opinions
- [Contact us](https://www.photoprism.app/contact) or [a community member](https://link.photoprism.app/discussions) if you need help, it could be a local configuration problem, or a misunderstanding in how the software works
- [Contact us](https://www.photoprism.app/contact/) or [a community member](https://link.photoprism.app/discussions) if you need help, it could be a local configuration problem, or a misunderstanding in how the software works
- This gives our team the opportunity to [improve the docs](https://docs.photoprism.app/getting-started/troubleshooting/) and provide best-in-class support to you, instead of handling unclear/duplicate bug reports or triggering a flood of notifications by responding to comments
## Submitting Pull Requests ##
@ -51,7 +51,7 @@ Pull requests solving ["help wanted"](https://github.com/photoprism/photoprism/l
## Contributor License Agreement (CLA) ##
After you submit your first pull request, you will be asked to accept our Contributor License Agreement (CLA). Visit [photoprism.app/cla](https://www.photoprism.app/cla) and [photoprism.app/oss/faq](https://www.photoprism.app/oss/faq#cla) to learn more.
After you submit your first pull request, you will be asked to accept our Contributor License Agreement (CLA). Visit [photoprism.app/cla](https://www.photoprism.app/cla/) and [photoprism.app/oss/faq](https://www.photoprism.app/oss/faq/#cla) to learn more.
## Thank You to All Current and Past Sponsors 💎 ##
@ -76,4 +76,4 @@ Because many of these apps and tools were originally developed for internal use
----
*PhotoPrism® is a [registered trademark](https://www.photoprism.app/trademark). By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms), [Privacy Policy](https://www.photoprism.app/privacy), and [Code of Conduct](https://www.photoprism.app/code-of-conduct). Docs are [available](https://link.photoprism.app/github-docs) under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/); [additional terms](https://github.com/photoprism/photoprism/blob/develop/assets/README.md) may apply.*
*PhotoPrism® is a [registered trademark](https://www.photoprism.app/trademark/). By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms/), [Privacy Policy](https://www.photoprism.app/privacy/), and [Code of Conduct](https://www.photoprism.app/code-of-conduct/). Docs are [available](https://link.photoprism.app/github-docs) under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/); [additional terms](https://github.com/photoprism/photoprism/blob/develop/assets/README.md) may apply.*

View file

@ -1,5 +1,5 @@
# Ubuntu 26.04 LTS (Resolute Raccoon)
FROM photoprism/develop:260531-resolute
FROM photoprism/develop:260709-resolute
# Harden npm usage by default (applies to npm ci / install in dev container)
ENV NPM_CONFIG_IGNORE_SCRIPTS=true

View file

@ -1,3 +1,3 @@
custom: "https://www.photoprism.app/editions#compare"
custom: "https://www.photoprism.app/editions/#compare"
github: photoprism
patreon: photoprism

View file

@ -625,7 +625,7 @@ corporate design, product and service names, and any other brand features
and elements, whether registered or unregistered („Brand Assets“) — are
proprietary assets owned exclusively by PhotoPrism UG („PhotoPrism“). We
reserve the right to object to any use or misuse in any jurisdiction
worldwide. Visit <https://www.photoprism.app/trademark> to learn more.
worldwide. Visit <https://www.photoprism.app/trademark/> to learn more.
(b) Contributors, licensees, business partners, and other third parties
may never claim ownership of PhotoPrism's Brand Assets or brands confusingly

View file

@ -89,21 +89,22 @@ test-commands: run-test-commands
test-photoprism: run-test-photoprism
test-short: run-test-short
test-mariadb: reset-acceptance run-test-mariadb
acceptance-run-chromium: storage/acceptance acceptance-auth-sqlite-restart wait acceptance-auth acceptance-auth-sqlite-stop acceptance-sqlite-restart wait-2 acceptance acceptance-sqlite-stop
acceptance-run-chromium-short: storage/acceptance acceptance-auth-sqlite-restart wait acceptance-auth-short acceptance-auth-sqlite-stop acceptance-sqlite-restart wait-2 acceptance-short acceptance-sqlite-stop
acceptance-auth-run-chromium: storage/acceptance acceptance-auth-sqlite-restart wait acceptance-auth acceptance-auth-sqlite-stop
acceptance-public-run-chromium: storage/acceptance acceptance-sqlite-restart wait acceptance acceptance-sqlite-stop
acceptance-run-chromium: storage/acceptance acceptance-sqlite-restart-1 wait-1 acceptance-api acceptance-sqlite-stop-1 acceptance-auth-sqlite-restart wait-2 acceptance-auth acceptance-auth-sqlite-stop acceptance-sqlite-restart-3 wait-3 acceptance acceptance-sqlite-stop-3
acceptance-run-chromium-short: storage/acceptance acceptance-auth-sqlite-restart wait-1 acceptance-auth-short acceptance-auth-sqlite-stop acceptance-sqlite-restart-2 wait-2 acceptance-short acceptance-sqlite-stop-2
acceptance-auth-run-chromium: storage/acceptance acceptance-auth-sqlite-restart wait-1 acceptance-auth acceptance-auth-sqlite-stop
acceptance-public-run-chromium: storage/acceptance acceptance-sqlite-restart-1 wait-1 acceptance acceptance-sqlite-stop-1
acceptance-api-run-chromium: storage/acceptance acceptance-sqlite-restart-1 wait-1 acceptance-api acceptance-sqlite-stop-1
help: list
list:
@awk '/^[[:alnum:]]+[^[:space:]]+:/ {printf "%s",substr($$1,1,length($$1)-1); if (match($$0,/#/)) {desc=substr($$0,RSTART+1); sub(/^[[:space:]]+/,"",desc); printf " - %s\n",desc} else printf "\n" }' "$(firstword $(MAKEFILE_LIST))"
wait:
sleep 20
wait-2:
wait-%:
sleep 20
show-rev:
@git rev-parse HEAD
show-build:
@echo "$(BUILD_TAG)"
tag-release:
scripts/tag-release.sh $(EDITION) $(TAG_ARGS)
test-all: test acceptance-run-chromium
fmt: fmt-js fmt-go fmt-swag
format: format-tables fmt-go fmt-swag
@ -180,6 +181,8 @@ gettext-compile:
$(MAKE) -C frontend gettext-compile
gettext-clear-fuzzy:
./scripts/gettext-clear-fuzzy.sh
gettext-lint:
node scripts/gettext-lint.mjs
clean:
rm -f *.log .test*
[ ! -f "$(BINARY_NAME)" ] || rm -f $(BINARY_NAME)
@ -224,7 +227,7 @@ install-onnx:
sudo scripts/dist/install-onnx.sh
install-darktable:
sudo scripts/dist/install-darktable.sh
acceptance-sqlite-restart: acceptance-sqlite-stop
acceptance-sqlite-restart-%: acceptance-sqlite-stop-%
cp -f storage/acceptance/backup.db storage/acceptance/index.db
cp -f storage/acceptance/config-sqlite/settingsBackup.yml storage/acceptance/config-sqlite/settings.yml
rm -rf storage/acceptance/sidecar/2020
@ -235,7 +238,7 @@ acceptance-sqlite-restart: acceptance-sqlite-stop
rm -rf storage/acceptance/originals/2013
rm -rf storage/acceptance/originals/2017
./photoprism --auth-mode="public" -c "./storage/acceptance/config-sqlite" start -d
acceptance-sqlite-stop:
acceptance-sqlite-stop-%:
./photoprism --auth-mode="public" -c "./storage/acceptance/config-sqlite" stop
acceptance-auth-sqlite-restart: acceptance-auth-sqlite-stop
cp -f storage/acceptance/backup.db storage/acceptance/index.db
@ -436,21 +439,23 @@ build-static:
scripts/build.sh static $(BINARY_NAME)
build-libheif: build-libheif-amd64 build-libheif-arm64 build-libheif-armv7
build-libheif-amd64:
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:resolute ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:questing ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:plucky ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:noble ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:bookworm ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:resolute ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:questing ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:plucky ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:noble ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:bookworm ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:trixie ./scripts/dist/build-libheif.sh v1.23.1
build-libheif-arm64:
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:resolute ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:questing ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:plucky ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:noble ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:bookworm ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:resolute ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:questing ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:plucky ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:noble ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:bookworm ./scripts/dist/build-libheif.sh v1.23.1
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:trixie ./scripts/dist/build-libheif.sh v1.23.1
build-libheif-armv7:
docker run --rm -u $(UID) --platform=arm --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm -e SYSTEM_ARCH=arm photoprism/develop:armv7 ./scripts/dist/build-libheif.sh v1.22.2
docker run --rm -u $(UID) --platform=arm --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm -e SYSTEM_ARCH=arm photoprism/develop:armv7 ./scripts/dist/build-libheif.sh v1.23.1
build-libheif-latest: build-libheif-amd64-latest build-libheif-arm64-latest build-libheif-armv7-latest
build-libheif-amd64-latest:
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:resolute ./scripts/dist/build-libheif.sh
@ -468,9 +473,9 @@ build-libheif-armv7-latest:
docker run --rm -u $(UID) --platform=arm --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm -e SYSTEM_ARCH=arm photoprism/develop:armv7 ./scripts/dist/build-libheif.sh
build-libheif-deb: build-libheif-deb-amd64 build-libheif-deb-arm64
build-libheif-deb-amd64:
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:resolute ./scripts/dist/build-libheif-deb.sh v1.22.2
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:resolute ./scripts/dist/build-libheif-deb.sh v1.23.1
build-libheif-deb-arm64:
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:resolute ./scripts/dist/build-libheif-deb.sh v1.22.2
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:resolute ./scripts/dist/build-libheif-deb.sh v1.23.1
build-tensorflow: docker-tensorflow-amd64
docker-tensorflow: docker-tensorflow-amd64
docker-tensorflow-amd64:
@ -496,20 +501,23 @@ test-js:
(cd frontend && npm run test)
acceptance:
$(info Running public-mode tests in Chrome...)
(cd frontend && find ./tests/acceptance -type f -name "*.js" | xargs -i perl -0777 -ne 'while(/(?:mode: \"auth[^,]*\,)|(Multi-Window\:[A-Za-z 0-9\-_]*)/g){print "$$1\n" if ($$1);}' {} | xargs -I testname bash -c 'npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --experimental-multiple-windows --test-meta mode=public --config-file ./testcaferc.json --test "testname" "tests/acceptance"')
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-grep "^(Common|Core)\:*" --test-meta mode=public --config-file ./testcaferc.json "tests/acceptance")
(cd frontend && find ./tests/acceptance -type f -name "*.js" | xargs -i perl -0777 -ne 'while(/(?:mode: \"auth[^,]*\,)|(Multi-Window\:[A-Za-z 0-9\-_]*)/g){print "$$1\n" if ($$1);}' {} | xargs -I testname bash -c 'npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --experimental-multiple-windows --test-meta mode=public --config-file ./.testcaferc.cjs --test "testname" "tests/acceptance"')
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-grep "^(Common|Core)\:*" --test-meta mode=public --config-file ./.testcaferc.cjs "tests/acceptance")
acceptance-short:
$(info Running JS acceptance tests in Chrome...)
(cd frontend && find ./tests/acceptance -type f -name "*.js" | xargs -i perl -0777 -ne 'while(/(?:mode: \"auth[^,]*\,)|(Multi-Window\:[A-Za-z 0-9\-_]*)/g){print "$$1\n" if ($$1);}' {} | xargs -I testname bash -c 'npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --experimental-multiple-windows --test-meta mode=public,type=short --config-file ./testcaferc.json --test "testname" "tests/acceptance"')
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-grep "^(Common|Core)\:*" --test-meta mode=public,type=short --config-file ./testcaferc.json "tests/acceptance")
(cd frontend && find ./tests/acceptance -type f -name "*.js" | xargs -i perl -0777 -ne 'while(/(?:mode: \"auth[^,]*\,)|(Multi-Window\:[A-Za-z 0-9\-_]*)/g){print "$$1\n" if ($$1);}' {} | xargs -I testname bash -c 'npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --experimental-multiple-windows --test-meta mode=public,type=short --config-file ./.testcaferc.cjs --test "testname" "tests/acceptance"')
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-grep "^(Common|Core)\:*" --test-meta mode=public,type=short --config-file ./.testcaferc.cjs "tests/acceptance")
acceptance-auth:
$(info Running JS acceptance-auth tests in Chrome...)
(cd frontend && find ./tests/acceptance -type f -name "*.js" | xargs -i perl -0777 -ne 'while(/(?:mode: \"public[^,]*\,)|(Multi-Window\:[A-Za-z 0-9\-_]*)/g){print "$$1\n" if ($$1);}' {} | xargs -I testname bash -c 'npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --experimental-multiple-windows --test-meta mode=auth --config-file ./testcaferc.json --test "testname" "tests/acceptance"')
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-grep "^(Common|Core)\:*" --test-meta mode=auth --config-file ./testcaferc.json "tests/acceptance")
(cd frontend && find ./tests/acceptance -type f -name "*.js" | xargs -i perl -0777 -ne 'while(/(?:mode: \"public[^,]*\,)|(Multi-Window\:[A-Za-z 0-9\-_]*)/g){print "$$1\n" if ($$1);}' {} | xargs -I testname bash -c 'npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --experimental-multiple-windows --test-meta mode=auth --config-file ./.testcaferc.cjs --test "testname" "tests/acceptance"')
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-grep "^(Common|Core)\:*" --test-meta mode=auth --config-file ./.testcaferc.cjs "tests/acceptance")
acceptance-auth-short:
$(info Running JS acceptance-auth tests in Chrome...)
(cd frontend && find ./tests/acceptance -type f -name "*.js" | xargs -i perl -0777 -ne 'while(/(?:mode: \"public[^,]*\,)|(Multi-Window\:[A-Za-z 0-9\-_]*)/g){print "$$1\n" if ($$1);}' {} | xargs -I testname bash -c 'npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --experimental-multiple-windows --test-meta mode=auth,type=short --config-file ./testcaferc.json --test "testname" "tests/acceptance"')
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-grep "^(Common|Core)\:*" --test-meta mode=auth,type=short --config-file ./testcaferc.json "tests/acceptance")
(cd frontend && find ./tests/acceptance -type f -name "*.js" | xargs -i perl -0777 -ne 'while(/(?:mode: \"public[^,]*\,)|(Multi-Window\:[A-Za-z 0-9\-_]*)/g){print "$$1\n" if ($$1);}' {} | xargs -I testname bash -c 'npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --experimental-multiple-windows --test-meta mode=auth,type=short --config-file ./.testcaferc.cjs --test "testname" "tests/acceptance"')
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-grep "^(Common|Core)\:*" --test-meta mode=auth,type=short --config-file ./.testcaferc.cjs "tests/acceptance")
acceptance-api:
$(info Running JS acceptance-api tests in Chrome...)
(cd frontend && npm run testcafe -- "chrome --headless=new --use-gl=angle --use-angle=swiftshader --disable-features=LocalNetworkAccessChecks" --test-meta mode=api --config-file ./.testcaferc.cjs "tests/acceptance")
vitest-watch:
$(info Running Vitest unit tests in watch mode...)
(cd frontend && npm run test-watch)
@ -603,7 +611,7 @@ docker-pull:
$(DOCKER_COMPOSE) -f compose.latest.yaml pull --ignore-pull-failures
build-docker: docker-build
docker-build:
$(DOCKER_COMPOSE) --profile=all pull --ignore-pull-failures
$(DOCKER_COMPOSE) --profile=postgres --profile=keycloak pull --ignore-pull-failures
$(DOCKER_COMPOSE) down --remove-orphans
$(DOCKER_COMPOSE) build --pull
nvidia: nvidia-up
@ -1074,9 +1082,6 @@ docker-local-develop-resolute:
docker-ddns:
docker pull golang:alpine
scripts/docker/buildx-multi.sh ddns linux/amd64,linux/arm64 $(BUILD_DATE)
docker-goproxy:
docker pull golang:alpine
scripts/docker/buildx-multi.sh goproxy linux/amd64,linux/arm64 $(BUILD_DATE)
demo: docker-demo
docker-demo: docker-demo-latest
docker-demo-all: docker-demo-latest docker-demo-debian

521
NOTICE
View file

@ -9,7 +9,7 @@ The following 3rd-party software packages may be used by or distributed with
PhotoPrism. Any information relevant to third-party vendors listed below are
collected using common, reasonable means.
Date generated: 2026-05-31
Date generated: 2026-07-18
================================================================================
@ -267,8 +267,8 @@ limitations under the License.
--------------------------------------------------------------------------------
Package: github.com/abema/go-mp4
Version: v1.6.0
License: MIT (https://github.com/abema/go-mp4/blob/v1.6.0/LICENSE)
Version: v1.7.1
License: MIT (https://github.com/abema/go-mp4/blob/v1.7.1/LICENSE)
MIT License
@ -294,6 +294,52 @@ SOFTWARE.
--------------------------------------------------------------------------------
Package: github.com/antchfx/xmlquery
Version: v1.5.1
License: MIT (https://github.com/antchfx/xmlquery/blob/v1.5.1/LICENSE)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
--------------------------------------------------------------------------------
Package: github.com/antchfx/xpath
Version: v1.3.7
License: MIT (https://github.com/antchfx/xpath/blob/v1.3.7/LICENSE)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
--------------------------------------------------------------------------------
Package: github.com/beorn7/perks/quantile
Version: v1.0.1
License: MIT (https://github.com/beorn7/perks/blob/v1.0.1/LICENSE)
@ -1122,8 +1168,8 @@ THE SOFTWARE.
--------------------------------------------------------------------------------
Package: github.com/go-co-op/gocron/v2
Version: v2.21.2
License: MIT (https://github.com/go-co-op/gocron/blob/v2.21.2/LICENSE)
Version: v2.22.0
License: MIT (https://github.com/go-co-op/gocron/blob/v2.22.0/LICENSE)
MIT License
@ -2387,8 +2433,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
--------------------------------------------------------------------------------
Package: github.com/golang/geo
Version: v0.0.0-20260526120156-e21b7802b0ee
License: Apache-2.0 (https://github.com/golang/geo/blob/e21b7802b0ee/LICENSE)
Version: v0.0.0-20260713102120-857a528af641
License: Apache-2.0 (https://github.com/golang/geo/blob/857a528af641/LICENSE)
Apache License
@ -2595,6 +2641,204 @@ License: Apache-2.0 (https://github.com/golang/geo/blob/e21b7802b0ee/LICENSE)
--------------------------------------------------------------------------------
Package: github.com/golang/groupcache/lru
Version: v0.0.0-20210331224755-41bb18bfe9da
License: Apache-2.0 (https://github.com/golang/groupcache/blob/41bb18bfe9da/LICENSE)
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, "control" means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising
permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
"Object" form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
2. Grant of Copyright License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
3. Grant of Patent License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.
4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of
this License; and
You must cause any modified files to carry prominent notices stating that You
changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
5. Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.
6. Trademarks.
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
7. Disclaimer of Warranty.
Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.
8. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability.
While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "[]" replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same "printed page" as the copyright notice for easier identification within
third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--------------------------------------------------------------------------------
Package: github.com/google/jsonschema-go/jsonschema
Version: v0.4.3
License: MIT (https://github.com/google/jsonschema-go/blob/v0.4.3/LICENSE)
@ -3816,8 +4060,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: github.com/klauspost/compress
Version: v1.18.6
License: Apache-2.0 (https://github.com/klauspost/compress/blob/v1.18.6/LICENSE)
Version: v1.19.0
License: Apache-2.0 (https://github.com/klauspost/compress/blob/v1.19.0/LICENSE)
Copyright (c) 2012 The Go Authors. All rights reserved.
Copyright (c) 2019 Klaus Post. All rights reserved.
@ -4127,8 +4371,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
--------------------------------------------------------------------------------
Package: github.com/klauspost/compress/internal/snapref
Version: v1.18.6
License: BSD-3-Clause (https://github.com/klauspost/compress/blob/v1.18.6/internal/snapref/LICENSE)
Version: v1.19.0
License: BSD-3-Clause (https://github.com/klauspost/compress/blob/v1.19.0/internal/snapref/LICENSE)
Copyright (c) 2011 The Snappy-Go Authors. All rights reserved.
@ -4161,8 +4405,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: github.com/klauspost/compress/zstd/internal/xxhash
Version: v1.18.6
License: MIT (https://github.com/klauspost/compress/blob/v1.18.6/zstd/internal/xxhash/LICENSE.txt)
Version: v1.19.0
License: MIT (https://github.com/klauspost/compress/blob/v1.19.0/zstd/internal/xxhash/LICENSE.txt)
Copyright (c) 2016 Caleb Spare
@ -4190,8 +4434,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
Package: github.com/klauspost/cpuid/v2
Version: v2.3.0
License: MIT (https://github.com/klauspost/cpuid/blob/v2.3.0/LICENSE)
Version: v2.4.0
License: MIT (https://github.com/klauspost/cpuid/blob/v2.4.0/LICENSE)
The MIT License (MIT)
@ -4219,8 +4463,8 @@ SOFTWARE.
--------------------------------------------------------------------------------
Package: github.com/leandro-lugaresi/hub
Version: v1.1.1
License: Apache-2.0 (https://github.com/leandro-lugaresi/hub/blob/v1.1.1/LICENSE)
Version: v1.1.2
License: Apache-2.0 (https://github.com/leandro-lugaresi/hub/blob/v1.1.2/LICENSE)
Apache License
Version 2.0, January 2004
@ -4946,8 +5190,8 @@ the full license text.
--------------------------------------------------------------------------------
Package: github.com/montanaflynn/stats
Version: v0.9.0
License: MIT (https://github.com/montanaflynn/stats/blob/v0.9.0/LICENSE)
Version: v0.12.2
License: MIT (https://github.com/montanaflynn/stats/blob/v0.12.2/LICENSE)
The MIT License (MIT)
@ -5894,8 +6138,8 @@ License: Apache-2.0 (https://github.com/prometheus/client_model/blob/v0.6.2/LICE
--------------------------------------------------------------------------------
Package: github.com/prometheus/common
Version: v0.68.0
License: Apache-2.0 (https://github.com/prometheus/common/blob/v0.68.0/LICENSE)
Version: v0.70.0
License: Apache-2.0 (https://github.com/prometheus/common/blob/v0.70.0/LICENSE)
Apache License
Version 2.0, January 2004
@ -6102,8 +6346,8 @@ License: Apache-2.0 (https://github.com/prometheus/common/blob/v0.68.0/LICENSE)
--------------------------------------------------------------------------------
Package: github.com/prometheus/procfs
Version: v0.20.1
License: Apache-2.0 (https://github.com/prometheus/procfs/blob/v0.20.1/LICENSE)
Version: v0.21.0
License: Apache-2.0 (https://github.com/prometheus/procfs/blob/v0.21.0/LICENSE)
Apache License
Version 2.0, January 2004
@ -6973,8 +7217,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
Package: github.com/yalue/onnxruntime_go
Version: v1.30.1
License: MIT (https://github.com/yalue/onnxruntime_go/blob/v1.30.1/LICENSE)
Version: v1.31.0
License: MIT (https://github.com/yalue/onnxruntime_go/blob/v1.31.0/LICENSE)
Copyright (c) 2023 Nathan Otterness
@ -7239,8 +7483,8 @@ License: Apache-2.0 (https://github.com/zitadel/logging/blob/v0.7.0/LICENSE)
--------------------------------------------------------------------------------
Package: github.com/zitadel/oidc/v3
Version: v3.47.5
License: Apache-2.0 (https://github.com/zitadel/oidc/blob/v3.47.5/LICENSE)
Version: v3.47.9
License: Apache-2.0 (https://github.com/zitadel/oidc/blob/v3.47.9/LICENSE)
Apache License
Version 2.0, January 2004
@ -7897,8 +8141,8 @@ License: Apache-2.0 (https://github.com/open-telemetry/opentelemetry-go-instrume
--------------------------------------------------------------------------------
Package: go.opentelemetry.io/otel
Version: v1.43.0
License: Apache-2.0 (https://github.com/open-telemetry/opentelemetry-go/blob/v1.43.0/LICENSE)
Version: v1.44.0
License: Apache-2.0 (https://github.com/open-telemetry/opentelemetry-go/blob/v1.44.0/LICENSE)
Apache License
Version 2.0, January 2004
@ -8134,8 +8378,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: go.opentelemetry.io/otel/metric
Version: v1.43.0
License: Apache-2.0 (https://github.com/open-telemetry/opentelemetry-go/blob/metric/v1.43.0/metric/LICENSE)
Version: v1.44.0
License: Apache-2.0 (https://github.com/open-telemetry/opentelemetry-go/blob/metric/v1.44.0/metric/LICENSE)
Apache License
Version 2.0, January 2004
@ -8371,8 +8615,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: go.opentelemetry.io/otel/trace
Version: v1.43.0
License: Apache-2.0 (https://github.com/open-telemetry/opentelemetry-go/blob/trace/v1.43.0/trace/LICENSE)
Version: v1.44.0
License: Apache-2.0 (https://github.com/open-telemetry/opentelemetry-go/blob/trace/v1.44.0/trace/LICENSE)
Apache License
Version 2.0, January 2004
@ -8817,8 +9061,8 @@ License: Apache-2.0 (https://github.com/go4org/go4/blob/a5071408f32f/LICENSE)
--------------------------------------------------------------------------------
Package: golang.org/x/crypto
Version: v0.52.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/crypto/+/v0.52.0:LICENSE)
Version: v0.54.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/crypto/+/v0.54.0:LICENSE)
Copyright 2009 The Go Authors.
@ -8851,8 +9095,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: golang.org/x/image
Version: v0.41.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/image/+/v0.41.0:LICENSE)
Version: v0.44.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/image/+/v0.44.0:LICENSE)
Copyright 2009 The Go Authors.
@ -8885,8 +9129,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: golang.org/x/mod/semver
Version: v0.36.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/mod/+/v0.36.0:LICENSE)
Version: v0.38.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/mod/+/v0.38.0:LICENSE)
Copyright 2009 The Go Authors.
@ -8919,8 +9163,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: golang.org/x/net
Version: v0.55.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/net/+/v0.55.0:LICENSE)
Version: v0.57.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/net/+/v0.57.0:LICENSE)
Copyright 2009 The Go Authors.
@ -8987,8 +9231,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: golang.org/x/sync/errgroup
Version: v0.20.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/sync/+/v0.20.0:LICENSE)
Version: v0.22.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/sync/+/v0.22.0:LICENSE)
Copyright 2009 The Go Authors.
@ -9021,8 +9265,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: golang.org/x/sys
Version: v0.45.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/sys/+/v0.45.0:LICENSE)
Version: v0.47.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/sys/+/v0.47.0:LICENSE)
Copyright 2009 The Go Authors.
@ -9055,8 +9299,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
Package: golang.org/x/text
Version: v0.37.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/text/+/v0.37.0:LICENSE)
Version: v0.40.0
License: BSD-3-Clause (https://cs.opensource.google/go/x/text/+/v0.40.0:LICENSE)
Copyright 2009 The Go Authors.
@ -9402,94 +9646,95 @@ License: Apache-2.0 (https://github.com/go-yaml/yaml/blob/v2.4.0/LICENSE)
--------------------------------------------------------------------------------
Package License Copyright
--------------------------------------------------------------------------------
@babel/cli MIT The Babel Team (https://babel.dev/team)
@babel/core MIT The Babel Team (https://babel.dev/team)
@babel/plugin-transform-runtime MIT The Babel Team (https://babel.dev/team)
@babel/preset-env MIT The Babel Team (https://babel.dev/team)
@babel/register MIT The Babel Team (https://babel.dev/team)
@babel/runtime MIT The Babel Team (https://babel.dev/team)
@eslint/eslintrc MIT Nicholas C. Zakas
@eslint/js MIT n/a
@mdi/font Apache-2.0 Austin Andrews
@testing-library/jest-dom MIT Ernesto Garcia <gnapse@gmail.com> (http://gnapse.github.io)
@vitejs/plugin-vue MIT Evan You
@vitest/browser MIT n/a
@vitest/coverage-v8 MIT Anthony Fu <anthonyfu117@hotmail.com>
@vitest/ui MIT n/a
@vue/compiler-sfc MIT Evan You
@vue/language-server MIT n/a
@vue/test-utils MIT Lachlan Miller lachlan.miller.1990@outlook.com
@vvo/tzdb MIT Vincent Voyer <vincent@codeagain.com>
axios MIT Matt Zabriskie
axios-mock-adapter MIT Colin Timmermans <colintimmermans@gmail.com>
babel-loader MIT Luis Couto <hello@luiscouto.pt>
babel-plugin-istanbul BSD-3-Clause Thai Pangsakulyanont @dtinth
babel-plugin-polyfill-corejs3 MIT n/a
browserslist MIT Andrey Sitnik <andrey@sitnik.es>
core-js MIT Denis Pushkarev zloirock@zloirock.ru http://zloirock.ru
cross-env MIT Kent C. Dodds <me@kentcdodds.com> (https://kentcdodds.com)
css-loader MIT Tobias Koppers @sokra
cssnano MIT Ben Briggs beneb.info@gmail.com http://beneb.info
eslint MIT Nicholas C. Zakas <nicholas+npm@nczconsulting.com>
eslint-config-prettier MIT Simon Lydell
eslint-formatter-pretty MIT Sindre Sorhus sindresorhus@gmail.com https://sindresorhus.com
eslint-plugin-html ISC n/a
eslint-plugin-import MIT Ben Mosher <me@benmosher.com>
eslint-plugin-node MIT Toru Nagashima
eslint-plugin-vue MIT Toru Nagashima (https://github.com/mysticatea)
eslint-plugin-vuetify MIT Kael Watts-Deuchar <kaelwd@gmail.com>
eslint-webpack-plugin MIT Ricardo Gobbo de Souza <ricardogobbosouza@yahoo.com.br>
eventsource-polyfill MIT amvtek <devel@amvtek.com>
file-loader MIT Tobias Koppers @sokra
file-saver MIT Eli Grey <me@eligrey.com>
globals MIT Sindre Sorhus sindresorhus@gmail.com https://sindresorhus.com
hls.js Apache-2.0 n/a
i MIT Pavan Kumar Sunkara <pavan.sss1991@gmail.com> (pksunkara.github.com)
jsdom MIT n/a
luxon MIT Isaac Cambron
maplibre-gl BSD-3-Clause n/a
memoize-one MIT Alex Reardon <alexreardon@gmail.com>
mini-css-extract-plugin MIT Tobias Koppers @sokra
minimist MIT James Halliday mail@substack.net http://substack.net
node-storage-shim ISC Michael Nahkies
passive-events-support MIT Ignas Damunskis <ignas3run@gmail.com>
photoswipe MIT Dmytro Semenov (https://dimsemenov.com)
playwright Apache-2.0 Microsoft Corporation
postcss MIT Andrey Sitnik <andrey@sitnik.es>
postcss-import MIT Maxime Thirouin
postcss-loader MIT Andrey Sitnik <andrey@sitnik.ru>
postcss-preset-env MIT-0 n/a
postcss-reporter MIT David Clark david.dave.clark@gmail.com https://davidtheclark.com
prettier MIT James Long
pubsub-js MIT Morgan Roderick morgan@roderick.dk http://roderick.dk
regenerator-runtime MIT Ben Newman <bn@cs.stanford.edu>
resolve-url-loader MIT bholloway
sanitize-html MIT Apostrophe Technologies, Inc.
sass MIT Natalie Weizenbaum nweiz@google.com https://github.com/nex3
sass-loader MIT J. Tangelder
sockette MIT Luke Edwards luke.edwards05@gmail.com lukeed.com
style-loader MIT Tobias Koppers @sokra
svg-url-loader MIT Hovhannes Babayan
tar BlueOak-1.0.0 Isaac Z. Schlueter
url-loader MIT Tobias Koppers @sokra
util MIT Joyent http://www.joyent.com
vitest MIT Anthony Fu <anthonyfu117@hotmail.com>
vue MIT Evan You
vue-3-sanitize MIT Vannsl, Vanessa Otto <mail@vannsl.io>
vue-loader MIT Evan You
vue-loader-plugin ISC Ivan liu
vue-luxon MIT Cas Bloem
vue-router MIT Eduardo San Martin Morote posva13@gmail.com
vue-sanitize-directive MIT Leonardo Piccioni de Almeida leopiccionia@gmail.com
vue-style-loader MIT Evan You
vue3-gettext MIT Leo Zurbriggen
vuetify MIT John Leider john@vuetifyjs.com
webpack MIT Tobias Koppers @sokra
webpack-bundle-analyzer MIT Yury Grunin <grunin.ya@ya.ru>
webpack-cli MIT n/a
webpack-hot-middleware MIT Glen Mailer <glen@stainlessed.co.uk>
webpack-manifest-plugin MIT Dane Thurber <dane.thurber@gmail.com>
webpack-md5-hash MIT Kirill Ermolov
webpack-merge MIT Juho Vepsalainen <bebraw@gmail.com>
webpack-plugin-vuetify MIT Kael Watts-Deuchar
workbox-webpack-plugin MIT Google's Web DevRel Team and Google's Aurora Team
@babel/cli MIT The Babel Team (https://babel.dev/team)
@babel/core MIT The Babel Team (https://babel.dev/team)
@babel/plugin-transform-runtime MIT The Babel Team (https://babel.dev/team)
@babel/preset-env MIT The Babel Team (https://babel.dev/team)
@babel/register MIT The Babel Team (https://babel.dev/team)
@babel/runtime MIT The Babel Team (https://babel.dev/team)
@eslint/eslintrc MIT Nicholas C. Zakas
@eslint/js MIT n/a
@mdi/font Apache-2.0 Austin Andrews
@photo-sphere-viewer/core MIT Damien 'Mistic' Sorel contact@git.strangeplanet.fr
@photo-sphere-viewer/equirectangular-video-adapter MIT Damien 'Mistic' Sorel contact@git.strangeplanet.fr
@photo-sphere-viewer/video-plugin MIT Damien 'Mistic' Sorel contact@git.strangeplanet.fr
@testing-library/jest-dom MIT Ernesto Garcia <gnapse@gmail.com> (http://gnapse.github.io)
@vitejs/plugin-vue MIT Evan You
@vitest/coverage-v8 MIT Anthony Fu <anthonyfu117@hotmail.com>
@vue/compiler-sfc MIT Evan You
@vue/language-server MIT n/a
@vue/test-utils MIT Lachlan Miller lachlan.miller.1990@outlook.com
@vvo/tzdb MIT Vincent Voyer <vincent@codeagain.com>
axios MIT Matt Zabriskie
axios-mock-adapter MIT Colin Timmermans <colintimmermans@gmail.com>
babel-loader MIT Luis Couto <hello@luiscouto.pt>
babel-plugin-polyfill-corejs3 MIT n/a
browserslist MIT Andrey Sitnik <andrey@sitnik.es>
core-js MIT Denis Pushkarev zloirock@zloirock.ru http://zloirock.ru
cross-env MIT Kent C. Dodds <me@kentcdodds.com> (https://kentcdodds.com)
css-loader MIT Tobias Koppers @sokra
cssnano MIT Ben Briggs beneb.info@gmail.com http://beneb.info
eslint MIT Nicholas C. Zakas <nicholas+npm@nczconsulting.com>
eslint-config-prettier MIT Simon Lydell
eslint-formatter-pretty MIT Sindre Sorhus sindresorhus@gmail.com https://sindresorhus.com
eslint-plugin-html ISC n/a
eslint-plugin-import MIT Ben Mosher <me@benmosher.com>
eslint-plugin-node MIT Toru Nagashima
eslint-plugin-vue MIT Toru Nagashima (https://github.com/mysticatea)
eslint-plugin-vuetify MIT Kael Watts-Deuchar <kaelwd@gmail.com>
eslint-webpack-plugin MIT Ricardo Gobbo de Souza <ricardogobbosouza@yahoo.com.br>
eventsource-polyfill MIT amvtek <devel@amvtek.com>
file-loader MIT Tobias Koppers @sokra
file-saver MIT Eli Grey <me@eligrey.com>
globals MIT Sindre Sorhus sindresorhus@gmail.com https://sindresorhus.com
hls.js Apache-2.0 n/a
i MIT Pavan Kumar Sunkara <pavan.sss1991@gmail.com> (pksunkara.github.com)
jsdom MIT n/a
luxon MIT Isaac Cambron
maplibre-gl BSD-3-Clause n/a
memoize-one MIT Alex Reardon <alexreardon@gmail.com>
mini-css-extract-plugin MIT Tobias Koppers @sokra
minimist MIT James Halliday mail@substack.net http://substack.net
node-storage-shim ISC Michael Nahkies
passive-events-support MIT Ignas Damunskis <ignas3run@gmail.com>
photoswipe MIT Dmytro Semenov (https://dimsemenov.com)
playwright Apache-2.0 Microsoft Corporation
postcss MIT Andrey Sitnik <andrey@sitnik.es>
postcss-import MIT Maxime Thirouin
postcss-loader MIT Andrey Sitnik <andrey@sitnik.ru>
postcss-preset-env MIT-0 n/a
postcss-reporter MIT David Clark david.dave.clark@gmail.com https://davidtheclark.com
prettier MIT James Long
pubsub-js MIT Morgan Roderick morgan@roderick.dk http://roderick.dk
regenerator-runtime MIT Ben Newman <bn@cs.stanford.edu>
resolve-url-loader MIT bholloway
sanitize-html MIT Apostrophe Technologies, Inc.
sass MIT Natalie Weizenbaum nweiz@google.com https://github.com/nex3
sass-loader MIT J. Tangelder
sockette MIT Luke Edwards luke.edwards05@gmail.com lukeed.com
style-loader MIT Tobias Koppers @sokra
svg-url-loader MIT Hovhannes Babayan
tar BlueOak-1.0.0 Isaac Z. Schlueter
url-loader MIT Tobias Koppers @sokra
util MIT Joyent http://www.joyent.com
vite MIT Evan You
vitest MIT Anthony Fu <anthonyfu117@hotmail.com>
vue MIT Evan You
vue-3-sanitize MIT Vannsl, Vanessa Otto <mail@vannsl.io>
vue-loader MIT Evan You
vue-loader-plugin ISC Ivan liu
vue-luxon MIT Cas Bloem
vue-router MIT Eduardo San Martin Morote posva13@gmail.com
vue-sanitize-directive MIT Leonardo Piccioni de Almeida leopiccionia@gmail.com
vue-style-loader MIT Evan You
vue3-gettext MIT Leo Zurbriggen
vuetify MIT John Leider john@vuetifyjs.com
webpack MIT Tobias Koppers @sokra
webpack-bundle-analyzer MIT Yury Grunin <grunin.ya@ya.ru>
webpack-cli MIT n/a
webpack-hot-middleware MIT Glen Mailer <glen@stainlessed.co.uk>
webpack-manifest-plugin MIT Dane Thurber <dane.thurber@gmail.com>
webpack-md5-hash MIT Kirill Ermolov
webpack-merge MIT Juho Vepsalainen <bebraw@gmail.com>
webpack-plugin-vuetify MIT Kael Watts-Deuchar
workbox-webpack-plugin MIT Google's Web DevRel Team and Google's Aurora Team

View file

@ -8,9 +8,7 @@ PhotoPrism: Browse Your Life in Pictures
[![Bluesky Social](https://dl.photoprism.app/img/badges/badge-bluesky.svg)](https://bsky.app/profile/photoprism.app)
[![Mastodon](https://dl.photoprism.app/img/badges/badge-floss-social.svg)](https://floss.social/@photoprism)
PhotoPrism® is an AI-Powered Photos App for the [Decentralized Web](https://en.wikipedia.org/wiki/Decentralized_web).
It makes use of the latest technologies to tag and find pictures automatically without getting in your way.
You can run it at home, on a private server, or in the cloud.
PhotoPrism® is an AI-powered, privacy-first app for browsing, organizing, and sharing photos and videos. It helps tag, search, and rediscover media without getting in your way, whether self-hosted or in the cloud.
![](https://dl.photoprism.app/img/ui/2025/desktop-search.jpg)
@ -22,7 +20,7 @@ To get a first impression, you are welcome to play with our [public demo](https:
<img align="right" height="270" src="https://dl.photoprism.app/img/ui/2025/iphone-crocus-540px.png">
* Browse [all your pictures](https://docs.photoprism.app/user-guide/organize/browse/) without worrying about [RAW images](https://www.photoprism.app/kb/file-formats) or [video formats](https://docs.photoprism.app/user-guide/organize/video/)
* Browse [all your pictures](https://docs.photoprism.app/user-guide/organize/browse/) without worrying about [RAW images](https://www.photoprism.app/kb/file-formats/) or [video formats](https://docs.photoprism.app/user-guide/organize/video/)
* Whether you're using a phone, tablet, or desktop computer, our [intuitive PWA](https://try.photoprism.app/) provides a native app-like experience and can be [easily installed](https://docs.photoprism.app/user-guide/pwa/) on your home screen
* Quickly find specific photos and videos with [powerful search filters](https://docs.photoprism.app/user-guide/search/filters/) that can be combined and are available for [many different properties](https://docs.photoprism.app/user-guide/search/filters/#filter-reference), including [labels](https://try.photoprism.app/library/labels), [location](https://try.photoprism.app/library/places?q=s2:47a85a63f764), [resolution](https://try.photoprism.app/library/browse?view=cards&q=mp:4), [color](https://try.photoprism.app/library/browse?view=cards&q=color:red), [chroma](https://try.photoprism.app/library/browse?view=cards&q=mono%3Atrue), and [quality](https://try.photoprism.app/library/review)
* [Automatically labels your pictures](https://try.photoprism.app/library/labels) based on content and location, and recognizes the faces of [your family and friends](https://try.photoprism.app/library/people/new)
@ -32,7 +30,7 @@ To get a first impression, you are welcome to play with our [public demo](https:
* [Use compatible apps](https://docs.photoprism.app/user-guide/native-apps/) like [PhotoSync](https://link.photoprism.app/photosync) to back up iOS and Android phones in the background
* WebDAV clients such as [Microsoft's Windows Explorer](https://docs.photoprism.app/user-guide/sync/webdav/#__tabbed_1_2) and [Apple's Finder](https://docs.photoprism.app/user-guide/sync/webdav/#connect-to-a-webdav-server) can [connect directly to PhotoPrism](https://docs.photoprism.app/user-guide/sync/webdav/), allowing you to open, edit, and delete files from your computer as if they were local
Being completely [**self-funded and independent**](https://link.photoprism.app/membership), we can promise you that we will [never sell your data](https://www.photoprism.app/privacy) and that we will [always be transparent](https://www.photoprism.app/terms) about our software and services. Your data will never be shared with Google, Amazon, Microsoft or Apple unless you intentionally upload files to one of their services. 🔒
Being completely [**self-funded and independent**](https://link.photoprism.app/membership), we can promise you that we will [never sell your data](https://www.photoprism.app/privacy/) and that we will [always be transparent](https://www.photoprism.app/terms/) about our software and services. Your data will never be shared with Google, Amazon, Microsoft or Apple unless you intentionally upload files to one of their services. 🔒
## Getting Started ##
@ -45,18 +43,18 @@ See our [Getting Started FAQ](https://docs.photoprism.app/getting-started/faq/#h
## Support Our Mission 💎 ##
**PhotoPrism is 100% self-funded and independent.** Your [continued support](https://link.photoprism.app/membership) helps us [provide more features to the public](https://www.photoprism.app/oss/faq#what-functionality-is-generally-available), release [regular updates](https://docs.photoprism.app/release-notes/), and remain independent!
**PhotoPrism is 100% self-funded and independent.** Your [continued support](https://link.photoprism.app/membership) helps us [provide more features to the public](https://www.photoprism.app/oss/faq/#what-functionality-is-generally-available), release [regular updates](https://docs.photoprism.app/release-notes/), and remain independent!
Our members [enjoy additional features](https://www.photoprism.app/kb/personal), including access to [interactive world maps](https://try.photoprism.app/library/places), and can join our private chat room to [connect with our team](https://www.photoprism.app/about/team). We currently have the following membership options:
Our members [enjoy additional features](https://www.photoprism.app/kb/personal/), including access to [interactive world maps](https://try.photoprism.app/library/places), and can join our private chat room to [connect with our team](https://www.photoprism.app/about/team/). We currently have the following membership options:
- You can [sign up directly on our website](https://link.photoprism.app/membership) and pay with credit card or SEPA through Stripe, so you don't need to [link an external account](https://www.photoprism.app/kb/activation) and can easily upgrade or downgrade at any time
- You can [sign up directly on our website](https://link.photoprism.app/membership) and pay with credit card or SEPA through Stripe, so you don't need to [link an external account](https://www.photoprism.app/kb/activation/) and can easily upgrade or downgrade at any time
- Alternatively, [Patreon](https://link.photoprism.app/patreon) also supports PayPal, additional currencies, and lets you choose between monthly and annual billing for all tiers
If you currently support us through [GitHub Sponsors](https://link.photoprism.app/sponsor), you can also [register on our website](https://my.photoprism.app/register) and use the *Activate GitHub Sponsors Membership* button to link your account. For details on this and how to [link your Patreon account](https://www.patreon.com/pledges), see our [Activation Guide](https://www.photoprism.app/kb/activation).
If you currently support us through [GitHub Sponsors](https://link.photoprism.app/sponsor), you can also [register on our website](https://my.photoprism.app/register) and use the *Activate GitHub Sponsors Membership* button to link your account. For details on this and how to [link your Patreon account](https://www.patreon.com/pledges), see our [Activation Guide](https://www.photoprism.app/kb/activation/).
You are [welcome to contact us](https://www.photoprism.app/contact) for change requests, membership questions, and business partnerships.
You are [welcome to contact us](https://www.photoprism.app/contact/) for change requests, membership questions, and business partnerships.
[View Membership FAQ ](https://www.photoprism.app/kb/membership)[Sign Up ](https://link.photoprism.app/membership)
[View Membership FAQ ](https://www.photoprism.app/membership/faq/)[Sign Up ](https://link.photoprism.app/membership)
### Why Your Support Matters ###
@ -83,7 +81,7 @@ Our [Project Roadmap](https://link.photoprism.app/roadmap) shows what tasks are
Be aware that we have a zero-bug policy and do our best to help users when they need support or have other questions. This comes at a price though, as we can't give exact release dates for new features. Our team receives many more requests than can be implemented, so we want to emphasize that we are in no way obligated to implement the features, enhancements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests.
**Because sustained funding is key to quickly releasing new features, we encourage you to support our mission by [signing up for a personal membership](https://link.photoprism.app/membership) or [purchasing a commercial license](https://www.photoprism.app/teams#compare).**
**Because sustained funding is key to quickly releasing new features, we encourage you to support our mission by [signing up for a personal membership](https://link.photoprism.app/membership) or [purchasing a commercial license](https://www.photoprism.app/teams/#compare).**
[Become a Member ](https://link.photoprism.app/membership)
@ -91,18 +89,18 @@ Be aware that we have a zero-bug policy and do our best to help users when they
We kindly ask you not to report bugs via GitHub Issues **unless you are certain to have found a fully reproducible and previously unreported issue** that must be fixed directly in the app. Thank you for your careful consideration!
- When browsing issues, please note that **our team and all issue subscribers receive an email notification** from GitHub whenever a new comment is added, so these should only be used for sharing important information and not for [discussions, questions](https://github.com/photoprism/photoprism/discussions), or [expressing personal opinions](https://www.photoprism.app/code-of-conduct)
- In order for us to investigate [new bug reports](https://www.photoprism.app/kb/reporting-bugs), they must include **a complete list of steps to reproduce the problem**, the software versions used and information about the environment in which the problem occurred, such as [browser type, browser version, browser plug-ins](https://docs.photoprism.app/getting-started/troubleshooting/browsers/), operating system, [storage type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#storage), [processor type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#server-cpu), and [memory size](https://docs.photoprism.app/getting-started/troubleshooting/performance/#memory)
- [Contact us](https://www.photoprism.app/contact) or [a community member](https://link.photoprism.app/discussions) if you need help, it could be a local configuration problem, or a misunderstanding in how the software works
- When browsing issues, please note that **our team and all issue subscribers receive an email notification** from GitHub whenever a new comment is added, so these should only be used for sharing important information and not for [discussions, questions](https://github.com/photoprism/photoprism/discussions), or [expressing personal opinions](https://www.photoprism.app/code-of-conduct/)
- In order for us to investigate [new bug reports](https://www.photoprism.app/kb/reporting-bugs/), they must include **a complete list of steps to reproduce the problem**, the software versions used and information about the environment in which the problem occurred, such as [browser type, browser version, browser plug-ins](https://docs.photoprism.app/getting-started/troubleshooting/browsers/), operating system, [storage type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#storage), [processor type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#server-cpu), and [memory size](https://docs.photoprism.app/getting-started/troubleshooting/performance/#memory)
- [Contact us](https://www.photoprism.app/contact/) or [a community member](https://link.photoprism.app/discussions) if you need help, it could be a local configuration problem, or a misunderstanding in how the software works
- This gives us the opportunity to [improve our documentation](https://docs.photoprism.app/getting-started/troubleshooting/) and provide best-in-class support instead of dealing with unclear/duplicate bug reports or triggering a flood of notifications by replying to comments
## Connect with the Community ##
<a href="https://link.photoprism.app/chat"><img align="right" width="144" height="144" src="https://dl.photoprism.app/img/brands/element-logo.svg"></a>
Follow us on [Mastodon](https://floss.social/@photoprism), [Bluesky](https://bsky.app/profile/photoprism.app), or join the [Community Chat](https://link.photoprism.app/chat) to get regular updates, connect with other users, and discuss your ideas. Our [Code of Conduct](https://www.photoprism.app/code-of-conduct) explains the "dos and donts" when interacting with other community members.
Follow us on [Mastodon](https://floss.social/@photoprism), [Bluesky](https://bsky.app/profile/photoprism.app), or join the [Community Chat](https://link.photoprism.app/chat) to get regular updates, connect with other users, and discuss your ideas. Our [Code of Conduct](https://www.photoprism.app/code-of-conduct/) explains the "dos and donts" when interacting with other community members.
As a [contributor](CONTRIBUTING.md), you are also welcome to [contact us directly](https://www.photoprism.app/contact) if you have something on your mind that you don't want to discuss publicly. Please note, however, that due to the high volume of emails we receive, our team may be unable to get back to you immediately. We do our best to respond within five business days or less.
As a [contributor](CONTRIBUTING.md), you are also welcome to [contact us directly](https://www.photoprism.app/contact/) if you have something on your mind that you don't want to discuss publicly. Please note, however, that due to the high volume of emails we receive, our team may be unable to get back to you immediately. We do our best to respond within five business days or less.
## Every Contribution Makes a Difference ##
@ -110,4 +108,4 @@ We welcome [contributions](CONTRIBUTING.md) of any kind, including blog posts, t
----
*PhotoPrism® is a [registered trademark](https://www.photoprism.app/trademark). By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms), [Privacy Policy](https://www.photoprism.app/privacy), and [Code of Conduct](https://www.photoprism.app/code-of-conduct). Docs are [available](https://link.photoprism.app/github-docs) under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/); [additional terms](https://github.com/photoprism/photoprism/blob/develop/assets/README.md) may apply.*
*PhotoPrism® is a [registered trademark](https://www.photoprism.app/trademark/). By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms/), [Privacy Policy](https://www.photoprism.app/privacy/), and [Code of Conduct](https://www.photoprism.app/code-of-conduct/). Docs are [available](https://link.photoprism.app/github-docs) under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/); [additional terms](https://github.com/photoprism/photoprism/blob/develop/assets/README.md) may apply.*

View file

@ -1,10 +1,10 @@
# Thank You to All Current and Past Sponsors 💎 #
Your [continued support](https://link.photoprism.app/membership) helps us [provide more features to the public](https://www.photoprism.app/oss/faq#what-functionality-is-generally-available), release [regular updates](https://docs.photoprism.app/release-notes/), and remain independent! 💜
Your [continued support](https://link.photoprism.app/membership) helps us [provide more features to the public](https://www.photoprism.app/oss/faq/#what-functionality-is-generally-available), release [regular updates](https://docs.photoprism.app/release-notes/), and remain independent! 💜
You are [welcome to contact us](https://www.photoprism.app/contact) for change requests, membership questions, and business partnerships.
You are [welcome to contact us](https://www.photoprism.app/contact/) for change requests, membership questions, and business partnerships.
[View Membership FAQ ](https://www.photoprism.app/kb/membership)[Contact Us ](https://www.photoprism.app/contact)
[View Membership FAQ ](https://www.photoprism.app/membership/faq/)[Contact Us ](https://www.photoprism.app/contact/)
## Platinum Sponsors ##

View file

@ -15,6 +15,9 @@ It's source code can be obtained on [GitHub](https://github.com/vslavik/poedit).
Only asynchronous notifications and certain API responses need translation to provide a
consistent user experience.
Asynchronous notifications and user-facing API error responses are additionally rendered by the web
frontend in each user's current UI language (using the message identifier); the `default.po` translation
here serves as a fallback and for non-browser consumers such as the CLI.
Technical log messages should be in English to avoid ambiguities and (even slightly) wrong translations.
`default.po` files in subdirectories contain localized messages for each
@ -29,7 +32,7 @@ the language. Now you can start translating.
When done, create a new directory (using the locale as name) and save your translation there as `default.po`.
The POT file `/assets/locales/messages.pot` will be automatically updated when
running `go generate` in `/internal/i18n` or `make generate` in the main project directory.
running `go generate` in `/pkg/i18n` or `make generate` in the main project directory.
Note that this will only work when you have gettext installed on your system.
We recommend using our latest development image as described in the Developer Guide.

View file

@ -2,412 +2,427 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: af\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Iets het verkeerd geloop, probeer weer"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Kan dit nie doen nie"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Veranderinge kon nie gestoor word nie"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Kan nie verwyder word nie"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s bestaan reeds"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nie gevind"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Lêer nie gevind nie"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Lêer te groot"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Ongesteun"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Ongesteunde tipe"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Ongesteunde formaat"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Oorspronklike omslag is leeg"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Seleksie nie gevind nie"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entiteit nie gevind nie"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Rekening nie gevind nie"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Verbruiker nie gevind nie"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Merker nie gevind nie"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera nie gevind nie"
#: messages.go:130
msgid "Lens not found"
msgstr "Lens nie gevind nie"
#: messages.go:131
msgid "Album not found"
msgstr "Album nie gevind nie"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Onderwerp nie gevind nie"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Persoon nie gevind nie"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Gesig nie gevind nie"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Nie beskikbaar in publieke modus nie"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Nie beskikbaar in leesalleen modus nie"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Teken asseblief in op jou rekening"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Toegang geweier"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Betaling vereis"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Oplegging mag aanstoot gee"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Oplegging misluk"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Geen items gekies nie"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Kon nie lêer skep nie. Gaan asseblief toestemmings na"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Kon nie vouer skep nie. Gaan asseblief toestemmings na"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Kon nie konnekteer nie, probeer asseblief weer"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Tik verifikasiekode"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Ongeldige verifikasiekode, probeer asseblief weer"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Ongeldige wagwoord, probeer asseblief weer"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Eienskap gedeaktiveer"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Geen merker geselekteer"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Geen albums geselekteer nie"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Geen lêers beskikbaar vir aflaai nie"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Kon nie zip-lêer skep nie"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Ongeldige magtiging"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Ongeldige skakel"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Ongeldige naam"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Besig, probeer asseblief later weer"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Die opwek tydperk is %s, maar moet 1 uur of minder wees"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Jou rekening kon nie gekoppel word nie"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Te veel versoeke"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Onvoldoende berging"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kwota oorskry"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registrasie gedeaktiveer"
#: messages.go:164
msgid "Verified email required"
msgstr "Geverifieerde e-pos vereis"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Veranderinge suksesvol gestoor"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album geskep"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album gestoor"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s uitgevee"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albuminhoud gekloon"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Lêer verwyder uit stapel"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Lêer uitgevee"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Seleksie bygevoeg na %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Een inskrywing bygevoeg na %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d inskrywings by %s gevoeg"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Een inskrywing verwyder uit %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d inskrywings verwyder uit %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Rekening geskep"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Rekening gestoor"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Rekening uitgevee"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Stellings gestoor"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Wagwoord verander"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Invoer voltooi in %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Invoer gekanselleer"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "inhoudsopgawe voltooi in %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indekseer van oorspronklikes …"
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indekseer lêers in %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksering gekanselleer"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d lêers en %d foto's verwyder"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Skuif lêers van %s af"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopieer lêers van %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Merkers uitgevee"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Merkers gestoor"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Onderwerp gestoor"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Onderwerp uitgevee"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Persoon gestoor"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Persoon uitgevee"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Lêer opgelaai"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d lêers opgelaai in %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Verwerk oplegging..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Oplegging geprosesseer"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Seleksie goedgekeur"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Seleksie geargiveer"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Seleksie herstel"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Seleksie gemerk as privaat"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albums uitgevee"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip geskep in %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Permanent uitgevee"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s geherstel"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Suksesvol geverifieer"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Suksesvol geaktiveer"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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 ? 4 : 5;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "حدث خطأ ما، حاول مرة أخرى"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "غير قادر على فعل ذلك"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "لا يمكن حفظ التغييرات"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "لا يمكن حذفه"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s موجود بالفعل"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "لم يتم العثور"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "لم يتم العثور على الملف"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "الملف كبير جدًا"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "غير مدعوم"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "نوع غير معتمد"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "صيغة غير مدعومة"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "مجلد النسخ الأصلية فارغ"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "الاختيار غير موجود"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "الكيان غير موجود"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "الحساب غير موجود"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "المستخدم غير موجود"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "التصنيف غير موجود"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "لم يتم العثور على الكاميرا"
#: messages.go:130
msgid "Lens not found"
msgstr "لم يتم العثور على العدسة"
#: messages.go:131
msgid "Album not found"
msgstr "الألبوم غير موجود"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "الموضوع غير موجود"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "لم يتم العثور على الشخص"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "الوجه غير موجود"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "غير متاح في الوضع العام"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "غير متوفر في وضع القراءة فقط"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "يرجى تسجيل الدخول إلى حسابك"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "طلب الاذن مرفوض"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "الدفع مطلوب"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "المحتوى المرفوع قد يكون مسيئا"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "فشل التحميل"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "لم يتم اختيار المحتوى"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "فشل إنشاء الملف ، يرجى التحقق من الصلاحيات"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "لم يتم إنشاء المجلد ، يرجى التحقق من الصلاحيات"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "تعذر الاتصال ، يرجى المحاولة مرة أخرى"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "أدخل رمز التحقق"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "رمز التحقق غير صالح، يرجى المحاولة مرة أخرى"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "كلمة السر غير مطابقة، يرجى المحاولة مرة أخرى"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "الخاصية غير مفعلة"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "لم يتم تحديد المعرفات"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "لم يتم تحديد ألبومات"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "لا توجد ملفات متاحة للتنزيل"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "فشل في إنشاء ملف مضغوط"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "بيانات الاعتماد غير صالحة"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "رابط غير صالح"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "اسم غير صحيح"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "مشغول، يرجى المحاولة مرة أخرى في وقت لاحق"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "فترة التنبيه هي %s ، لكن يجب أن تكون ساعة واحدة أو أقل"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "لا يمكن ربط حسابك"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "طلبات كثيرة جدا"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "مساحة تخزين غير كافية"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "تم تجاوز المساحة المخصصة"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "تم تعطيل التسجيل"
#: messages.go:164
msgid "Verified email required"
msgstr "البريد الإلكتروني الموثق مطلوب"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "تم حفظ التغييرات بنجاح"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "تم إنشاء الألبوم"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "تم حفظ الألبوم"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "تم حذف الألبوم %s"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "تم نسخ محتويات الألبوم"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "تمت إزالة الملف من المكدس"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "تم حذف الملف"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "تمت إضافة التحديد إلى %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "تمت إضافة إدخال واحد إلى %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "تمت إضافة %d مدخلات إلى %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "تمت إزالة إدخال واحد من %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "تمت إزالة %d مدخلات من %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "تم إنشاء الحساب"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "تم حفظ الحساب"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "تم حذف الحساب"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "تم حفظ الإعدادات"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "تم تغيير كلمة السر"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "اكتمل الاستيراد في %d ثانية"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "تم إلغاء الاستيراد"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "اكتملت الفهرسة في %d ثانية"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "تتم فهرسة الصور الأصلية ..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "فهرسة الملفات في %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "تم إلغاء الفهرسة"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "تمت إزالة %d ملفات و %d صورة"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "نقل الملفات من %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "نسخ ملفات من %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "تم حذف التصنيفات"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "تم حفظ التصنيف"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "تم حفظ الموضوع"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "تم حذف الموضوع"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "حفظ الشخص"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "تم حذف الشخص"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "تم تحميل الملف"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "تم تحميل %d ملف في %d ثانية"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "جارٍ معالجة التحميل ..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "تمت معالجة التحميل"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "تمت الموافقة على الاختيار"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "تمت أرشفة الاختيار"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "تم استعادة المحتوى المحدد"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "تم تحديد الاختيار على أنه خاص"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "تم حذف الألبومات"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "تم إنشاء الملف المضغوط خلال %d ثوانٍ"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "تم الحذف بشكل نهائي"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "تمت استعادة %s"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "تم التحقق بنجاح"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "تم التفعيل بنجاح"

View file

@ -2,10 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: be\n"
"MIME-Version: 1.0\n"
@ -13,402 +12,418 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Нешта пайшло не так, паўтарыце спробу"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Немагчыма зрабіць гэта"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Не ўдалося захаваць змены"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Немагчыма выдаліць"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s ужо існуе"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Не знойдзена"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Файл не знойдзены"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Файл занадта вялікі"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Не падтрымліваецца"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Тып не падтрымліваецца"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Фармат не падтрымліваецца"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Тэчка арыгіналаў пустая"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Выбар не знойдзены"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Аб'ект не знойдзены"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Уліковы запіс не знойдзены"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Карыстальнік не знойдзены"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Тэг не знойдзены"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Камера не знойдзена"
#: messages.go:130
msgid "Lens not found"
msgstr "Аб'ектыў не знойдзены"
#: messages.go:131
msgid "Album not found"
msgstr "Альбом не знойдзены"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Тэма не знойдзена"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Чалавек не знойдзены"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Твар не знойдзены"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Недаступна ў публічным рэжыме"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Недаступна ў рэжыме толькі для чытання"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Калі ласка, увайдзіце ў свой уліковы запіс"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "У доступе адмоўлена"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Патрабуецца аплата"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Запампоўка можа быць абразлівай"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Памылка загрузкі"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Элементы не выбраны"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Не ўдалося стварыць файл, праверце дазволы"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Не атрымалася стварыць папку, праверце дазволы"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Немагчыма падключыцца, паспрабуйце яшчэ раз"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Увядзіце праверачны код"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Няправільны код спраўджання, паўтарыце спробу"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Няправільны пароль, паспрабуйце яшчэ раз"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Функцыя адключана"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Меткі не выбраны"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Альбомы не выбраны"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Няма даступных файлаў для спампоўкі"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Не ўдалося стварыць zip-файл"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Няправільныя ўліковыя даныя"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Няправільная спасылка"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Няправільнае імя"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Заняты, паўтарыце спробу пазней"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Інтэрвал абуджэння складае %s, але павінен быць не больш за 1 гадзіну"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Ваш уліковы запіс не можа быць падключаны"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Занадта шмат запытаў"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Недастаткова месца для захоўвання"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Квота перавышана"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Рэгістрацыя адключана"
#: messages.go:164
msgid "Verified email required"
msgstr "Патрабуецца правераны адрас электроннай пошты"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Змены паспяхова захаваны"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Альбом створаны"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Альбом захаваны"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Альбом %s выдалены"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Змест альбома кланаваны"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Файл выдалены са стэка"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Файл выдалены"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Выбар дададзены ў %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Адзін запіс дададзены ў %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d запісы дададзены ў %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Адзін запіс выдалены з %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "Запісы %d выдалены з %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Уліковы запіс створаны"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Уліковы запіс захаваны"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Уліковы запіс выдалены"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Налады захаваны"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Пароль зменены"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Імпарт завершаны праз %d с"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Імпарт адменены"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Індэксацыя завершана ў %d с"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Індэксаванне арыгіналаў..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Індэксацыя файлаў у %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Індэксацыя адменена"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Выдалена %d файлаў і %d фота"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Перамяшчэнне файлаў з %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Капіраванне файлаў з %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Меткі выдалены"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Цэтлік захаваны"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Тэма захавана"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Тэма выдалена"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Чалавек выратаваны"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Асоба выдалена"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Файл запампаваны"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d файлы, загружаныя ў %d с"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Апрацоўка запампоўкі..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Загрузка апрацавана"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Выбар ухвалены"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Выбранае заархівавана"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Выбар адноўлены"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Выбар пазначаны як прыватны"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Альбомы выдалены"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip створаны ў %d с"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Выдалены назаўсёды"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s быў адноўлены"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Паспяхова праверана"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Паспяхова актывавана"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: bg\n"
@ -11,402 +11,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Нещо се е объркало, опитайте отново"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Не можете да го направите"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Промените не могат да бъдат запазени"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Не може да бъде изтрит"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s вече съществува"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Не е намерен"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Файлът не е намерен"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Твърде голям файл"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Не се поддържа"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Неподдържан тип"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Неподдържан формат"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Папката с оригинали е празна"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Изборът не е намерен"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Субектът не е намерен"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Акаунтът не е намерен"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Потребителят не е намерен"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Етикетът не е намерен"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Камерата не е открита"
#: messages.go:130
msgid "Lens not found"
msgstr "Обективът не е открит"
#: messages.go:131
msgid "Album not found"
msgstr "Албумът не е намерен"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Темата не е намерена"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Лицето не е намерено"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Лицето не е намерено"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Не е наличен в публичен режим"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Не е наличен в режим само за четене"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Моля, влезте в профила си"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Достъп отказан"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Изисква се плащане"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Качването може да е обидно"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Файловете не успяха да се качат"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Няма избрани елементи"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Неуспешно създаване на файл, моля, проверете разрешенията"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Неуспешно създаване на папка, моля, проверете разрешенията"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Не може да се свърже, опитайте отново"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Въведете код за верификация"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Невалиден код за потвърждение, моля опитайте отново"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Невалидна парола, моля, опитайте отново"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Функцията е деактивирана"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Няма избрани етикети"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Няма избрани албуми"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Няма налични файлове за изтегляне"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Неуспешно създаване на zip файл"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Невалидни креденции"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Невалидна връзка"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Невалидно име"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Заето, моля, опитайте отново по-късно"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Интервалът на събуждане е %s, но трябва да е 1 час или по-малко"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Вашият акаунт не може да бъде свързан"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Твърде много заявки"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Недостатъчно място за съхранение"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Превишаване на квотата"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Регистрацията е деактивирана"
#: messages.go:164
msgid "Verified email required"
msgstr "Необходим е потвърден имейл адрес"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Промените са успешно записани"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Създаден албум"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Запазен албум"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Албум %s изтрит"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Съдържанието на албума беше клонирано"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Премахване на файла от стека"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Изтрит файл"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Добавяне на селекция към %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Добавяне на един запис към %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d добавени записи към %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Отстранен е един запис от %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d премахнати записи от %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Създаден акаунт"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Акаунтът запазен"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Изтрит акаунт"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Запазени настройки"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Паролата е променена"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Импортът е завършен за %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Вносът е отменен"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Индексирането е завършено за %d сек"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Индексиране на оригинали..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Индексиране на файлове в %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Отменено индексиране"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Премахнати са %d файлове и %d снимки"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Преместване на файлове от %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Копиране на файлове от %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Изтрити етикети"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Запазен етикет"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Тема: запазени"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Изтрит предмет"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Запазено лице"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Изтрито лице"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Качен файл"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d файлове, качени за %d сек"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Обработка на качването..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Качването е обработено"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Одобрена селекция"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Архивирана селекция"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Възстановена селекция"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Селекция, отбелязана като частна"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Изтрити албуми"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip създаден за %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Постоянно изтрити"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s е възстановена"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Успешно потвърдено"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Успешно активиран"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "S'ha produït un error, torna-ho a provar"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Incapaç de fer-ho"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "No s'han pogut desar els canvis"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "No s'ha pogut suprimir"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s El nom ja existeix"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "No trobat"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "No s'ha trobat el fitxer"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Fitxer massa gran"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Sense suport"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Tipus no compatible"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Format no compatible"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "La carpeta d'originals està buida"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "No s'ha trobat la selecció"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "No s'ha trobat l'entitat"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Compte no trobat"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Usuari no trobat"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "No s'ha trobat l'etiqueta"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "No s'ha trobat la càmera"
#: messages.go:130
msgid "Lens not found"
msgstr "Lent no trobada"
#: messages.go:131
msgid "Album not found"
msgstr "No s'ha trobat l'àlbum"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "No s'ha trobat el tema"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Persona no trobada"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "No s'ha trobat la cara"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "No disponible en mode públic"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "No disponible en mode només de lectura"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Si us plau, inicieu sessió al vostre compte"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Permís denegat"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Pagament requerit"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "La càrrega pot ser ofensiva"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "La càrrega ha fallat"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "No s'ha seleccionat cap element"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "No s'ha pogut crear el fitxer, comproveu els permisos"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "No s'ha pogut crear la carpeta, comproveu els permisos"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "No s'ha pogut connectar, torna-ho a provar"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Introduïu el codi de verificació"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Codi de verificació no vàlid, torneu-ho a provar"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "La contrasenya no és vàlida, torneu-ho a provar"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funció desactivada"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "No s'ha seleccionat cap etiqueta"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "No s'ha seleccionat cap àlbum"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "No hi ha fitxers disponibles per a la baixada"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "No s'ha pogut crear el fitxer zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Credencials incorrectes"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Enllaç no vàlid"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nom no vàlid"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Ocupat, torna-ho a provar més tard"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "L'interval d'activació és %s, però ha de ser d'1 h o menys"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "No s'ha pogut connectar el vostre compte"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Massa peticions"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Emmagatzematge insuficient"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "S'ha superat la quota"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registre desactivat"
#: messages.go:164
msgid "Verified email required"
msgstr "Cal un correu electrònic verificat"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Els canvis s'han desat correctament"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Àlbum creat"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Àlbum desat"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "S'ha suprimit l'àlbum %s"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Contingut de l'àlbum clonat"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "S'ha eliminat el fitxer de la pila"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "S'ha suprimit el fitxer"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "S'ha afegit una selecció a %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "S'ha afegit una entrada a %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d entrades afegides a %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "S'ha eliminat una entrada de %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "S'han eliminat %d entrades de %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Compte creat"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Compte desat"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Compte suprimit"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Configuració desada"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Sha canviat la contrasenya"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importació completada en %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importació cancel·lada"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexació completada en %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "S'estan indexant els originals..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexant fitxers a %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "S'ha cancel·lat la indexació"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "S'han eliminat %d fitxers i %d fotos"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "S'estan movent fitxers de %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "S'estan copiant fitxers de %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "S'han suprimit les etiquetes"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "S'ha desat l'etiqueta"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Assumpte desat"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "S'ha suprimit el tema"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Persona salvada"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "S'ha suprimit la persona"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Fitxer penjat"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d fitxers penjats en %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "S'està processant la càrrega..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "S'ha processat la càrrega"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Selecció aprovada"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Selecció arxivada"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "S'ha restaurat la selecció"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "La selecció s'ha marcat com a privada"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Àlbums suprimits"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip creat en %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Esborrat permanentment"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s s'ha restaurat"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Verificat correctament"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "S'ha activat correctament"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: Czech <https://translate.photoprism.app/projects/photoprism/"
"backend/cs/>\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Něco se pokazilo, zkuste to znovu"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Nelze to udělat"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Změny nemohly být uloženy"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Nemohlo být vymazáno"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s již existuje"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nenalezeno"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Soubor nenalezen"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Příliš velký soubor"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Nepodporováno"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Nepodporovaný typ"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Nepodporovaný formát"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Složka Originály je prázdná"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Výběr nenalezen"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Subjekt nebyl nalezen"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Účet nenalezen"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Uživatel nenalezen"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Štítek nenalezen"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Fotoaparát nebyl nalezen"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektiv nebyl nalezen"
#: messages.go:131
msgid "Album not found"
msgstr "Album nenalezeno"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Předmět nebyl nalezen"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Osoba nebyla nalezena"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Obličej nebyl nalezen"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Není k dispozici ve veřejném módu"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Není k dispozici v režimu pouze pro čtení"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Přihlaste se ke svému účtu"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Přístup zamítnut"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Požadovaná platba"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Nahrané soubory by mohly být urážlivé"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Nahrávání selhalo"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Nebyly vybrány žádné položky"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Vytváření souboru selhalo, zkontrolujte prosím oprávnění"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Vytváření složky selhalo, zkontrolujte prosím oprávnění"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Nemohlo být připojeno, zkuste to prosím znovu"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Vložte ověřovací kód"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Neplatný ověřovací kód, zkuste to prosím znovu"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Neplatné heslo, zkuste to prosím znovu"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funkce deaktivovaná"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Nebyly vybrány žádné štítky"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Nebyla vybrána žádná alba"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Žádné soubory ke stažení k dispozici"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Nebylo možné vytvořit soubor ZIP"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Neplatné údaje"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Neplatný odkaz"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Neplatný jméno"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Zaneprázdněn, zkuste to prosím později"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Interval buzení je %s, ale musí být 1h nebo kratší"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Váš účet se nepodařilo připojit"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Příliš mnoho požadavků"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Nedostatečné skladování"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Překročení kvóty"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registrace je deaktivována"
#: messages.go:164
msgid "Verified email required"
msgstr "Je nutné zadat ověřenou e-mailovou adresu"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Změny byly úspěšně uloženy"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album vytvořeno"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album uloženo"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s vymazáno"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Obsah alba naklonován"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Soubor odstraněn ze stohu"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Soubor vymazán"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Výběr přidán do %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Jeden záznam přidán do %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d záznamů přidáno do %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Jeden záznam odstraněn z %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d záznamů odstraněno z %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Účet vytvořen"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Účet uložen"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Účet vymazán"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Nastavení uloženo"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Heslo změněno"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import dokončen za %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Import zrušen"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexování dokončeno za %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexování originálů..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexování souborů v %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexování zrušeno"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Odstraněno %d souborů a %d fotografií"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Přesouvání souborů z %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopírování souborů z %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Štítky vymazány"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Štítek uložen"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Předmět uložen"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Předmět smazán"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Uložená osoba"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Vymazaná osoba"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Soubor odeslán"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d souborů nahráno za %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Zpracování nahrávání..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Nahrávání bylo zpracováno"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Výběr potvrzen"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Výběr archivován"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Výběr obnoven"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Výběr označen jako Soukromý"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Alba vymazána"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "ZIP vytvořen za %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Trvale smazáno"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s bylo obnoveno"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Úspěšně ověřeno"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Úspěšně aktivováno"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: Danish <https://translate.photoprism.app/projects/photoprism/"
"backend/da/>\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Der gik noget galt, prøv igen"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Det kan ikke lade sig gøre"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Ændringer kunne ikke gemmes"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Kunne ikke slettes"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s findes allerede"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Ikke fundet"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Fil ikke fundet"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Filen er for stor"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Ikke understøttet"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Ikke-understøttet type"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Ikke understøttet format"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Mappen Originaler er tom"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Valg ikke fundet"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Enhed ikke fundet"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Konto ikke fundet"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Bruger ikke fundet"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etiket ikke fundet"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kameraet blev ikke fundet"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektiv ikke fundet"
#: messages.go:131
msgid "Album not found"
msgstr "Album ikke fundet"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Emne ikke fundet"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Person ikke fundet"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Ansigt ikke fundet"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Ikke tilgængelig i offentlig tilstand"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Ikke tilgængelig i skrivebeskyttet tilstand"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Log ind på din konto"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Tilladelse nægtet"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Betaling påkrævet"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Upload kan være stødende"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Upload mislykkedes"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Ingen emner valgt"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Oprettelse af fil mislykkedes, tjek venligst tilladelser"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Oprettelse af mappe mislykkedes, tjek venligst tilladelser"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Kunne ikke oprette forbindelse, prøv venligst igen"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Indtast verifikations kode"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Ugyldig bekræftelseskode. Prøv venligst igen"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Ugyldig adgangskode, prøv venligst igen"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funktion deaktiveret"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Ingen etiketter valgt"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Ingen album valgt"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Ingen filer til rådighed til download"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Det lykkedes ikke at oprette zip-fil"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Ugyldige legitimationsoplysninger"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Ugyldigt link"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Ugyldigt navn"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Optaget, prøv venligst igen senere"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Vækningsintervallet er %s, men skal være 1 time eller mindre"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Der kunne ikke oprettes forbindelse til din konto"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "For mange anmodninger"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Utilstrækkelig opbevaring"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kvote overskredet"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registrering er deaktiveret"
#: messages.go:164
msgid "Verified email required"
msgstr "Der kræves en bekræftet e-mailadresse"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Ændringer gemt med succes"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album oprettet"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album gemt"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s slettet"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albumindhold klonet"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Fil fjernet fra stakken"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fil slettet"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Valg tilføjet til %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "En post tilføjet til %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d poster tilføjet til %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "En post fjernet fra %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d poster fjernet fra %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Konto oprettet"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Gemte konto"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Konto slettet"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Indstillinger gemt"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Adgangskode ændret"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import afsluttet efter %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Import annulleret"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indeksering afsluttet efter %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indeksering af originaler..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indeksering af filer i %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksering annulleret"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Fjernede %d filer og %d fotos"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Flytter filer fra %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopierer filer fra %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etiketter slettet"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etikette gemt"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Emne gemt"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Emne slettet"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Person gemt"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Person slettet"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Fil uploadet"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d filer uploadet på %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Behandling af upload..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Upload er blevet behandlet"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Udvælgelse godkendt"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Udvælgelse arkiveret"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Udvalgte gendannet"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Udvalgte er markeret som privat"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albums slettet"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip filen blev lavet på %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Permanent slettet"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s er blevet genoprettet"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Verifikation lykkedes"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Aktivering lykkedes"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: German <https://translate.photoprism.app/projects/photoprism/"
"backend/de/>\n"
@ -12,403 +12,419 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
"X-Poedit-Basepath: .\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Etwas ist schief gelaufen, versuche es noch einmal"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Dies ist nicht möglich"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Fehler beim Speichern der Daten"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Konnte nicht gelöscht werden"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s existiert bereits"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nicht gefunden"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Datei konnte nicht gefunden werden"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Datei zu groß"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Wird nicht unterstützt"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Typ wird nicht unterstützt"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Nicht unterstütztes Format"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Originals-Verzeichnis ist leer"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Auswahl nicht gefunden"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Keine Daten gefunden"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Unbekannter Account"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Nutzer nicht gefunden"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Kategorie nicht gefunden"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera nicht gefunden"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektiv nicht gefunden"
#: messages.go:131
msgid "Album not found"
msgstr "Album nicht gefunden"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Unbekanntes Motiv"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Unbekannte Person"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Unbekanntes Gesicht"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Im öffentlichen Modus nicht verfügbar"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Im Nur-Lese-Modus nicht verfügbar"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Bitte melde dich an"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Erlaubnis verweigert"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Zahlung erforderlich"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Inhalt könnte anstößig sein und wurde abgelehnt"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Upload fehlgeschlagen"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Nichts ausgewählt"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Datei konnte nicht erstellt werden"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Ordner konnte nicht erstellt werden"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Verbindung fehlgeschlagen"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Verifizierungscode eingeben"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Ungültiger Verifizierungscode, bitte erneut versuchen"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Ungültiges Passwort"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funktion deaktiviert"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Keine Kategorien ausgewählt"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Keine Alben ausgewählt"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Keine Dateien zum Download verfügbar"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Zip-Datei konnte nicht erstellt werden"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Ungültige Zugangsdaten"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Ungültiger Link"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Ungültiger Name"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Beschäftigt, bitte später erneut versuchen"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Worker-Intervall ist %s, muss aber 1h oder weniger betragen"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Das Konto konnte nicht verbunden werden"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Zu viele Anfragen"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Zu wenig Speicherplatz"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Maximale Anzahl erreicht"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registrierung deaktiviert"
#: messages.go:164
msgid "Verified email required"
msgstr "Eine verifizierte E-Mail-Adresse ist erforderlich"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Änderungen erfolgreich gespeichert"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album erstellt"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album gespeichert"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s gelöscht"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Album-Einträge kopiert"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Datei aus Stapel entfernt"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Datei gelöscht"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Auswahl zu %s hinzugefügt"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Ein Eintrag zu %s hinzugefügt"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d Einträge zu %s hinzugefügt"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Ein Eintrag aus %s entfernt"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d Einträge aus %s entfernt"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Konto hinzugefügt"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Konto gespeichert"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Konto gelöscht"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Einstellungen gespeichert"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Passwort geändert"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import in %d s abgeschlossen"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Import abgebrochen"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexierung in %d s abgeschlossen"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexiere Dateien…"
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexiere Dateien in %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexierung abgebrochen"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d Dateien und %d Bilder wurden entfernt"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Verschiebe Dateien von %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopiere Dateien von %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Kategorien gelöscht"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Kategorie gespeichert"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Motiv gespeichert"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Motiv gelöscht"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Person gespeichert"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Person gelöscht"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Datei hochgeladen"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d Dateien hochgeladen in %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Verarbeitung des Uploads..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Der Upload wurde verarbeitet"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Auswahl übernommen"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Auswahl archiviert"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Auswahl wiederhergestellt"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Auswahl als privat markiert"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Alben gelöscht"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip-Datei erstellt in %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Endgültig gelöscht"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s wurde wiederhergestellt"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Erfolgreich verifiziert"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Erfolgreich aktiviert"

View file

@ -2,411 +2,427 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-11-19 10:23+0000\n"
"Last-Translator: dtsolakis <dtsola@eranet.gr>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Κάτι πήγε στραβά, δοκιμάστε ξανά"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Αυτό δεν είναι εφικτό"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Οι αλλαγές δεν ήταν δυνατό να αποθηκευτούν"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Δεν ήταν εφικτή η διαγραφή"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s υπάρχει ήδη"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Δεν βρέθηκε"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Το αρχείο δεν βρέθηκε"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Πολύ μεγάλο αρχείο"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Δεν υποστηρίζεται"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Μη υποστηριζόμενος τύπος"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Μη υποστηριζόμενος μορφότυπος"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Ο φάκελος πρωτότυπων είναι άδειος"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Η επιλογή δεν βρέθηκε"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Η οντότητα δεν βρέθηκε"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Ο λογαριασμός δεν βρέθηκε"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Ο χρήστης δεν βρέθηκε"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Η ετικέτα δεν βρέθηκε"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Δεν εντοπίστηκε η κάμερα"
#: messages.go:130
msgid "Lens not found"
msgstr "Δεν βρέθηκε ο φακός"
#: messages.go:131
msgid "Album not found"
msgstr "Το άλμπουμ δεν βρέθηκε"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Το θέμα δεν βρέθηκε"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Το άτομο δεν βρέθηκε"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Το πρόσωπο δεν βρέθηκε"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Μη διαθέσιμο κατά τη δημόσια λειτουργία"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Μη διαθέσιμο στην κατάσταση \"μόνο ανάγνωση\""
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Συνδεθείτε στο λογαριασμό σας"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Δέν δόθηκε άδεια"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Απαιτείται πληρωμή"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Το ανέβασμα μπορεί να είναι προσβλητικό"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Αποτυχία ανεβάσματος"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Δεν έχουν επιλεγεί στοιχεία"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Απέτυχε η δημιουργία αρχείου, ελέγξτε τα δικαιώματα"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Απέτυχε η δημιουργία φακέλου, ελέγξτε τα δικαιώματα"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Δεν ήταν δυνατή η σύνδεση, δοκιμάστε ξανά"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Εισάγετε τον κωδικό επαλήθευσης"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Μη έγκυρος κωδικός επαλήθευσης, δοκιμάστε ξανά"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Μη έγκυρος κωδικός πρόσβασης, δοκιμάστε ξανά"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Απενεργοποιημένη λειτουργία"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Δεν έχουν επιλεγεί ετικέτες"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Δεν έχουν επιλεγεί άλμπουμ"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Δεν υπάρχουν διαθέσιμα αρχεία για λήψη"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Απέτυχε η δημιουργία αρχείου zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Μη έγκυρα διαπιστευτήρια"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Μη έγκυρος σύνδεσμος"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Μη έγκυρο όνομα"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Το σύστημα είναι απασχολημένο, προσπαθήστε ξανά αργότερα"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Το διάστημα αφύπνισης είναι %s, αλλά πρέπει να είναι 1 ώρα ή λιγότερο"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Ο λογαριασμός σας δεν ήταν δυνατό να συνδεθεί"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Πάρα πολλά αιτήματα"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Ανεπαρκής χώρος"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Υπέρβαση ορίου"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Η εγγραφή έχει απενεργοποιηθεί"
#: messages.go:164
msgid "Verified email required"
msgstr "Απαιτείται επαληθευμένη διεύθυνση ηλεκτρονικού ταχυδρομείου"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Οι αλλαγές αποθηκεύτηκαν επιτυχώς"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Το άλμπουμ δημιουργήθηκε"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Το άλμπουμ αποθηκεύθηκε"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Το άλμπουμ %s διαγράφηκε"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Τα περιεχόμενα του άλμπουμ αντιγράφηκαν"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Αφαίρεση αρχείου από τη στοίβα"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Το αρχείο διαγράφηκε"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Η επιλογή προστέθηκε στο %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Μία εγγραφή προστέθηκε στο %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d καταχωρήσεις προστέθηκαν στο %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Μία καταχώρηση αφαιρέθηκε από %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d καταχωρήσεις αφαιρέθηκαν από %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Ο λογαριασμός δημιουργήθηκε"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Ο λογαριασμός αποθηκεύτηκε"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Ο λογαριασμός διαγράφηκε"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Οι ρυθμίσεις αποθηκεύτηκαν"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Ο κωδικός πρόσβασης άλλαξε"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Η εισαγωγή ολοκληρώθηκε σε %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Η εισαγωγή ακυρώθηκε"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Η ευρετηρίαση ολοκληρώθηκε σε %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Δημιουργία ευρετηρίου για τα πρωτότυπα..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Δημιουργία ευρετηρίου αρχείων σε %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Η δημιουργία ευρετηρίου ακυρώθηκε"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Αφαίρεση %d αρχείων και %d φωτογραφιών"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Μετακίνηση αρχείων από %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Αντιγραφή αρχείων από %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Οι ετικέτες διαγράφηκαν"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Η ετικέτα αποθηκεύτηκε"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Το θέμα αποθηκεύθηκε"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Το θέμα διαγράφηκε"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Το άτομο αποθηκεύτηκε"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Το άτομο διαγράφηκε"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Το αρχείο διαγράφηκε"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d αρχεία ανεβάστηκαν σε %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Επεξεργασία ανεβάσματος..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Το ανέβασμα έχει ολοκληρωθεί"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Η επιλογή εγκρίθηκε"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Η επιλογή αρχειοθετήθηκε"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Η επιλογή αποκαταστάθηκε"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Η επιλογή μαρκαρίστηκε ως ιδιωτική"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Διαγραμμένα άλμπουμ"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Το αρχείο zip δημιουργήθηκε σε %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Διαγράφηκε μόνιμα"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s έχει αποκατασταθεί"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Επιτυχής επαλήθευση"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Επιτυχής ενεργοποίηση"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2022-10-31 16:44+0100\n"
"Last-Translator: Michael Mayer <michael@photoprism.org>\n"
"Language-Team: \n"
@ -13,399 +13,415 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.3\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr ""
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr ""
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr ""
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr ""
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr ""
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr ""
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr ""
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr ""
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr ""
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr ""
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr ""
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr ""
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr ""
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr ""
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr ""
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr ""
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr ""
#: messages.go:121
msgid "Album not found"
msgstr ""
#: messages.go:122
msgid "Subject not found"
msgstr ""
#: messages.go:123
msgid "Person not found"
msgstr ""
#: messages.go:124
msgid "Face not found"
msgstr ""
#: messages.go:125
msgid "Not available in public mode"
msgstr ""
#: messages.go:126
msgid "Not available in read-only mode"
msgstr ""
#: messages.go:127
msgid "Please log in to your account"
msgstr ""
#: messages.go:128
msgid "Permission denied"
msgstr ""
#: messages.go:129
msgid "Payment required"
msgid "Camera not found"
msgstr ""
#: messages.go:130
msgid "Upload might be offensive"
msgid "Lens not found"
msgstr ""
#: messages.go:131
msgid "Upload failed"
msgid "Album not found"
msgstr ""
#: messages.go:132
msgid "No items selected"
msgid "Subject not found"
msgstr ""
#: messages.go:133
msgid "Failed creating file, please check permissions"
msgid "Person not found"
msgstr ""
#: messages.go:134
msgid "Failed creating folder, please check permissions"
msgid "Face not found"
msgstr ""
#: messages.go:135
msgid "Could not connect, please try again"
msgid "Not available in public mode"
msgstr ""
#: messages.go:136
msgid "Enter verification code"
msgid "Not available in read-only mode"
msgstr ""
#: messages.go:137
msgid "Invalid verification code, please try again"
msgid "Please log in to your account"
msgstr ""
#: messages.go:138
msgid "Invalid password, please try again"
msgid "Permission denied"
msgstr ""
#: messages.go:139
msgid "Feature disabled"
msgid "Payment required"
msgstr ""
#: messages.go:140
msgid "No labels selected"
msgid "Upload might be offensive"
msgstr ""
#: messages.go:141
msgid "No albums selected"
msgid "Upload failed"
msgstr ""
#: messages.go:142
msgid "No files available for download"
msgid "No items selected"
msgstr ""
#: messages.go:143
msgid "Failed to create zip file"
msgid "Failed creating file, please check permissions"
msgstr ""
#: messages.go:144
msgid "Invalid credentials"
msgid "Failed creating folder, please check permissions"
msgstr ""
#: messages.go:145
msgid "Invalid link"
msgid "Could not connect, please try again"
msgstr ""
#: messages.go:146
msgid "Invalid name"
msgid "Enter verification code"
msgstr ""
#: messages.go:147
msgid "Busy, please try again later"
msgid "Invalid verification code, please try again"
msgstr ""
#: messages.go:148
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgid "Invalid password, please try again"
msgstr ""
#: messages.go:149
msgid "Your account could not be connected"
msgid "Feature disabled"
msgstr ""
#: messages.go:150
msgid "Too many requests"
msgid "No labels selected"
msgstr ""
#: messages.go:151
msgid "Insufficient storage"
msgid "No albums selected"
msgstr ""
#: messages.go:152
msgid "Quota exceeded"
msgid "No files available for download"
msgstr ""
#: messages.go:153
msgid "Failed to create zip file"
msgstr ""
#: messages.go:154
msgid "Invalid credentials"
msgstr ""
#: messages.go:155
msgid "Changes successfully saved"
msgid "Invalid link"
msgstr ""
#: messages.go:156
msgid "Album created"
msgid "Invalid name"
msgstr ""
#: messages.go:157
msgid "Album saved"
msgid "Busy, please try again later"
msgstr ""
#: messages.go:158
#, c-format
msgid "Album %s deleted"
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr ""
#: messages.go:159
msgid "Album contents cloned"
msgid "Your account could not be connected"
msgstr ""
#: messages.go:160
msgid "File removed from stack"
msgid "Too many requests"
msgstr ""
#: messages.go:161
msgid "File deleted"
msgid "Insufficient storage"
msgstr ""
#: messages.go:162
#, c-format
msgid "Selection added to %s"
msgid "Quota exceeded"
msgstr ""
#: messages.go:163
#, c-format
msgid "One entry added to %s"
msgid "Registration disabled"
msgstr ""
#: messages.go:164
#, c-format
msgid "%d entries added to %s"
msgstr ""
#: messages.go:165
#, c-format
msgid "One entry removed from %s"
msgstr ""
#: messages.go:166
#, c-format
msgid "%d entries removed from %s"
msgid "Verified email required"
msgstr ""
#: messages.go:167
msgid "Account created"
msgid "Changes successfully saved"
msgstr ""
#: messages.go:168
msgid "Account saved"
msgid "Album created"
msgstr ""
#: messages.go:169
msgid "Account deleted"
msgid "Album saved"
msgstr ""
#: messages.go:170
msgid "Settings saved"
#, c-format
msgid "Album %s deleted"
msgstr ""
#: messages.go:171
msgid "Password changed"
msgid "Album contents cloned"
msgstr ""
#: messages.go:172
#, c-format
msgid "Import completed in %d s"
msgid "File removed from stack"
msgstr ""
#: messages.go:173
msgid "Import canceled"
msgid "File deleted"
msgstr ""
#: messages.go:174
#, c-format
msgid "Indexing completed in %d s"
msgid "Selection added to %s"
msgstr ""
#: messages.go:175
msgid "Indexing originals..."
#, c-format
msgid "One entry added to %s"
msgstr ""
#: messages.go:176
#, c-format
msgid "Indexing files in %s"
msgid "%d entries added to %s"
msgstr ""
#: messages.go:177
msgid "Indexing canceled"
#, c-format
msgid "One entry removed from %s"
msgstr ""
#: messages.go:178
#, c-format
msgid "Removed %d files and %d photos"
msgid "%d entries removed from %s"
msgstr ""
#: messages.go:179
#, c-format
msgid "Moving files from %s"
msgid "Account created"
msgstr ""
#: messages.go:180
#, c-format
msgid "Copying files from %s"
msgid "Account saved"
msgstr ""
#: messages.go:181
msgid "Labels deleted"
msgid "Account deleted"
msgstr ""
#: messages.go:182
msgid "Label saved"
msgid "Settings saved"
msgstr ""
#: messages.go:183
msgid "Subject saved"
msgid "Password changed"
msgstr ""
#: messages.go:184
msgid "Subject deleted"
#, c-format
msgid "Import completed in %d s"
msgstr ""
#: messages.go:185
msgid "Person saved"
msgid "Import canceled"
msgstr ""
#: messages.go:186
msgid "Person deleted"
#, c-format
msgid "Indexing completed in %d s"
msgstr ""
#: messages.go:187
msgid "File uploaded"
msgid "Indexing originals..."
msgstr ""
#: messages.go:188
#, c-format
msgid "%d files uploaded in %d s"
msgid "Indexing files in %s"
msgstr ""
#: messages.go:189
msgid "Processing upload..."
msgid "Indexing canceled"
msgstr ""
#: messages.go:190
msgid "Upload has been processed"
#, c-format
msgid "Removed %d files and %d photos"
msgstr ""
#: messages.go:191
msgid "Selection approved"
#, c-format
msgid "Moving files from %s"
msgstr ""
#: messages.go:192
msgid "Selection archived"
#, c-format
msgid "Copying files from %s"
msgstr ""
#: messages.go:193
msgid "Selection restored"
msgid "Labels deleted"
msgstr ""
#: messages.go:194
msgid "Selection marked as private"
msgid "Label saved"
msgstr ""
#: messages.go:195
msgid "Albums deleted"
msgid "Subject saved"
msgstr ""
#: messages.go:196
msgid "Subject deleted"
msgstr ""
#: messages.go:197
msgid "Person saved"
msgstr ""
#: messages.go:198
msgid "Person deleted"
msgstr ""
#: messages.go:199
msgid "File uploaded"
msgstr ""
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr ""
#: messages.go:201
msgid "Processing upload..."
msgstr ""
#: messages.go:202
msgid "Upload has been processed"
msgstr ""
#: messages.go:203
msgid "Selection approved"
msgstr ""
#: messages.go:204
msgid "Selection archived"
msgstr ""
#: messages.go:205
msgid "Selection restored"
msgstr ""
#: messages.go:206
msgid "Selection marked as private"
msgstr ""
#: messages.go:207
msgid "Albums deleted"
msgstr ""
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr ""
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr ""
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr ""
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr ""
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr ""

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: Spanish <https://translate.photoprism.app/projects/photoprism/"
"backend/es/>\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Algo ha ido mal, inténtalo de nuevo"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Incapaz de hacerlo"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "No se pudieron guardar los cambios"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "No se pudo borrar"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s ya existe"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "No encontrado"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "No se encuentra el archivo"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Archivo demasiado grande"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "No compatible"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Tipo no admitido"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Formato no admitido"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "La carpeta de originales está vacía"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Selección no encontrada"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entidad no encontrada"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Cuenta no encontrada"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Usuario no encontrado"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etiqueta no encontrada"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "No se encuentra la cámara"
#: messages.go:130
msgid "Lens not found"
msgstr "No se ha encontrado la lente"
#: messages.go:131
msgid "Album not found"
msgstr "Álbum no encontrado"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Asunto no encontrado"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Persona no encontrada"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Cara no encontrada"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "No disponible en modo público"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "No está disponible en modo de sólo lectura"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Por favor inicie sesión"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Permiso denegado"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Pago requerido"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "El archivo subido puede ser ofensivo"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Carga fallida"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Ningún elemento seleccionado"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Fallo al crear el archivo, por favor, compruebe los permisos"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Fallo al crear la carpeta, por favor, compruebe los permisos"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "No se pudo conectar, por favor vuelva a intentarlo"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Ingrese el código de verificación"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Código de verificación no válido, inténtalo de nuevo"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Contraseña inválida, por favor vuelva a intentarlo"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Característica desactivada"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Ninguna etiqueta seleccionada"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Ningún álbum seleccionado"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Ningún archivo disponible para descargar"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Fallo al crear el archivo zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Credenciales no válidas"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Enlace inválido"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nombre inválido"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Ocupado, por favor vuelva a intentarlo más tarde"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "El intervalo de activación es %s, pero debe ser 1h o menos"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Su cuenta no pudo ser conectada"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Demasiadas peticiones"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Almacenamiento insuficiente"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Cuota superada"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "El registro está desactivado"
#: messages.go:164
msgid "Verified email required"
msgstr "Se requiere una dirección de correo electrónico verificada"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Cambios guardados con éxito"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Álbum creado"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Álbum guardado"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Álbum %s borrado"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Contenidos del álbum clonados"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Archivo eliminado de la pila"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Archivo eliminado"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Selección añadida a %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Una entrada añadida a %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d entradas añadidas a %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Una entrada eliminada de %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d entradas eliminadas de %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Cuenta creada"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Cuenta guardada"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Cuenta borrada"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Ajustes guardados"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Contraseña cambiada"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importación completada en %d"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importación cancelada"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexación completada en %d"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexando originales..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexando archivos en %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexación cancelada"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Eliminados %d archivos y %d fotos"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Moviendo achivos desde %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Copiando archivos desde %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etiquetas borradas"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etiqueta guardada"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Asunto guardado"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Sujeto eliminado"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Persona salvada"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Persona eliminada"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Archivo cargado"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d archivos subidos en %d"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Procesando la carga..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "La carga ha sido procesada"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Selección aprobada"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Selección archivada"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Selección restaurada"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Selección marcada como privada"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Álbumes borrados"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip creado en %d"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Eliminado permanentemente"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s ha sido restaurado"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Verificado con éxito"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Activado exitosamente"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: et\n"
@ -11,402 +11,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Midagi läks valesti, proovige uuesti"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Seda ei ole võimalik teha"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Muudatuste salvestamine ebaõnnestus"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Kustutamine ebaõnnestus"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s on juba olemas"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Ei leitud"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Faili ei leitud"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Fail on liiga suur"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Toetamata"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Toetamata tüüp"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Mittetoetatud formaat"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Originaalide kaust on tühi"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Valikut ei leitud"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Olemit ei leitud"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Kontot ei leitud"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Kasutajat ei leitud"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Silti ei leitud"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kaamerat ei leitud"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektiivi ei leitud"
#: messages.go:131
msgid "Album not found"
msgstr "Albumit ei leitud"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Teemat ei leitud"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Isikut ei leitud"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Nägu ei leitud"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Pole avalikus režiimis saadaval"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Pole kirjutuskaitstud režiimis saadaval"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Palun logi oma kontole sisse"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Õigused puuduvad"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Nõutav makse"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Fail võib olla solvav"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Üleslaadimine ebaõnnestus"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Midagi pole valitud"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Faili loomine ebaõnnestus, kontrolli õiguseid"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Kausta loomine ebaõnnestus, kontrolli õiguseid"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Ühendumine ebaõnnestus, palun proovi uuesti"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Sisesta kontrollkood"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Vale kinnituskood, proovige uuesti"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Vale parool, palun proovi uuesti"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funktsioon välja lülitatud"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Ühtegi silti pole valitud"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Ühtegi albumit pole valitud"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Ühtegi faili ei ole allalaadimiseks saadaval"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "ZIP-faili loomine ebaõnnestus"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Kehtetud ligipääsuandmed"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Vigane link"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Vigane nimi"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Hõivatud, palun proovi hiljem uuesti"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Ärkamisintervall on %s, kuid peab olema 1 tund või vähem"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Konto ühendamine ebaõnnestus"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Liiga palju taotlusi"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Ebapiisav ladustamine"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kvoot ületatud"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registreerimine on keelatud"
#: messages.go:164
msgid "Verified email required"
msgstr "Nõutav on kinnitatud e-posti aadress"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Muudatused edukalt salvestatud"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album lisatud"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album salvestatud"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s kustutatud"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albumi sisu kloonitud"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Fail virnast eemaldatud"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fail kustutatud"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Valik lisatud albumisse %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Üks kirje lisatud albumisse %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d kirjet lisatud albumisse %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Üks kirje eemaldatud albumist %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d kirjet eemaldatud albumist %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Konto loodud"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Konto salvestatud"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Konto kustutatud"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Seaded salvestatud"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Parool muudetud"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import tehtud %d sekundiga"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Import tühistatud"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indekseerimine lõpetatud %d sekundiga"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Originaalide indekseerimine..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Failide indekseerimine: %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indekseerimine tühistatud"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Eemaldatud %d faili ja %d fotot"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Failide liigutamine asukohast %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Failide kopeerimine asukohast %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Sildid kustutatud"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Silt salvestatud"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Teema salvestatud"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Teema kustutatud"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Isik salvestatud"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Isik kustutatud"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "File üles laaditud"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d faili üles laaditud %d sekundiga"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Üleslaaditud faili töötlemine..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Üleslaaditud fail on töödeldud"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Valik heaks kiidetud"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Valik arhiveeritud"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Valik taastatud"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Valik privaatseks märgitud"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albumid kustutatud"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "ZIP-fail loodud %d sekundiga"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Lõplikult kustutatud"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s on taastatud"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Edukalt kinnitatud"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Edukalt aktiveeritud"

View file

@ -2,412 +2,427 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Arazoren bat izan da. Saiatu berriro"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Hori egin ezinik"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Ezin izan dira aldaketak gorde"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Ezin izan da ezabatu"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s dagoeneko existitzen da"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Ez da aurkitu"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Fitxategia ez da aurkitu"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Fitxategi handiegia"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Onartu gabe"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Onartu gabeko mota"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Onartu gabeko formatua"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Jatorrizkoen karpeta hutsik dago"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Ez da hautapena aurkitu"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Ez da aurkitu entitatea"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Ez da kontua aurkitu"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Ez da erabiltzailea aurkitu"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Ez da etiketa aurkitu"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera ez da aurkitu"
#: messages.go:130
msgid "Lens not found"
msgstr "Lentila ez da aurkitu"
#: messages.go:131
msgid "Album not found"
msgstr "Ez da aurkitu albuma"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Ez da aurkitu gaia"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Pertsona ez da aurkitu"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Aurpegia ez da aurkitu"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Ez dago eskuragarri modu publikoan"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Ez dago erabilgarri irakurtzeko soilik moduan"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Mesedez, hasi saioa zure kontuan"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Baimena ukatu egin da"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Ordainketa beharrezkoa da"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Kargatzea iraingarria izan daiteke"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Ezin izan da kargatu"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Ez da elementurik hautatu"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Ezin izan da fitxategia sortzean. Egiaztatu baimenak"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Ezin izan da karpeta sortzean. Egiaztatu baimenak"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Ezin izan da konektatu. Saiatu berriro"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Sartu egiaztapen-kodea"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Egiaztapen-kode baliogabea. Saiatu berriro"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Pasahitz baliogabea, saiatu berriro"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Eginbidea desgaituta dago"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Ez da etiketarik hautatu"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Ez dago albumik hautatu"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Ez dago fitxategirik deskargatzeko erabilgarri"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Ezin izan da zip fitxategia sortu"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Kredentzialak baliogabeak"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Esteka baliogabea"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Izen baliogabea"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Lanpetuta, saiatu berriro geroago"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Esnatzeko tartea %s da, baina ordu 1 edo gutxiagokoa izan behar du"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Ezin izan da zure kontua konektatu"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Eskaera gehiegi"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Biltegiratze nahikoa ez"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kuota gainditu da"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Erregistroa desgaituta dago"
#: messages.go:164
msgid "Verified email required"
msgstr "Egiaztatutako posta elektronikoa beharrezkoa da"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Aldaketak ongi gorde dira"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Sortu da albuma"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Albuma gorde da"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "%s albuma ezabatu da"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albumen edukia klonatu da"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Fitxategia pilatik kendu da"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fitxategia ezabatu da"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Aukeraketa gehitu da %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Sarrera bat gehitu da %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d sarrerak gehitu dira %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Sarrera bat kendu da %s-tik"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d sarrerak kendu dira %s-tik"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Kontua sortu da"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Kontua gorde da"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Kontua ezabatu da"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Ezarpenak gorde dira"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Pasahitza aldatu da"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Inportazioa %d s-an amaitu da"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Inportazioa bertan behera utzi da"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexatzea %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Jatorrizkoak indexatzen..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Fitxategiak indexatzen %s-n"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexazioa bertan behera utzi da"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d fitxategiak eta %d argazkiak kendu dira"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Fitxategiak mugitzen %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "%s fitxategiak kopiatzen"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etiketak ezabatu dira"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etiketa gorde da"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Gaia gorde da"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Gaia ezabatu da"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Pertsona gordeta"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Pertsona ezabatu da"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Kargatu da fitxategia"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d fitxategiak %d s-etan kargatu dira"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Kargaketa prozesatzen..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Kargatzea prozesatu da"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Hautaketa onartu da"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Hautaketa artxibatuta dago"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Hautaketa leheneratu da"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Hautapena pribatu gisa markatu da"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albumak ezabatu dira"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip sortu zen %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Betiko ezabatu da"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s leheneratu da"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Behar bezala egiaztatu da"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Behar bezala aktibatu da"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "یه چیزی اشتباه شد دوباره تلاش کن"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "قادر به انجام آن نیست"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "تغییرات را نمی توان ذخیره کرد"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "نمی توان حذف کرد"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s از قبل وجود دارد"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "پیدا نشد"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "فایل پیدا نشد"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "فایل خیلی بزرگ است"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "پشتیبانی نمی شود"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "نوع پشتیبانی نشده"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "قالب پشتیبانی نشده"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "پوشه اصلی خالی است"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "انتخاب پیدا نشد"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "موجودیت پیدا نشد"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "حساب کاربری پیدا نشد"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "کاربر پیدا نشد"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "برچسب پیدا نشد"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "دوربین پیدا نشد"
#: messages.go:130
msgid "Lens not found"
msgstr "لنز یافت نشد"
#: messages.go:131
msgid "Album not found"
msgstr "آلبوم پیدا نشد"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "موضوع پیدا نشد"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "فرد پیدا نشد"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "صورت پیدا نشد"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "در حالت عمومی در دسترس نیست"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "در حالت فقط خواندنی در دسترس نیست"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "لطفا وارد شوید و دوباره امتحان کنید"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "فرد حذف شد"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "پرداخت لازم است"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "آپلود ممکن است توهین آمیز باشد"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "آپلود انجام نشد"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "هیچ موردی انتخاب نشده است"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "فایل ایجاد نشد، لطفا مجوزها را بررسی کنید"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "پوشه ایجاد نشد، لطفا مجوزها را بررسی کنید"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "اتصال برقرار نشد، لطفاً دوباره امتحان کنید"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "کد تایید را وارد کنید"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "کد تأیید نامعتبر است، لطفاً دوباره امتحان کنید"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "رمز عبور نامعتبر است، لطفا دوباره امتحان کنید"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "ویژگی غیرفعال است"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "هیچ برچسبی انتخاب نشده است"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "هیچ آلبومی انتخاب نشده است"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "هیچ فایلی برای دانلود موجود نیست"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "فایل فشرده ایجاد نشد"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "گواهی نامه نامعتبر"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "لینک نامعتبر"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "نام نامعتبر"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "مشغول است، لطفاً بعداً دوباره امتحان کنید"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "فاصله بیداری %s است، اما باید 1 ساعت یا کمتر باشد"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "حساب شما متصل نشد"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "درخواست های خیلی زیاد"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "ذخیره سازی ناکافی"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "از سهمیه فراتر رفت"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "ثبت نام غیرفعال شد"
#: messages.go:164
msgid "Verified email required"
msgstr "ایمیل تایید شده الزامی است"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "تغییرات با موفقیت ذخیره شد"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "آلبوم ایجاد شد"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "آلبوم ذخیره شد"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "آلبوم %s حذف شد"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "محتویات آلبوم کلون شد"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "فایل از پشته حذف شد"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "فایل حذف شد"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "مورد انتخابی به %s اضافه شد"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "یک مورد به %s اضافه شد"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d مورد به %s اضافه شد"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "یک مورد از %s حذف شد"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d مورد از %s حذف شد"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "حساب کاربری ایجاد شد"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "حساب کاربری ذخیره شد"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "حساب کاربری حذف شد"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "تنظیمات ذخیره شد"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "رمزعبور تغییر کرد"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "وارد کردن در %d ثانیه تکمیل شد"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "وارد کردن لغو شد"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "نمایه سازی در %d ثانیه تکمیل شد"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "نمایه سازی نسخه های اصلی ..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "نمایه سازی فایل ها در %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "نمایه سازی لغو شد"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d فایل و %d عکس حذف شد"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "انتقال فایل ها از %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "کپی کردن فایل ها از %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "برچسب ها حذف شدند"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "برچسب ذخیره شد"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "موضوع ذخیره شد"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "موضوع حذف شد"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "فرد ذخیره شد"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "فرد حذف شد"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "فایل حذف شد"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d فایل در %d ثانیه آپلود شد"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "در حال پردازش آپلود..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "%s بازیابی شده است"
msgstr "بارگذاری پردازش شده است"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "مورد انتخابی تایید شد"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "مورد انتخابی بایگانی شد"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "مورد انتخابی بازیابی شد"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "مورد انتخابی به‌عنوان خصوصی علامت‌گذاری شد"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "آلبوم حذف شد"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "فایل فشرده در %d ثانیه ایجاد شد"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "برای همیشه حذف شد"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s بازیابی شده است"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "با موفقیت تأیید شد"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "با موفقیت فعال شد"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: fi\n"
@ -11,402 +11,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Jokin meni pieleen, yritä uudelleen"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Se ei onnistu"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Muutoksia ei voitu tallentaa"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Ei voitu poistaa"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s on jo olemassa"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Ei löytynyt"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Tiedostoa ei löydy"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Tiedosto liian suuri"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Ei tuettu"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Tyyppiä ei tueta"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Ei tuettu muoto"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Originaalit-kansio on tyhjä"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Valintaa ei löydy"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entiteettiä ei löydy"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Tiliä ei löydy"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Käyttäjää ei löydy"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Tarraa ei löydy"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kameraa ei löydy"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektiivia ei löydy"
#: messages.go:131
msgid "Album not found"
msgstr "Albumia ei löydy"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Aihetta ei löydy"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Henkilöä ei löydy"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Kasvoja ei löydy"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Ei käytettävissä julkisessa tilassa"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Ei käytettävissä vain luku-tilassa"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Kirjaudu sisään tilillesi"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Lupa evätty"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Vaadittu maksu"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Upload saattaa olla loukkaava"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Lataus epäonnistui"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Kohdetta ei ole valittu"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Tiedoston luominen epäonnistui, tarkista käyttöoikeudet"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Kansion luominen epäonnistui, tarkista käyttöoikeudet"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Yhteyttä ei saatu muodostettua, yritä uudelleen"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "syötä vahvistus koodi"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Virheellinen vahvistuskoodi, yritä uudelleen"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Väärä salasana, yritä uudelleen"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Ominaisuus poistettu käytöstä"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Ei valittuja tarroja"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Ei valittuja albumeita"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Tiedostoja ei ole ladattavissa"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Zip-tiedoston luominen epäonnistui"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Virheelliset valtakirjat"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Virheellinen linkki"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Virheellinen nimi"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Varattu, yritä myöhemmin uudelleen"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Heräämisväli on %s, mutta sen on oltava enintään 1h"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Tiliäsi ei voitu yhdistää"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Liian monta pyyntöä"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Riittämätön varastointi"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kiintiö ylitetty"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Rekisteröityminen on poistettu käytöstä"
#: messages.go:164
msgid "Verified email required"
msgstr "Vaaditaan vahvistettu sähköpostiosoite"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Muutokset tallennettu onnistuneesti"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Albumi luotu"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Albumi tallennettu"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Albumi %s poistettu"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albumin sisältö kloonattu"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Tiedosto poistettu pinosta"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Tiedosto poistettu"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Valinta lisätty %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Yksi merkintä lisätty kohtaan %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d merkintöjä lisätty %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Yksi merkintä poistettu kohdasta %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d merkinnät poistettu %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Tili luotu"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Tallennettu tili"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Tili poistettu"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Asetukset tallennettu"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Salasana vaihdettu"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Tuonti valmis %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Tuonti peruutettu"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indeksointi valmis %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Alkuperäiskappaleiden indeksointi..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Tiedostojen indeksointi osoitteessa %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksointi peruutettu"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Poistettiin %d tiedostoa ja %d valokuvaa"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Tiedostojen siirtäminen %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Tiedostojen kopiointi %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Tunnisteet poistettu"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Tarra tallennettu"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Aihe tallennettu"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Aihe poistettu"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Tallennettu henkilö"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Henkilö poistettu"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Ladattu tiedosto"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d tiedostoa ladattu %d s aikana"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Käsittelen latausta..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Lataus on käsitelty"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Valinta hyväksytty"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Valinta arkistoitu"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Valinta palautettu"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Valinta merkitty yksityiseksi"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albumit poistettu"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip luotu %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Poistettu pysyvästi"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s on palautettu"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Vahvistettu onnistuneesti"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Aktivointi onnistui"

View file

@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-28 15:07+0000\n"
"Last-Translator: jean-louis67 <jean-louis.frenkel@orange.fr>\n"
"Language-Team: French <https://translate.photoprism.app/projects/photoprism/"
"backend/fr/>\n"
"Language: fr\n"
@ -12,402 +12,422 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Quelque chose s'est mal passé, réessayez"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Impossible de faire cela"
msgstr "Impossible d'effectuer cela"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Les modifications n'ont pas pu être sauvegardées"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "N'a pas pu être supprimé"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s existe déjà"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Non trouvé"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Fichier non trouvé"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Fichier trop volumineux"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Non pris en charge"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Type non pris en charge"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Format non supporté"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Le dossier des originaux est vide"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Sélection non trouvée"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entité non trouvée"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Compte non trouvé"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Utilisateur non trouvé"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Étiquette non trouvée"
#: messages.go:121
msgid "Album not found"
msgstr "Album introuvable"
#: messages.go:129
msgid "Camera not found"
msgstr "Caméra non trouvée"
#: messages.go:122
#: messages.go:130
msgid "Lens not found"
msgstr "Objectif non trouvé"
#: messages.go:131
msgid "Album not found"
msgstr "Album non trouvé"
#: messages.go:132
msgid "Subject not found"
msgstr "Sujet non trouvé"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Personne non trouvée"
#: messages.go:124
#: messages.go:134
#, fuzzy
msgid "Face not found"
msgstr "Visage non trouvé"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Non disponible en mode public"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Non disponible en mode lecture seule"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Veuillez vous connecter avec votre compte"
msgstr "Veuillez vous connecter à votre compte"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Permission refusée"
msgstr "Autorisation refusée"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Paiement requis"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Le contenu chargé peut être choquant"
msgstr "Le contenu chargé pourrait être de nature offensante"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Échec du chargement"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Aucun élément sélectionné"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "La création du fichier a échoué, veuillez vérifier les permissions"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Échec de la création du dossier, veuillez vérifier les permissions"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Échec lors de la connexion, veuillez réessayer"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Entrer le code de vérification"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Code de vérification invalide, veuillez réessayer"
msgstr "Code de vérification incorrect, veuillez réessayer"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Mot de passe invalide, veuillez réessayer"
msgstr "Mot de passe incorrect, veuillez réessayer"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Fonctionnalité désactivée"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Aucune étiquette sélectionnée"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Aucun album sélectionné"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Aucun fichier disponible au téléchargement"
msgstr "Aucun fichier à télécharger"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Échec de la création du fichier zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Les informations d'identification sont invalides"
msgstr "Les informations d'identification ne sont pas valables"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Lien invalide"
msgstr "Lien incorrect"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nom invalide"
msgstr "Nom incorrect"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Occupé, veuillez réessayer plus tard"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "L'intervalle de réveil est %s, mais doit être inférieur ou égal à 1h"
msgstr ""
"L'intervalle entre les tâches est de %s, mais il doit être inférieur ou égal "
"à 1 h"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Votre compte n'a pas pu être connecté"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Trop de demandes"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Espace de stockage insuffisant"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Quota dépassé"
#: messages.go:155
#: messages.go:163
#, fuzzy
msgid "Registration disabled"
msgstr "Inscription désactivée"
#: messages.go:164
msgid "Verified email required"
msgstr "Adresse de courriel vérifiée requise"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Les modifications ont bien été enregistrées"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album créé"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album sauvegardé"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s supprimé"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Le contenu de l'album a été copié"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Le fichier a été retiré du groupe"
msgstr "Le fichier a été retiré de la pile"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fichier supprimé"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Sélection ajoutée à %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Une entrée a été ajoutée à %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d entrées ont été ajoutées à %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Une entrée a été supprimée de %s"
msgstr "Une entrée a été supprimée dans %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d entrées ont été supprimées de %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Compte créé"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Compte sauvegardé"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Compte supprimé"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Paramètres sauvegardés"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Mot de passe modifié"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importation terminée en %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importation annulée"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexation terminée en %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexage des originaux…"
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexation des fichiers de %s"
msgstr "Indexation des fichiers en %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexation annulée"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Suppression de %d fichiers et %d photos"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Déplacement de fichiers depuis %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Copie de fichiers depuis %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Étiquettes supprimées"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Étiquettes sauvegardées"
msgstr "Étiquette sauvegardée"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Sujet sauvegardé"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Sujet supprimé"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Personne sauvegardée"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Personne supprimée"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Fichier téléchargé"
msgstr "Fichier chargé"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d fichiers chargés en %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Traitement du téléchargement..."
msgstr "Chargement en cours…"
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Le téléchargement a été traité"
msgstr "Le chargement a été effectué"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Sélection approuvée"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Sélection archivée"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Sélection restaurée"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Sélection marquée comme privée"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albums supprimés"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Archive zip créée en %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Supprimé définitivement"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s a été restauré"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Vérifié avec succès"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Activation réussie"

View file

@ -7,10 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: ga\n"
"MIME-Version: 1.0\n"
@ -18,402 +17,418 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :"
"(n>6 && n<11) ? 3 : 4;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Chuaigh rud éigin mícheart, bain triail eile as"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Ní féidir é sin a dhéanamh"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Níorbh fhéidir na hathruithe a shábháil"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Níorbh fhéidir a scriosadh"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s ann cheana"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Ní bhfuarthas"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Comhad gan aimsiú"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Comhad ró-mhór"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Gan tacaíocht"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Cineál nach dtacaítear leis"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Formáid nach dtacaítear léi"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Tá fillteán bunghnéithe folamh"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Níor aimsíodh an rogha"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Aonán gan aimsiú"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Cuntas gan aimsiú"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Úsáideoir gan aimsiú"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Níor aimsíodh an lipéad"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Níor aimsíodh an ceamara"
#: messages.go:130
msgid "Lens not found"
msgstr "Níor aimsíodh an lionsa"
#: messages.go:131
msgid "Album not found"
msgstr "Albam gan aimsiú"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Ní bhfuarthas an t-ábhar"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Ní bhfuarthas an duine"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Aghaidh gan aimsiú"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Níl sé ar fáil i mód poiblí"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Níl sé ar fáil i mód inléite amháin"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Logáil isteach i do chuntas le do thoil"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Cead diúltaithe"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Íocaíocht ag teastáil"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "D'fhéadfadh uaslódáil a bheith maslach"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Theip ar an uaslódáil"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Níl aon mhír roghnaithe"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Theip ar chruthú an chomhaid, seiceáil na ceadanna"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Theip ar chruthú fillteán, seiceáil na ceadanna"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Níorbh fhéidir ceangal a dhéanamh, bain triail eile as"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Cuir isteach cód fíorúcháin"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Cód fíoraithe neamhbhailí, bain triail eile as"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Pasfhocal neamhbhailí, bain triail eile as"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Gné díchumasaithe"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Níor roghnaíodh aon lipéid"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Níor roghnaíodh aon albam"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Níl aon chomhaid ar fáil le híoslódáil"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Theip ar chruthú an chomhaid zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Dintiúir neamhbhailí"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Nasc neamhbhailí"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Ainm neamhbhailí"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Gnóthach, bain triail eile as ar ball"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Is é %s an t-eatramh múscail, ach caithfidh sé a bheith 1h nó níos lú"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Níorbh fhéidir do chuntas a nascadh"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "An iomarca iarratas"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Stóráil neamhleor"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Sáraíodh an cuóta"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Clárú díchumasaithe"
#: messages.go:164
msgid "Verified email required"
msgstr "Ríomhphost fíoraithe ag teastáil"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Sábháladh na hathruithe"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Albam cruthaithe"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Sábháilte albam"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Albam %s scriosta"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Clónáilte ábhar albam"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Baineadh an comhad den chruach"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Scriosadh an comhad"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Cuireadh an rogha le %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Cuireadh iontráil amháin le %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d iontráil curtha le %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Baineadh iontráil amháin de %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d iontráil bainte de %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Cuntas cruthaithe"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Cuntas sábháilte"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Scriosadh an cuntas"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Socruithe sábháilte"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Athraíodh an pasfhocal"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Iompórtáil críochnaithe i %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Cealaíodh an iompórtáil"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Innéacsú curtha i gcrích in %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Buntéacs á innéacsú..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Comhaid á innéacsú in %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Innéacsú cealaithe"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Baineadh %d comhaid agus %d grianghraif"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Comhaid á mbogadh ó %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Comhaid á gcóipeáil ó %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Scriosadh na lipéid"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Lipéad sábháilte"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Ábhar sábháilte"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Scriosadh an t-ábhar"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Sábháladh an duine"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Scriosadh an duine"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Comhad uaslódáilte"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d comhaid uaslódáilte i %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Uaslódáil á phróiseáil..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Próiseáladh an t-uaslódáil"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Faomhadh an roghnúcháin"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Roghnaithe sa chartlann"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Athchóiríodh an roghnúchán"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Roghnú marcáilte mar phríobháideach"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albaim scriosta"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip cruthaithe i %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Scriosta go buan"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s athchóirithe"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "D'éirigh leis a fhíorú"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Cuireadh i ngníomh go rathúil"

View file

@ -2,10 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: Hebrew <https://translate.photoprism.app/projects/photoprism/"
"backend/he/>\n"
"Language: he\n"
@ -14,402 +13,418 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "קרתה תקלה נסה שוב"
msgstr "משהו השתבש נא לנסות שוב"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "לא מסוגל לעשות את זה"
msgstr "לא ניתן לבצע זאת"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "לא ניתן לשמור שינויים"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "לא ניתן למחיקה"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s כבר קיים"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "לא נמצא"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "הקובץ לא נמצא"
msgstr "קובץ לא נמצא"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "קובץ גדול מדי"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "אינו נתמך"
msgstr "לא נתמך"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "סוג לא נתמך"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "פורמט לא נתמך"
msgstr "תסדיר לא נתמך"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "תיקיית המקור ריקה"
msgstr "תיקיית מקור ריקה"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "הבחירה לא נמצאה"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "הישות לא נמצאה"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "החשבון לא נמצא"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "המשתמש לא נמצא"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "התווית לא נמצאה"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "לא נמצאה מצלמה"
#: messages.go:130
msgid "Lens not found"
msgstr "לא נמצא עדשה"
#: messages.go:131
msgid "Album not found"
msgstr "האלבום לא נמצא"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "הנושא לא נמצא"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "אדם לא נמצא"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "הפנים לא נמצאו"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "לא זמין במצב ציבורי"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "לא זמין במצב קריאה בלבד"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "אנא היכנס לחשבון שלך"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "גישה נדחתה"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "נדרש תשלום"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "ההעלאה עשויה להיות פוגענית"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "העלאה נכשלה"
msgstr "העלאה כשלה"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "לא נבחרו פריטים"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "יצירת הקובץ נכשלה, אנא בדוק את ההרשאות"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "יצירת התיקיה נכשלה, אנא בדוק את ההרשאות"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "לא ניתן היה להתחבר, נסה שוב"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "הכנס קוד אימות"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "קוד אימות לא חוקי, אנא נסה שוב"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "סיסמה לא תקינה, נסה שוב"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "התכונה מושבתת"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "לא נבחרו תוויות"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "לא נבחרו אלבומים"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "אין קבצים זמינים להורדה"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "יצירת קובץ ה-zip נכשלה"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "אישורים לא תקינים"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "קישור לא תקין"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "מספר לא תקף"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "עסוק, אנא נסה שוב מאוחר יותר"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "מרווח ההשכמה הוא %s, אך חייב להיות שעה אחת או פחות"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "לא ניתן היה לחבר את החשבון שלך"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "יותר מדי בקשות"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "אחסון לא מספיק"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "חריגה מהמכסה"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "ההרשמה אינה פעילה"
#: messages.go:164
msgid "Verified email required"
msgstr "נדרש כתובת דוא\"ל מאומתת"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "השינויים נשמרו בהצלחה"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "האלבום נוצר"
msgstr "אלבום נוצר"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "האלבום נשמר"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "האלבום %s נמחק"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "תוכן האלבום שוכפל"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "הקובץ הוסר מהאיחוד"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "הקובץ נמחק"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "הבחירה נוספה ל-%s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "רשומה אחת נוספה ל-%s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d רשומות נוספו ל-%s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "רשומה אחת הוסרה מ-%s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d רשומות הוסרו מ-%s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "החשבון נוצר"
msgstr "חשבון נוצר"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "החשבון נשמר"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "החשבון נמחק"
msgstr "חשבון נמחק"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "ההגדרות נשמרו"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "סיסמא שונתה"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "הייבוא הושלם ב-%d שניות"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "הייבוא בוטל"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "האינדוקס הושלם ב-%d שניות"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "מאנדקס קבצי מקור..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "מאנדקס קבצים תוך %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "יצירת האינדקס בוטלה"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "הוסרו %d קבצים ו-%d תמונות"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "מעביר קבצים מ-%s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "מעתיק קבצים מ-%s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "תוויות נמחקו"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "התווית נשמרה"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "הנושא נשמר"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "הנושא נמחק"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "אדם נשמר"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "אדם נמחק"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "הקובץ הועלה"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d קבצים הועלו תוך %d שניות"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "מעבד העלאה..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "ההעלאה עובדה"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "הבחירה אושרה"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "הבחירה הועברה לארכיון"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "הבחירה שוחזרה"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "הבחירה סומנה כפרטית"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "אלבומים נמחקו"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "ה-ZIP נוצר תוך %d שניות"
msgstr "קובץ Zip נוצר תוך %d שניות"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "נמחק לצמיתות"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s שוחזר"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "אומת בהצלחה"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "הופעל בהצלחה"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Hindi <https://translate.photoprism.app/projects/photoprism/"
@ -13,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "कुछ गलत हुआ है, दोबारा कोशिश करें"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "ऐसा करने में असमर्थ"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "परिवर्तन सहेजा नहीं जा सका"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "हटाया नहीं जा सका"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s पहले से मौजूद है"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "नहीं मिला"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "फाइल नहीं मिली"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "बहुत बड़ी फाइल"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "असमर्थित"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "असमर्थित प्रकार"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "असमर्थित प्रारूप"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "मूल फ़ोल्डर खाली है"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "चयन नहीं मिला"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "इकाई नहीं मिली"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "खता नहीं मिला"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "उपयोगकर्ता नहीं मिला"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "लेबल नहीं मिला"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "कैमरा नहीं मिला"
#: messages.go:130
msgid "Lens not found"
msgstr "लेंस नहीं मिला"
#: messages.go:131
msgid "Album not found"
msgstr "एल्बम नहीं मिला"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "विषय नहीं मिला"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "व्यक्ति नहीं मिला"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "चेहरा नहीं मिला"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "सार्वजनिक मोड में उपलब्ध नहीं है"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "रीड ओनली मोड में उपलब्ध नहीं है"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "कृपया अपने खाते लॉग इन करें"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "अनुमति नहीं मिली"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "भुगतान आवश्यक"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "अपलोड आपत्तिजनक हो सकता है"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "अपलोड विफल"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "कोई आइटम नहीं चुना गया"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "फ़ाइल बनाने में विफल, कृपया अनुमतियों की जाँच करें"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "फ़ोल्डर बनाने में विफल, कृपया अनुमतियों की जाँच करें"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "कनेक्ट नहीं हो सका, कृपया पुनः प्रयास करें"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "सत्यापन कोड दर्ज करें"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "सत्यापन कोड अमान्य है, कृपया पुनः प्रयास करें"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "अमान्य पासवर्ड, कृपया पुनः प्रयास करें"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "सुविधा अक्षम है"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "कोई लेबल नहीं चुना गया"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "कोई एल्बम नहीं चुना गया"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "डाउनलोड के लिए कोई फाइल उपलब्ध नहीं है"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "ज़िप फ़ाइल बनाने में विफल"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "अवैध प्रत्यय पत्र"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "अमान्य लिंक"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "अमान्य नाम"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "व्यस्त, कृपया बाद में पुन: प्रयास करें"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "वेकअप अंतराल %s है, लेकिन 1h या उससे कम होना चाहिए"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "आपका खाता कनेक्ट नहीं किया जा सका"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "बहुत अधिक अनुरोध"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "अपर्याप्त भंडारण"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "कोटा पूरा हो गया"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "पंजीकरण अक्षम"
#: messages.go:164
msgid "Verified email required"
msgstr "ईमेल सत्यापन आवश्यक है"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "परिवर्तन सफलतापूर्वक सहेजे गए"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "एल्बम बनाया गया"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "एल्बम सहेजा गया"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "एल्बम %s हटाया गया"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "एल्बम सामग्री को क्लोन किया गया"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "स्टैक से फ़ाइल को निकाला गया"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "फ़ाइल हटा दी गई"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "चयन %s में जोड़ा गया"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "एक प्रविष्टि %s में जोड़ी गई"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d प्रविष्टियों को %s में जोड़ा गया"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "%s से एक प्रविष्टि को हटाया गया"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d प्रविष्टियों को %s से हटा दिया गया"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "खाता बन गया"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "खाता सहेजा गया"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "खाता हटाया गया"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "सेटिंग्स को सहेजा गया"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "पासवर्ड बदला गया"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "%d s में आयात पूरा हुआ"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "आयात रद्द कर दिया गया"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "%d s में अनुक्रमण पूरा हुआ"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "अनुक्रमण मूल ..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "%s में फाइलों को अनुक्रमित करना"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "अनुक्रमण रद्द किया गया"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d फ़ाइलों और %d फ़ोटो को हटा दिया गया"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "%s से फाइल चल रही है"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "%s से फाइल कॉपी कर रहा है"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "लेबल हटा दिए गए"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "लेबल सहेजा गया"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "विषय सहेजा गया"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "विषय हटा दिया गया"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "व्यक्ति बचाया"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "व्यक्ति हटाया गया"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "फ़ाइल अपलोड की गई"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d फाइलों को %d में अपलोड किया गया"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "अपलोड संसाधित किया जा रहा है..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "अपलोड संसाधित हो गया है"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "चयन को संग्रहीत किया गया"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "चयन को संग्रहीत किया गया"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "चयन बहाल"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "चयन निजी के रूप में चिह्नित"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "एल्बम हटाए गए"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "%d s में बनाया गया ज़िप"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "स्थायी रूप से हटा दिया गया"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s बहाल कर दिया गया है"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "सफलतापूर्वक सत्यापित"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "सफलतापूर्वक सक्रिय किया गया"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
@ -13,402 +13,418 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Nešto nije u redu, pokušajte ponovno"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Nesposoban to učiniti"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Promjene se nisu mogle spremiti"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Nije moguće izbrisati"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s već postoji"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nije pronađeno"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Datoteka nije pronađena"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Datoteka je prevelika"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Nepodržano"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Nepodržana vrsta"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Nepodržani format"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Originalna mapa je prazna"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Odabir nije pronađen"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entitet nije pronađen"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "račun nije pronađen"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Korisnik nije pronađen"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Oznaka nije pronađena"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera nije pronađena"
#: messages.go:130
msgid "Lens not found"
msgstr "Leća nije pronađena"
#: messages.go:131
msgid "Album not found"
msgstr "Album nije pronađen"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Predmet nije pronađen"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Osoba nije pronađena"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Lice nije pronađeno"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Nije dostupno u javnom načinu"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "nije dostupno u načinu samo za čitanje"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Molimo prijavite se i pokušajte ponovno"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Osoba je izbrisana"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Potrebno je plaćanje"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Prijenos bi mogao biti uvredljiv"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Prijenos nije uspio"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Nema odabranih stavki"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Izrada datoteke nije uspjela, provjerite dopuštenja"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Izrada mape nije uspjela, provjerite dopuštenja"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Povezivanje nije uspjelo, pokušajte ponovno"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Unesite kontrolni kod"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Nevažeći kontrolni kod, pokušajte ponovno"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Nevažeća lozinka, pokušajte ponovo"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Značajka je onemogućena"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Nije odabrana nijedna oznaka"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Nije odabran nijedan album"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Nema dostupnih datoteka za preuzimanje"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Izrada zip datoteke nije uspjela"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Nevažeće vjerodajnice"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Nevažeća veza"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nevažeći naziv"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Zauzeto, pokušajte ponovo kasnije"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Interval buđenja je %s, ali mora biti 1 sat ili manje"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Vaš račun nije bilo moguće povezati"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Previše zahtjeva"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Nedovoljno prostora za pohranu"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kvota premašena"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registracija onemogućena"
#: messages.go:164
msgid "Verified email required"
msgstr "Potrebna je potvrđena e-pošta"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Promjene su uspješno spremljene"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album stvoren"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album je spremljen"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s je izbrisan"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Sadržaj albuma je kloniran"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Datoteka je uklonjena iz hrpe"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Datoteka je izbrisana"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Odabir je dodan u %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Jedan unos dodan u %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d unosi dodani u %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Jedan unos uklonjen iz %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d unosi uklonjeni iz %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Račun kreiran"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Račun spremljen"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Račun je izbrisan"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Postavke spremljene"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Lozinka je promijenjena"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Uvoz dovršen za %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Uvoz je otkazan"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indeksiranje dovršeno za %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indeksiranje originala..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indeksiranje datoteka u %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksiranje je otkazano"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Uklonjene %d datoteke i %d fotografije"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Premještanje datoteka iz %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopiranje datoteka s %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Oznake su izbrisane"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Oznaka je spremljena"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Predmet je spremljen"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Predmet je izbrisan"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Osoba je spremljena"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Osoba je izbrisana"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Datoteka je izbrisana"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d datoteke prenesene u %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Obrada prijenosa..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Prijenos bi mogao biti uvredljiv"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Odabir odobren"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Odabir je arhiviran"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Odabir je vraćen"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Odabir je označen kao privatan"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albumi su izbrisani"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip stvoren u %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Trajno izbrisano"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "Odabir je vraćen"
msgstr "%s je vraćen"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Uspješno potvrđeno"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Uspješno aktiviran"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Hungarian <https://translate.photoprism.app/projects/"
"photoprism/backend/hu/>\n"
"Language: hu\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Valami rosszul ment, próbálja újra"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Erre képtelen"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Módosításokat nem sikerült menteni"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Nem sikerült törölni"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s már létezik"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nem található"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Fájl nem található"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Túl nagy fájl"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Nem támogatott"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Nem támogatott típus"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Nem támogatott formátum"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Az Originals mappa üres"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Kiválasztás nem található"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entitás nem található"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Fiók nem található"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Felhasználó nem található"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Címke nem található"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "A kamera nem található"
#: messages.go:130
msgid "Lens not found"
msgstr "A lencse nem található"
#: messages.go:131
msgid "Album not found"
msgstr "Album nem található"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Tárgy nem található"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Személy nem található"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Arc nem található"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Nyilvános módban nem elérhető"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Nem elérhető olvasói módban"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Kérjük, jelentkezzen be fiókjába"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Engedély megtagadva"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Fizetés szükséges"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "A feltöltött fájl sértő lehet"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Feltöltés sikertelen"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Nincsenek kiválasztva elemek"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Sikertelen fájl létrehozás. Kérjük, ellenőrizze a jogosultságokat"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Sikertelen mappa létrehozás. Kérjük, ellenőrizze a jogosultságokat"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Nem sikerült csatlakozni, próbálja újra"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Adja meg a megerősítő kódot"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Érvénytelen ellenőrző kód. Kérjük, próbálja újra"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Érvénytelen jelszó, próbálkozzon újra"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funkció letiltva"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Nincsenek kiválasztva címkék"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Nincsenek kiválasztott albumok"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Nincsenek letölthető fájlok"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Nem sikerült létrehozni a zip fájlt"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Érvénytelen belépési adatok"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Érvénytelen hivatkozás"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Érvénytelen név"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Túl magas terhelés, próbálkozzon újra később"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Az ébresztési intervallum a %s, de legfeljebb 1 óra lehet."
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "A fiókját nem lehetett csatlakoztatni"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Túl sok kérés"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Elégtelen tárolás"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "A kvóta túllépése"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Regisztráció letiltva"
#: messages.go:164
msgid "Verified email required"
msgstr "Ellenőrzött e-mail cím szükséges"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Módosítások sikeresen mentve"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album létrehozva"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album mentve"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "%s album törölve"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Album tartalma klónozva"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Fájl eltávolítva a halomból"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fájl törölve"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Választék hozzáadva a következőhöz: %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Egy bejegyzés hozzáadva a következőhöz: %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d bejegyzés hozzáadva a következőhöz: %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Egy bejegyzés eltávolítva innen: %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d bejegyzés eltávolítva innen: %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Fiók létrehozva"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Fiók mentve"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Fiók törölve"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Beállítások elmentve"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Jelszó megváltoztatva"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importálás %d másodperc alatt befejeződött"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importálás megszakítva"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexelés %d másodperc alatt befejeződött"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Eredeti dokumentumok indexelése..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Fájlok indexelése itt: %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexelés megszakítva"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d fájl és %d fénykép eltávolítva"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Fájlok áthelyezése innen: %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Fájlok másolása innen: %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Címkék törölve"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Címkék mentve"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Tárgy mentve"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Tárgy törölve"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Személy mentve"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Személy törölve"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Fájl feltöltve"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d fájl feltöltve %d másodperc alatt"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Feltöltött fájlok feldolgozása..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Feltöltött fájlok feldolgozva"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "A kijelölés jóváhagyva"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "A kijelölés archiválva"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "A kijelölés visszaállítva"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "A kijelölés privátként megjelölve"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albumok törölve"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "A tömörített fájl létrejött %d másodperc alatt"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Véglegesen törölve"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s visszaállítva"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Sikeresen ellenőrizve"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Sikeres aktiválás"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Indonesian <https://translate.photoprism.app/projects/"
"photoprism/backend/id/>\n"
"Language: id\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Ada yang salah, coba lagi"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Tidak dapat melakukan itu"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Perubahan tidak dapat disimpan"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Tidak dapat dihapus"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s sudah ada"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Tidak ditemukan"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Berkas tidak ditemukan"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Berkas terlalu besar"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Tidak didukung"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Jenis tidak didukung"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Format yang tidak didukung"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Folder asli kosong"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Pilihan tidak ditemukan"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entitas tidak ditemukan"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Akun tidak ditemukan"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Pengguna tidak ditemukan"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Label tidak ditemukan"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera tidak ditemukan"
#: messages.go:130
msgid "Lens not found"
msgstr "Lensa tidak ditemukan"
#: messages.go:131
msgid "Album not found"
msgstr "Album tidak ditemukan"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Subjek tidak ditemukan"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Orang tidak ditemukan"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Wajah tidak ditemukan"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Tidak tersedia dalam mode publik"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Tidak tersedia dalam mode hanya-baca"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Silakan masuk ke akun Anda"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Izin ditolak"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Diperlukan pembayaran"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Unggahan mungkin menyinggung"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Unggahan gagal"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Tidak ada item yang dipilih"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Gagal membuat file, silakan periksa izin"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Gagal membuat folder, harap periksa izin"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Tidak dapat terhubung, silakan coba lagi"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Masukkan kode verifikasi"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Kode verifikasi tidak valid, silakan coba lagi"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Kata sandi salah, silakan coba lagi"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Fitur dinonaktifkan"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Tidak ada label yang dipilih"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Tidak ada album yang dipilih"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Tidak ada file yang tersedia untuk diunduh"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Gagal membuat file zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Kredensial tidak valid"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Tautan tidak valid"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nama tidak valid"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Sibuk, silakan coba lagi nanti"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Interval wakeup adalah %s, tetapi harus 1 jam atau kurang"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Akun Anda tidak dapat terhubung"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Terlalu banyak permintaan"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Penyimpanan yang tidak memadai"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kuota terlampaui"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Pendaftaran dinonaktifkan"
#: messages.go:164
msgid "Verified email required"
msgstr "Email terverifikasi diperlukan."
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Perubahan berhasil disimpan"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album dibuat"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album disimpan"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s dihapus"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Konten album dikloning"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "File dihapus dari tumpukan"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Berkas dihapus"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Pilihan ditambahkan ke %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Satu entri ditambahkan ke %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d entri ditambahkan ke %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Satu entri dihapus dari %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d entri dihapus dari %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Akun dibuat"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Akun disimpan"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Akun dihapus"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Pengaturan disimpan"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Kata sandi diubah"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Impor selesai dalam %d detik"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Impor dibatalkan"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Pengindeksan selesai dalam %d detik"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Mengindeks dokumen asli..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Mengindeks file dalam %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Pengindeksan dibatalkan"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Menghapus %d file dan %d foto"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Memindahkan file dari %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Menyalin file dari %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Label dihapus"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Label disimpan"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Subjek disimpan"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Subjek dihapus"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Orang disimpan"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Orang dihapus"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "File diunggah"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d file diupload di %d detik"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Memproses unggahan..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Unggahan telah diproses"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Pilihan disetujui"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Pilihan diarsipkan"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Pilihan dipulihkan"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Pilihan ditandai sebagai pribadi"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Koleksi album dihapus"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip dibuat dalam %d detik"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Dihapus permanen"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s telah dipulihkan"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Berhasil diverifikasi"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Berhasil diaktifkan"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: Italian <https://translate.photoprism.app/projects/photoprism/"
"backend/it/>\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Qualcosa è andato storto, riprova"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Impossibile farlo"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Le modifiche non possono essere salvate"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Impossibile eliminare"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s esiste già"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Non trovato"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "File non trovato"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "File troppo grande"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Non supportato"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Formato non supportato"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Formato non supportato"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "La cartella degli originali è vuota"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Selezione non trovata"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entità non trovata"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Account non trovato"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Utente non trovato"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etichetta non trovata"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Fotocamera non trovata"
#: messages.go:130
msgid "Lens not found"
msgstr "Obiettivo non trovato"
#: messages.go:131
msgid "Album not found"
msgstr "Album non trovato"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Soggetto non trovato"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Persona non trovata"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Faccia non trovata"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Non disponibile in modalità pubblica"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Non disponibile in modalità di sola lettura"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Accedere al proprio account"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Permesso negato"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Pagamento obbligatorio"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "L'upload potrebbe essere offensivo"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Upload fallito"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Nessun elemento selezionato"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Impossibile creare il file, si prega di controllare i permessi"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Impossibile creare la cartella, si prega di controllare i permessi"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Impossibile connettersi, si prega di riprovare"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Inserisci codice di verifca"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Codice di verifica errato, prova di nuovo"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Password non valida, si prega di riprovare"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funzionalità disabilitata"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Nessuna etichetta selezionata"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Nessun album selezionato"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Nessun file è disponibile per il download"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Impossibile creare il file zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Credenziali non valide"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Link non valido"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nome non valido"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Occupato, si prega di riprovare più tardi"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "L'intervallo di risveglio è %s, ma deve essere pari o inferiore a 1h"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Non è stato possibile collegare l'account"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Troppe richieste"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Stoccaggio insufficiente"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Quota superata"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registrazione disabilitata"
#: messages.go:164
msgid "Verified email required"
msgstr "È necessario un indirizzo e-mail verificato"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Modifiche salvate con successo"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album creato"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album salvato"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s eliminato"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "I contenuti dell'album sono stati duplicati"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "File rimosso dallo stack"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "File eliminato"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Selezione aggiunta a %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Un elemento aggiunto a %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d elementi aggiunti a %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Un elemento rimosso da %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d elementi rimossi da %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Account creato"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Account salvato"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Account eliminato"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Impostazioni salvate"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Password cambiata"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importazione completata in %d secondi"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importazione cancellata"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indicizzazione completata in %d secondi"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indicizzando gli originali..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indicizzazione dei file in %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indicizzazione cancellata"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Rimossi %d file e %d foto"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Spostamento dei file da %s in corso"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Copia dei file da %s in corso"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etichette eliminate"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etichetta salvata"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Soggetto salvato"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Soggetto cancellato"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Persona salvata"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Persona cancellata"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "File caricato"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d file caricati in %d secondi"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Elaborazione del caricamento..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Il caricamento è stato elaborato"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Selezione approvata"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Selezione archiviata"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Selezione ripristinata"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Selezione impostata come privata"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Album eliminati"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip creato in %d secondi"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Eliminato permanentemente"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s è stato ripristinato"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Verifica avvenuta con successo"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Attivazione avvenuta con successo"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: Japanese <https://translate.photoprism.app/projects/"
"photoprism/backend/ja/>\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "何かが間違っています。もう一度やり直してください"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "その操作はできません"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "変更を保存できませんでした"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "削除できませんでした"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s は既に存在します"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "見つかりませんでした"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "ファイルが見つかりませんでした"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "ファイルが大きすぎます"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "サポートされていません"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "サポートされていない形式です"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "非対応のフォーマットです"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Originals フォルダーは空です"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "選択した項目は存在しません"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "エンティティが見つかりません"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "アカウントが存在しません"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "ユーザーが存在しません"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "ラベルが存在しません"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "カメラが見つかりません"
#: messages.go:130
msgid "Lens not found"
msgstr "レンズが見つからない"
#: messages.go:131
msgid "Album not found"
msgstr "アルバムが存在しません"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "件名が見つかりません"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "人が見つかりません"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "顔を検出できませんでした"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "公開モードでは利用できません"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "読み込み専用モードでは利用できません"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "アカウントにログインしてください"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "アクセスが拒否されました"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "要支払い"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "アップロードされた項目に過激なものが含まれている可能性があります"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "アップロードに失敗しました"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "項目が選択されていません"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "ファイルの作成に失敗しました。権限を確認してください"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "フォルダの作成に失敗しました。権限を確認してください"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "接続できませんでした。もう一度お試しください"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "認証コードを入力してください"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "認証コードが無効です。もう一度お試しください"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "不正なパスワードです。もう一度お試しください"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "機能が無効になりました"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "ラベルが選択されていません"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "アルバムが選択されていません"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "ダウンロードできるファイルはありません"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "zip ファイルの作成に失敗しました"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "正しくない認証情報です"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "正しくないリンクです"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "無効な名前です"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "他の処理中です。後で再試行してください"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "ウェイクアップ間隔は %s ですが、1時間以内で指定する必要があります"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "アカウントに接続できませんでした"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "リクエストが多すぎます"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "ストレージが不足しています"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "ノルマ超過"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "登録が無効になっている"
#: messages.go:164
msgid "Verified email required"
msgstr "確認済みのメールアドレスが必要だ"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "変更が正常に保存されました"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "アルバムが作成されました"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "アルバムが保存されました"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "アルバム %s が削除されました"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "アルバムの内容が複製されました"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "スタックからファイルが削除されました"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "ファイルが削除されました"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "選択した項目が %s に追加されました"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "1 件の項目が %s に追加されました"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d 件の項目が %s に追加されました"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "1 件の項目が %s から削除されました"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d 件の項目が %s から削除されました"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "アカウントが作成されました"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "アカウントが保存されました"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "アカウントが削除されました"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "設定が保存されました"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "パスワードが変更されました"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "インポートが %d 秒で完了しました"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "インポートが取り消されました"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "インデックスが %d 秒で完了しました"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "originals をインデックスしています..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "%s 内のファイルをインデックスしています"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "インデックスが取り消されました"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d 件のファイルと %d 件の写真が削除されました"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "%s からファイルを移動しています"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "%s からファイルをコピーしています"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "ラベルが削除されました"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "ラベルが保存されました"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "保存対象"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "件名を削除しました"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "保存された人"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "人を削除しました"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "ファイルがアップロードされました"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d 件のファイルを %d 秒でアップロードしました"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "アップロードの処理..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "アップロードが完了しました"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "選択した項目が承認されました"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "選択した項目がアーカイブされました"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "選択した項目が復元されました"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "選択した項目がプライベートに設定されました"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "アルバムが削除されました"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "%d 秒で zip ファイルを作成しました"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "完全に削除されました"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s が復元されました"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "検証に成功しました"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "正常に有効化されました"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: Korean <https://translate.photoprism.app/projects/photoprism/"
"backend/ko/>\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "문제가 발생했습니다. 다시 시도하세요."
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "그렇게 할 수 없습니다."
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "변경 사항을 저장할 수 없음"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "삭제할 수 없음"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s가 이미 존재함"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "찾을 수 없음"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "파일을 찾을 수 없음"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "파일이 너무 큽니다"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "지원되지 않음"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "지원되지 않는 유형"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "지원되지 않는 형식"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "원본 폴더가 비어 있습니다"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "선택 항목을 찾을 수 없음"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "항목을 찾을 수 없음"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "계정을 찾을 수 없음"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "사용자를 찾을 수 없음"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "라벨을 찾을 수 없음"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "카메라를 찾을 수 없습니다"
#: messages.go:130
msgid "Lens not found"
msgstr "렌즈를 찾을 수 없습니다"
#: messages.go:131
msgid "Album not found"
msgstr "앨범을 찾을 수 없음"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "제목을 찾을 수 없음"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "사람을 찾을 수 없음"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "얼굴을 찾을 수 없음"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "공개 모드에서는 사용할 수 없음"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "읽기 전용 모드에서는 사용할 수 없음"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "귀하의 계정에 로그인하십시오"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "권한이 없음"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "결제 필요"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "업로드가 불쾌할 수 있습니다"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "업로드 실패"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "선택된 항목이 없습니다"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "파일 생성에 실패했습니다. 권한을 확인하세요"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "폴더를 만들지 못했습니다. 권한을 확인하세요"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "연결할 수 없습니다. 다시 시도해 주세요"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "인증코드를 입력하세요"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "잘못된 인증 코드입니다. 다시 시도해 주세요."
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "비밀번호가 잘못되었습니다. 다시 시도해 주세요"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "기능 비활성화됨"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "선택한 라벨이 없습니다"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "앨범이 선택되지 않았습니다"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "다운로드할 수 있는 파일이 없습니다"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "zip 파일 생성 실패"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "잘못된 자격 증명"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "유효하지 않은 링크입니다"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "잘못된 이름"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "바쁘니 나중에 다시 시도해 주세요"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "깨우기 간격은 %s이지만 1시간 이하여야 합니다"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "계정을 연결할 수 없습니다"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "너무 많은 요청"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "저장 공간 부족"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "할당량 초과"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "등록이 비활성화되었습니다."
#: messages.go:164
msgid "Verified email required"
msgstr "인증된 이메일 주소가 필요합니다"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "변경사항이 성공적으로 저장되었습니다"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "앨범 생성됨"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "앨범 저장됨"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "앨범 %s이(가) 삭제됨"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "복제된 앨범 콘텐츠"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "스택에서 제거된 파일"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "파일이 삭제됨"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "선택 항목이 %s에 추가됨"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "%s에 항목 1개 추가됨"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d 항목이 %s에 추가됨"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "%s에서 항목 1개 삭제됨"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d 항목이 %s에서 제거됨"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "계정 생성됨"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "계정이 저장됨"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "계정 삭제됨"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "설정 저장됨"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "비밀번호 변경됨"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "%d초 후에 가져오기 완료"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "가져오기 취소됨"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "%d초 후에 인덱싱 완료"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "원본 색인 생성 중..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "%s에서 파일 색인 생성"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "인덱싱 취소됨"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "파일 %d개와 사진 %d개를 삭제했습니다"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "%s에서 파일 이동"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "%s에서 파일 복사"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "라벨 삭제됨"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "라벨이 저장되었습니다"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "주제가 저장됨"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "제목 삭제됨"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "사람이 저장됨"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "삭제된 사람"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "업로드된 파일 1개"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d개의 파일이 %d초에 업로드됨"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "업로드 처리 중..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "업로드가 처리되었습니다"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "선택 항목 승인됨"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "선택 항목 보관됨"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "선택 항목 복원됨"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "비공개로 표시된 선택"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "앨범 삭제됨"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "%d초에 생성된 우편번호"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "영구 삭제됨"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s이(가) 복원되었습니다"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "성공적으로 확인되었습니다"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "성공적으로 활성화되었습니다"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Kurdish <https://translate.photoprism.app/projects/photoprism/"
@ -13,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Tiştek xelet derket, dîsa biceribîne"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Nikarin vê yekê bikin"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "گۆڕانکاریەکان پاشەکەوت نەکراوە"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "نەتوانرا بسڕێتەوە"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s پێشتر هەیە"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "نەدۆزرایەوە"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "دۆسیەکە نەدۆزرایەوە"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Pelê pir mezin e"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Piştgirî nekirin"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Cureyê ne piştgirî"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Format nayê destek kirin"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Peldanka orjînal vala ye"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "هەڵبژاردەکان نەدۆزرایەوە"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "هیچ ئەلبومێکی نەدۆزیوەتەوە"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "هەژمارەکە نەدۆزرایەوە"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "بەکارهێنەرەکە نەدۆزرایەوە"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "پێناسەکە نەدۆزرایەوە"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera nehat dîtin"
#: messages.go:130
msgid "Lens not found"
msgstr "Lens nehat dîtin"
#: messages.go:131
msgid "Album not found"
msgstr "ئەلبومەکە نەدۆزرایەوە"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "ناونیشان"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "هیچ ئەلبومێکی نەدۆزیوەتەوە"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "نەدۆزرایەوە"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "بەردەست نیە بۆ دۆخی گشتی"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "بەردەست نییە لە دۆخی تەنها-خوێندنەوە"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "تکایە تێپەڕبە پاشان هەوڵبدەرەوە"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "ئەلبومەکان سڕانەوە"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Pêdivî bi dravdanê heye"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "بارکردن لەوانەیە سووکایەتی بێت"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "بارکردنەکە سەرکەوتوو نەبوو"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "هیچ ئایتمێک دەستنیشان نەکراوە"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "شکست لە دروستکردنی پەڕگە، تکایە مۆڵەتەکان بپشکنە"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "شکست لە دروستکردنی بوخچە، تکایە مۆڵەتەکان بپشکنە"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "نەیتوانی پەیوەندی بگرێت، تکایە دووبارە هەوڵ بدەوە"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Koda verastkirinê binivîse"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Koda verastkirinê nederbasdar e, ji kerema xwe dîsa biceribîne"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "تێپەرەوشە هەڵەیە، تکایە جارێکی تر هەوڵبدەوە"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "تایبەتمەندی ناچالاک کراوە"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "هیج لە پێناسەکان هەڵنەبژێردراوە"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "هیج لە ئەلبومەکان هەڵنەبژێردراوە"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "هیچ پەڕگەیەک ئامادە نیە بۆ داگرتن"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "دروستکردنی فایلی زیپ سەرکەوتوو نەبوو"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "زانیارییەکان نادروستە"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "بەستەرەکە نادروستە"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "بەروارێکی نادروست"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "تێپەرەوشە هەڵەیە، تکایە جارێکی تر هەوڵبدەوە"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Navbera hişyarbûnê %s ye, lê divê 1h an kêmtir be"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Hesabê te nehat girêdan"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Pir daxwazî"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Depo ne bes e"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kota derbas kir"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Qeydkirin neçalak e"
#: messages.go:164
msgid "Verified email required"
msgstr "E-nameya piştrastkirî pêwîst e"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "گۆڕانکاریەکان سەرکەوتوانە پاشەکەوتکرا"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "ئەلبومەکە دروستکرا"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "ئەلبومەکە پاشەکەوتکرا"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "ئەلبومی %s سڕایەوە"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "ناوەڕۆکەکانی ئەلبومەکە هاووێنە کرا"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "دۆسیەکە کۆژاوەتەوە لە کەڵەکەکە"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "پەڕگە سڕایەوە"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "دەستنیشان کراو زیادکرایە %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "یەک تێکراو زیاد کرایە %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d تێکراو زیاد کرایە %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "یەک تێکراو لابرا لە %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d تێکراو لابرا لە %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "هەژمارەکە دروستکرا"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "هەژمارەکە پاشەکەوتکرا"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "هەژمارەکە سڕایەوە"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "ڕێکخستنەکان پاشەکەوتکرا"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "تێپەڕەوشە گۆڕدرا"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "هاوردن تەواو بوو بە %d چرکە"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "هاوردن هەڵوەشێنرایەوە"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "نیشانە کردن تەواو بوو بە %d چرکە"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "نیشانەکردنی ڕەسەنەکان..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "نیشانەکردنی پەڕگەکان لە %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "نیشانەکردن هەڵوەشێنرایەوە"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "لابردنی %d پەڕگە و %d وێنە"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "گواستنەوەی پەڕگە لە %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "کۆپی کردنی پەڕگە لە%s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "پێناسەکان سڕانەوە"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "پێناسەکە پاشەکەوتکرا"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "ناونیشان"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "ناونیشان"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "ڕێکخستنەکان پاشەکەوتکراو"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "ئەلبومەکان سڕانەوە"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "پەڕگە سڕایەوە"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d پەڕگە بارکرە بە %d چرکە"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Pêvajoya barkirinê..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "بارکردن لەوانەیە سووکایەتی بێت"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "دەستنیشان کراو پەسەند کرا"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "هەڵبژاردەکە ئەرشیفکرا"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "هەڵبژاردەکە دووبارەکۆگاکرایەوە"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "دەستنیشانکراوەکان کران بە تایبەتی"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "ئەلبومەکان سڕایەوە"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "زیپ بە %d چرکە دروستکرا"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "بە هەمیشەیی سڕاوەتەوە"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "هەڵبژاردەکە دووبارەکۆگاکرایەوە"
msgstr "%s دووبارە کۆگاکرایەوە"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Bi serketî verast kirin"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Bi serketî hate aktîfkirin"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"Language-Team: none\n"
"Language: lt\n"
@ -13,402 +13,418 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > "
"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? "
"1 : 2);\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Kažkas nepavyko, bandykite dar kartą"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Nepavyksta to padaryti"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Pakeitimų nepavyko išsaugoti"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Negalima ištrinti"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s jau egzistuoja"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nerasta"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Failo rasti nepavyko"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Per didelis failas"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Nepalaikoma"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Nepalaikomas tipas"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Nepalaikomas formatas"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Originalų aplankas tuščias"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Pasirinkimas nerastas"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Subjektas nerastas"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Paskyra nerasta"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Vartotojas nerastas"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etiketė nerasta"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kameros nerasta"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektyvas nerastas"
#: messages.go:131
msgid "Album not found"
msgstr "Albumas nerastas"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Tema nerasta"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Asmuo nerastas"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Veidas nerastas"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Negalima naudoti viešuoju režimu"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Negalima naudoti tik skaitymo režimu"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Prisijunkite prie savo paskyros"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Priėjimas neimanomas"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Reikalingas mokėjimas"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Įkėlimas gali būti įžeidžiantis"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Įkelti nepavyko"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Nėra pasirinktų elementų"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Nepavyko sukurti failo, patikrinkite leidimus"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Nepavyko sukurti aplanko, patikrinkite leidimus"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Nepavyko prisijungti, bandykite dar kartą"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Įveskite patvirtinimo kodą"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Neteisingas patvirtinimo kodas, bandykite dar kartą"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Netinkamas slaptažodis, bandykite dar kartą"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funkcija išjungta"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Nėra pasirinktų etikečių"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Nėra pasirinktų albumų"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Nėra parsisiunčiamų failų"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Nepavyko sukurti zip failo"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Neteisingi įgaliojimai"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Netinkama nuoroda"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Netinkamas pavadinimas"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Užimta, bandykite vėliau"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Budinimo intervalas yra %s, bet turi būti ne ilgesnis kaip 1 val"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Nepavyko prisijungti prie jūsų paskyros"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Per daug prašymų"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Nepakankama saugykla"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Viršyta kvota"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registracija išjungta"
#: messages.go:164
msgid "Verified email required"
msgstr "Reikalingas patvirtintas el. pašto adresas"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Pakeitimai sėkmingai išsaugoti"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Sukurtas albumas"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Išsaugotas albumas"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Albumas %s pašalintas"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Klonuotas albumo turinys"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Failas pašalintas iš kamino"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Ištrintas failas"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Pasirinkimas pridėtas prie %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Vienas įrašas pridėtas prie %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d įrašai, įtraukti į %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Vienas įrašas pašalintas iš %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d įrašai pašalinti iš %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Sukurta paskyra"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Išsaugota paskyra"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Ištrinta paskyra"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Nustatymai išsaugoti"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Slaptažodis pakeistas"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importas baigtas per %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importas atšauktas"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indeksavimas baigtas per %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Originalų indeksavimas..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Failų indeksavimas %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksavimas atšauktas"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Pašalinti %d failai ir %d nuotraukos"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Failų perkėlimas iš %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Failų kopijavimas iš %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Ištrintos etiketės"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Išsaugota etiketė"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Tema - išsaugotas"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Išbrauktas objektas"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Išsaugotas asmuo"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Išbrauktas asmuo"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Įkeltas failas"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d failai įkelti per %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Įkėlimo apdorojimas..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Įkėlimas apdorotas"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Patvirtinta atranka"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Atranka archyvuota"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Atkurta atranka"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Atranka pažymėta kaip privati"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Ištrinti albumai"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip sukurta %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Visam laikui ištrintas"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s buvo atkurta"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Sėkmingai patvirtinta"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Sėkmingai suaktyvinta"

View file

@ -7,9 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2026-01-15 09:02+0000\n"
"Last-Translator: Janis Eglitis <alfabeta.lv@gmail.com>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
@ -17,401 +18,417 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= "
"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n"
"X-Generator: Weblate 5.15.1\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Kaut kas nogāja greizi, mēģiniet vēlreiz"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "To nevar izdarīt"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Izmaiņas nevarēja saglabāt"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Nevarēja izdzēst"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s jau pastāv"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nav atrasts"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Fails nav atrasts"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Fails ir pārāk liels"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Neatbalstīts"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Neatbalstīts tips"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Neatbalstīts formāts"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Oriģinālu mape ir tukša"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Izvēle nav atrasta"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Vienība nav atrasta"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Konts nav atrasts"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Lietotājs nav atrasts"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Birka nav atrasta"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera nav atrasta"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektīvs nav atrasts"
#: messages.go:131
msgid "Album not found"
msgstr "Albums nav atrasts"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Tēma nav atrasta"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Persona nav atrasta"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Seja nav atrasta"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Nav pieejams publiskajā režīmā"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Nav pieejams lasīšanas režīmā"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Lūdzu, piesakieties savā kontā"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Atļauja liegta"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Nepieciešams maksājums"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Augšupielāde varētu būt aizskaroša"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Augšupielāde neizdevās"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Nav izvēlēts neviens ieraksts"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Neizdevās izveidot failu, lūdzu, pārbaudiet atļaujas"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Neizdevās izveidot mapi, lūdzu, pārbaudiet atļaujas"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Nevarēja izveidot savienojumu, lūdzu, mēģiniet vēlreiz"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Ievadiet verifikācijas kodu"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Nederīgs verifikācijas kods, lūdzu, mēģiniet vēlreiz"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Nederīga parole, lūdzu, mēģiniet vēlreiz"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funkcionalitāte ir izslēgta"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Nav atlasītas nevienas birkas"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Nav atlasīts neviens albums"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Nav lejupielādei pieejamu failu"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Neizdevās izveidot zip failu"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Nederīgs lietotājvārds vai parole"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Nederīga saite"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nederīgs nosaukums"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Aizņemts, lūdzu, mēģiniet vēlreiz vēlāk"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Pamošanās intervāls ir %s, bet tam jābūt 1 h vai mazākam"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Jūsu kontu nevarēja savienot"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Pārāk daudz pieprasījumu"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Nepietiek brīvas vietas"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kvota pārsniegta"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Reģistrācija atspējota"
#: messages.go:164
msgid "Verified email required"
msgstr "Nepieciešama verificēta e-pasta adrese"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Izmaiņas veiksmīgi saglabātas"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Albums izveidots"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Albums saglabāts"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Albums %s ir dzēsts"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albuma saturs ir dublēts"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Fails izņemts no saraksta"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fails izdzēsts"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Atlasījums pievienots %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Viens ieraksts pievienots %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d ieraksti pievienoti %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Viens ieraksts noņemts no %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d ieraksti noņemti no %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Konts izveidots"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Konts saglabāts"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Konts ir dzēsts"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Iestatījumi saglabāti"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Parole nomainīta"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importēšana pabeigta %d s laikā"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importēšana atcelta"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indeksēšana pabeigta %d s laikā"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Notiek oriģinālu indeksēšana..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Notiek failu indeksēšana %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksēšana atcelta"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Noņemti %d faili un %d fotoattēli"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Failu pārvietošana no %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Failu kopēšana no %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Birkas ir dzēstas"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Birka saglabāta"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Tēma saglabāta"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Tēma dzēsta"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Persona saglabāta"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Persona dzēsta"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Fails augšupielādēts"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d faili augšupielādēti %d sekundēs"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Notiek augšupielādes apstrāde..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Augšupielāde ir apstrādāta"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Atlase apstiprināta"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Atlase arhivēta"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Atlase atjaunota"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Izvēle atzīmēta kā privāta"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albumi ir dzēsti"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "ZIP fails izveidots %d sekundēs"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Neatgriezeniski dzēsts"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s ir atjaunots"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Veiksmīgi verificēts"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Veiksmīgi aktivizēts"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,399 +17,415 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr ""
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr ""
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr ""
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr ""
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr ""
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr ""
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr ""
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr ""
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr ""
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr ""
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr ""
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr ""
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr ""
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr ""
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr ""
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr ""
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr ""
#: messages.go:121
msgid "Album not found"
msgstr ""
#: messages.go:122
msgid "Subject not found"
msgstr ""
#: messages.go:123
msgid "Person not found"
msgstr ""
#: messages.go:124
msgid "Face not found"
msgstr ""
#: messages.go:125
msgid "Not available in public mode"
msgstr ""
#: messages.go:126
msgid "Not available in read-only mode"
msgstr ""
#: messages.go:127
msgid "Please log in to your account"
msgstr ""
#: messages.go:128
msgid "Permission denied"
msgstr ""
#: messages.go:129
msgid "Payment required"
msgid "Camera not found"
msgstr ""
#: messages.go:130
msgid "Upload might be offensive"
msgid "Lens not found"
msgstr ""
#: messages.go:131
msgid "Upload failed"
msgid "Album not found"
msgstr ""
#: messages.go:132
msgid "No items selected"
msgid "Subject not found"
msgstr ""
#: messages.go:133
msgid "Failed creating file, please check permissions"
msgid "Person not found"
msgstr ""
#: messages.go:134
msgid "Failed creating folder, please check permissions"
msgid "Face not found"
msgstr ""
#: messages.go:135
msgid "Could not connect, please try again"
msgid "Not available in public mode"
msgstr ""
#: messages.go:136
msgid "Enter verification code"
msgid "Not available in read-only mode"
msgstr ""
#: messages.go:137
msgid "Invalid verification code, please try again"
msgid "Please log in to your account"
msgstr ""
#: messages.go:138
msgid "Invalid password, please try again"
msgid "Permission denied"
msgstr ""
#: messages.go:139
msgid "Feature disabled"
msgid "Payment required"
msgstr ""
#: messages.go:140
msgid "No labels selected"
msgid "Upload might be offensive"
msgstr ""
#: messages.go:141
msgid "No albums selected"
msgid "Upload failed"
msgstr ""
#: messages.go:142
msgid "No files available for download"
msgid "No items selected"
msgstr ""
#: messages.go:143
msgid "Failed to create zip file"
msgid "Failed creating file, please check permissions"
msgstr ""
#: messages.go:144
msgid "Invalid credentials"
msgid "Failed creating folder, please check permissions"
msgstr ""
#: messages.go:145
msgid "Invalid link"
msgid "Could not connect, please try again"
msgstr ""
#: messages.go:146
msgid "Invalid name"
msgid "Enter verification code"
msgstr ""
#: messages.go:147
msgid "Busy, please try again later"
msgid "Invalid verification code, please try again"
msgstr ""
#: messages.go:148
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgid "Invalid password, please try again"
msgstr ""
#: messages.go:149
msgid "Your account could not be connected"
msgid "Feature disabled"
msgstr ""
#: messages.go:150
msgid "Too many requests"
msgid "No labels selected"
msgstr ""
#: messages.go:151
msgid "Insufficient storage"
msgid "No albums selected"
msgstr ""
#: messages.go:152
msgid "Quota exceeded"
msgid "No files available for download"
msgstr ""
#: messages.go:153
msgid "Failed to create zip file"
msgstr ""
#: messages.go:154
msgid "Invalid credentials"
msgstr ""
#: messages.go:155
msgid "Changes successfully saved"
msgid "Invalid link"
msgstr ""
#: messages.go:156
msgid "Album created"
msgid "Invalid name"
msgstr ""
#: messages.go:157
msgid "Album saved"
msgid "Busy, please try again later"
msgstr ""
#: messages.go:158
#, c-format
msgid "Album %s deleted"
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr ""
#: messages.go:159
msgid "Album contents cloned"
msgid "Your account could not be connected"
msgstr ""
#: messages.go:160
msgid "File removed from stack"
msgid "Too many requests"
msgstr ""
#: messages.go:161
msgid "File deleted"
msgid "Insufficient storage"
msgstr ""
#: messages.go:162
#, c-format
msgid "Selection added to %s"
msgid "Quota exceeded"
msgstr ""
#: messages.go:163
#, c-format
msgid "One entry added to %s"
msgid "Registration disabled"
msgstr ""
#: messages.go:164
#, c-format
msgid "%d entries added to %s"
msgstr ""
#: messages.go:165
#, c-format
msgid "One entry removed from %s"
msgstr ""
#: messages.go:166
#, c-format
msgid "%d entries removed from %s"
msgid "Verified email required"
msgstr ""
#: messages.go:167
msgid "Account created"
msgid "Changes successfully saved"
msgstr ""
#: messages.go:168
msgid "Account saved"
msgid "Album created"
msgstr ""
#: messages.go:169
msgid "Account deleted"
msgid "Album saved"
msgstr ""
#: messages.go:170
msgid "Settings saved"
#, c-format
msgid "Album %s deleted"
msgstr ""
#: messages.go:171
msgid "Password changed"
msgid "Album contents cloned"
msgstr ""
#: messages.go:172
#, c-format
msgid "Import completed in %d s"
msgid "File removed from stack"
msgstr ""
#: messages.go:173
msgid "Import canceled"
msgid "File deleted"
msgstr ""
#: messages.go:174
#, c-format
msgid "Indexing completed in %d s"
msgid "Selection added to %s"
msgstr ""
#: messages.go:175
msgid "Indexing originals..."
#, c-format
msgid "One entry added to %s"
msgstr ""
#: messages.go:176
#, c-format
msgid "Indexing files in %s"
msgid "%d entries added to %s"
msgstr ""
#: messages.go:177
msgid "Indexing canceled"
#, c-format
msgid "One entry removed from %s"
msgstr ""
#: messages.go:178
#, c-format
msgid "Removed %d files and %d photos"
msgid "%d entries removed from %s"
msgstr ""
#: messages.go:179
#, c-format
msgid "Moving files from %s"
msgid "Account created"
msgstr ""
#: messages.go:180
#, c-format
msgid "Copying files from %s"
msgid "Account saved"
msgstr ""
#: messages.go:181
msgid "Labels deleted"
msgid "Account deleted"
msgstr ""
#: messages.go:182
msgid "Label saved"
msgid "Settings saved"
msgstr ""
#: messages.go:183
msgid "Subject saved"
msgid "Password changed"
msgstr ""
#: messages.go:184
msgid "Subject deleted"
#, c-format
msgid "Import completed in %d s"
msgstr ""
#: messages.go:185
msgid "Person saved"
msgid "Import canceled"
msgstr ""
#: messages.go:186
msgid "Person deleted"
#, c-format
msgid "Indexing completed in %d s"
msgstr ""
#: messages.go:187
msgid "File uploaded"
msgid "Indexing originals..."
msgstr ""
#: messages.go:188
#, c-format
msgid "%d files uploaded in %d s"
msgid "Indexing files in %s"
msgstr ""
#: messages.go:189
msgid "Processing upload..."
msgid "Indexing canceled"
msgstr ""
#: messages.go:190
msgid "Upload has been processed"
#, c-format
msgid "Removed %d files and %d photos"
msgstr ""
#: messages.go:191
msgid "Selection approved"
#, c-format
msgid "Moving files from %s"
msgstr ""
#: messages.go:192
msgid "Selection archived"
#, c-format
msgid "Copying files from %s"
msgstr ""
#: messages.go:193
msgid "Selection restored"
msgid "Labels deleted"
msgstr ""
#: messages.go:194
msgid "Selection marked as private"
msgid "Label saved"
msgstr ""
#: messages.go:195
msgid "Albums deleted"
msgid "Subject saved"
msgstr ""
#: messages.go:196
msgid "Subject deleted"
msgstr ""
#: messages.go:197
msgid "Person saved"
msgstr ""
#: messages.go:198
msgid "Person deleted"
msgstr ""
#: messages.go:199
msgid "File uploaded"
msgstr ""
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr ""
#: messages.go:201
msgid "Processing upload..."
msgstr ""
#: messages.go:202
msgid "Upload has been processed"
msgstr ""
#: messages.go:203
msgid "Selection approved"
msgstr ""
#: messages.go:204
msgid "Selection archived"
msgstr ""
#: messages.go:205
msgid "Selection restored"
msgstr ""
#: messages.go:206
msgid "Selection marked as private"
msgstr ""
#: messages.go:207
msgid "Albums deleted"
msgstr ""
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr ""
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr ""
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr ""
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr ""
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr ""

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Kesilapan telah berlaku, cuba lagi"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Tidak mampu berbuat demikian"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Perubahan tidak dapat disimpan"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Tidak dapat dipadamkan"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s sudah wujud"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Tidak ditemui"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Fail tidak dijumpai"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Fail terlalu besar"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Tidak disokong"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Jenis tidak disokong"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Format yang tidak disokong"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Folder asal kosong"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Pilihan tidak ditemui"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entiti tidak ditemui"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "akaun tidak dijumpai"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Pengguna tidak dijumpai"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Label tidak ditemui"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera tidak ditemui"
#: messages.go:130
msgid "Lens not found"
msgstr "Lensa tidak ditemui"
#: messages.go:131
msgid "Album not found"
msgstr "Album tidak ditemui"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Subjek tidak ditemui"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Orang tidak ditemui"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Wajah tidak ditemui"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Tidak tersedia dalam mod awam"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Tidak tersedia dalam mod baca sahaja"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Sila log masuk ke akaun anda"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Kebenaran ditolak"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Bayaran diperlukan"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Muat naik mungkin menyinggung perasaan"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Muat naik gagal"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Tiada item dipilih"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Gagal membuat fail, sila semak kebenaran"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Gagal membuat folder, sila semak kebenaran"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Tidak dapat menyambung, sila cuba lagi"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Masukkan kod pengesahan"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Kod pengesahan tidak sah, sila cuba lagi"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Kata laluan tidak sah, sila cuba lagi"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Ciri dilumpuhkan"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Tiada label dipilih"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Tiada album dipilih"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Tiada fail tersedia untuk dimuat turun"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Gagal membuat fail zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Bukti kelayakan tidak sah"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Pautan tidak sah"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nama tidak sah"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Sibuk, sila cuba lagi nanti"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Selang bangun ialah %s, tetapi mestilah 1j atau kurang"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Akaun anda tidak dapat disambungkan"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Terlalu banyak permintaan"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Storan tidak mencukupi"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kuota melebihi"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Pendaftaran dilumpuhkan"
#: messages.go:164
msgid "Verified email required"
msgstr "E-mel yang disahkan diperlukan"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Perubahan berjaya disimpan"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album dibuat"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album disimpan"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s dipadamkan"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Kandungan album diklon"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Fail dialih keluar daripada timbunan"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fail dipadamkan"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Pilihan ditambahkan pada %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Satu entri ditambahkan pada %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "Entri %d ditambahkan pada %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Satu entri dialih keluar daripada %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d entri dialih keluar daripada %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Akaun dibuat"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Akaun disimpan"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Akaun dipadamkan"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Tetapan Disimpan"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Kata laluan ditukar"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import selesai dalam %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Import dibatalkan"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Pengindeksan selesai dalam %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Mengindeks asal..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Mengindeks fail dalam %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Pengindeksan dibatalkan"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Mengalih keluar fail %d dan foto %d."
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Memindahkan fail dari %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Menyalin fail daripada %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Label dipadamkan"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Label disimpan"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Subjek disimpan"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Subjek dipadamkan"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Orang yang diselamatkan"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Orang dipadamkan"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Fail dimuat naik"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "Fail %d dimuat naik dalam %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Memproses muat naik..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Muat naik telah diproses"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Pemilihan diluluskan"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Pemilihan diarkibkan"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Pemilihan dipulihkan"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Pilihan ditandakan sebagai peribadi"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Album dipadamkan"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip dibuat dalam %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Dipadamkan secara kekal"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s telah dipulihkan"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Berjaya disahkan"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Berjaya diaktifkan"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Norwegian Bokmål <https://translate.photoprism.app/projects/"
"photoprism/backend/nb_NO/>\n"
"Language: nb\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Noe gikk galt, prøv igjen"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Ikke i stand til å gjøre det"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Kan ikke lagre endringer"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Kan ikke slettes"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s eksisterer allerede"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Ikke funnet"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Fil ikke funnet"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Filen er for stor"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Ustøttet"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Ikke støttet type"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Ikke støttet format"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Originaler-mappen er tom"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Finner ikke utvalg"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Enheten ble ikke funnet"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Konto ikke funnet"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Bruker ikke funnet"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Merkelapp ikke funnet"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kameraet ble ikke funnet"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektivet ble ikke funnet"
#: messages.go:131
msgid "Album not found"
msgstr "Album ikke funnet"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Emnet ble ikke funnet"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Person ikke funnet"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Ansikt ikke funnet"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Ikke tilgjengelig i offentlig modus"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "ikke tilgjengelig i skrivebeskyttet modus"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Logg inn på kontoen din"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Ingen tilgang"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Betaling kreves"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Opplastingen kan være støtende"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Opplasting mislyktes"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Ingen elementer valgt"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Kunne ikke opprette fil, vennligst sjekk tillatelser"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Kunne ikke opprette mappe, vennligst sjekk tillatelser"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Kunne ikke koble til, vennligst prøv igjen"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Angi verifikasjonskode"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Ugyldig bekreftelseskode. Prøv igjen"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Ugyldig passord, vennligst prøv igjen"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Tjeneste deaktivert"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Ingen merkelapper valgt"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Ingen albumer valgt"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Ingen filer tilgjengelig for nedlasting"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Kunne ikke opprette zip-arkiv"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Ugyldige innloggingsdetaljer"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Ugyldig lenke"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Ugyldig navn"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Opptatt. Prøv igjen senere"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Oppvåkningsintervallet er %s, men må være 1 time eller mindre"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Kontoen din kunne ikke kobles til"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "For mange forespørsler"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Utilstrekkelig lagringsplass"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kvote overskredet"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registrering deaktivert"
#: messages.go:164
msgid "Verified email required"
msgstr "Bekreftet e-post kreves"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Endringene ble lagret"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album opprettet"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album lagret"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s slettet"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albuminnhold duplisert"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Fil fjernet fra samling"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fil slettet"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Utvalg lagt til %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "En oppføring lagt til %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d oppføringer lagt til %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "En oppføring fjernet fra %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d oppføringer fjernet fra %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Konto opprettet"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Konto lagret"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Konto slettet"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Innstillinger lagret"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Passord endret"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import fullført på %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Import avbrutt"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indeksering fullført på %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indekserer originaler…"
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indekserer filer i %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksering avbrutt"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Fjernet %d filer og %d foto"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Flytter filer fra %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopierer filer fra %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Merkelapper slettet"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Merkelapper lagret"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Emnet er lagret"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Emnet er slettet"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Person reddet"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Person slettet"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Fil lastet opp"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d filer lastet opp på %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Behandler opplasting..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Opplastingen er behandlet"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Utvalg godkjent"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Utvalg arkivert"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Utvalg gjenopprettet"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Utvalg markert som privat"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Album slettet"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip opprettet på %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Permanent slettet"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s har blitt gjenopprettet"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Vellykket verifisert"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Vellykket aktivert"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Dutch <https://translate.photoprism.app/projects/photoprism/"
"backend/nl/>\n"
"Language: nl\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Er ging iets mis, probeer het opnieuw"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Dat kan niet"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Wijzigingen kunnen niet worden opgeslagen"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Kan niet verwijderd worden"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s bestaat al"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Niet gevonden"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Bestand niet gevonden"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Bestand te groot"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Niet ondersteund"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Niet-ondersteund type"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Niet ondersteund formaat"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "De map Originelen is leeg"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Selectie niet gevonden"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entiteit niet gevonden"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Account niet gevonden"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Gebruiker niet gevonden"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Label niet gevonden"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Camera niet gevonden"
#: messages.go:130
msgid "Lens not found"
msgstr "Lens niet gevonden"
#: messages.go:131
msgid "Album not found"
msgstr "Album niet gevonden"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Onderwerp niet gevonden"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Persoon niet gevonden"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Gezicht niet gevonden"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Niet beschikbaar in publieke modus"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Niet beschikbaar in alleen-lezen modus"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Log in op je account"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Toegang geweigerd"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Betaling vereist"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Upload kan aanstootgevend zijn"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Uploaden mislukt"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Geen items geselecteerd"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Bestand aanmaken mislukt, controleer alstublieft de rechten"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Folder aanmaken mislukt, controleer alstublieft de rechten"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Kan niet verbinden, probeer alstublieft opnieuw"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Verificatiecode invoeren"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Ongeldige verificatiecode. Probeer het opnieuw"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Fout wachtwoord, probeer alstublieft opnieuw"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Functie uitgeschakeld"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Geen labels geselecteerd"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Geen albums geselecteerd"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Geen bestanden beschikbaar om te downloaden"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Maken van zip-bestand is mislukt"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Ongeldige inloggegevens"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Ongeldige link"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Ongeldige mapnaam"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Bezet, probeer het later nog eens"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Het wekinterval is %s, maar moet 1 uur of minder zijn"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Uw account kon niet worden aangesloten"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Te veel verzoeken"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Onvoldoende opslag"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Quota overschreden"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registratie uitgeschakeld"
#: messages.go:164
msgid "Verified email required"
msgstr "Geverifieerd e-mailadres vereist"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Wijzigingen succesvol opgeslagen"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album aangemaakt"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album opgeslagen"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s verwijderd"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albuminhoud gekopieerd"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Bestand uit stapel verwijderd"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Bestand verwijderd"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Selectie toegevoegd aan %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Eén item toegevoegd aan %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d items toegevoegd aan %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Eén item verwijderd uit %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d items verwijderd uit %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Account aangemaakt"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Account opgeslagen"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Account verwijderd"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Instellingen opgeslagen"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Wachtwoord gewijzigd"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importeren voltooid in %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importeren geannuleerd"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexeren voltooid in %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Originelen indexeren…"
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Bestanden indexeren in %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexeren geannuleerd"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d bestanden en %d fotos verwijderd"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Bestanden verplaatsen uit %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Bestanden kopiëren uit %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Labels verwijderd"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Labels opgeslagen"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Onderwerp opgeslagen"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Onderwerp verwijderd"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Persoon gered"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Persoon verwijderd"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Bestand geüpload"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d bestanden geüpload in %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Verwerking upload..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Upload is verwerkt"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Selectie goedgekeurd"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Selectie gearchiveerd"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Selectie hersteld"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Selectie gemarkeerd als privé"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albums verwijderd"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip gemaakt in %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Permanent verwijderd"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s is hersteld"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Met succes geverifieerd"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Met succes geactiveerd"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Polish <https://translate.photoprism.app/projects/photoprism/"
"backend/pl/>\n"
"Language: pl\n"
@ -13,404 +14,420 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Coś poszło nie tak, spróbuj jeszcze raz"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Nie da się tego zrobić"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Nie można zapisać zmian"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Nie można usunąć"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s już istnieje"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nie znaleziono"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Plik nie został znaleziony"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Plik jest zbyt duży"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Nieobsługiwane"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Nieobsługiwany typ"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Nieobsługiwany format"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Folder oryginałów jest pusty"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Nie znaleziono wyboru"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Nie znaleziono podmiotu"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Konto nie znalezione"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Użytkownik nie znaleziony"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etykieta nie została odnaleziona"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Nie znaleziono kamery"
#: messages.go:130
msgid "Lens not found"
msgstr "Nie znaleziono obiektywu"
#: messages.go:131
msgid "Album not found"
msgstr "Album nie został znaleziony"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Temat nie został znaleziony"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Osoba nie została znaleziona"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Twarz nie została znaleziona"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Niedostępne w trybie publicznym"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Niedostępne w trybie tylko do odczytu"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Proszę zalogować się na swoje konto"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Brak uprawnień"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Wymagana płatność"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Przesyłane dane mogą być obraźliwe"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Przesyłanie nie powiodło się"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Nie wybrano żadnych elementów"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Nie można utworzyć pliku, sprawdź uprawnienia"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Nie można utworzyć folderu, sprawdź uprawnienia"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Nie można się połączyć, spróbuj ponownie"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Wprowadź kod weryfikacyjny"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Nieprawidłowy kod weryfikacyjny. Spróbuj ponownie"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Nieprawidłowe hasło, spróbuj ponownie"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funkcja wyłączona"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Nie wybrano etykiet"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Nie wybrano albumów"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Brak plików do pobrania"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Nie udało się utworzyć pliku zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Nieprawidłowe dane logowania"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Nieprawidłowy link"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nieprawidłowa nazwa"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Zajęty, spróbuj ponownie później"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr ""
"Interwał wybudzenia %s jest nieprawidłowy, powinien być równy lub mniejszy "
"niż 1 godzina"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Twoje konto nie może być podłączone"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Zbyt wiele żądań"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Niewystarczająca pamięć"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Przekroczony limit"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Rejestracja wyłączona"
#: messages.go:164
msgid "Verified email required"
msgstr "Wymagany zweryfikowany adres e-mail"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Zmiany zostały pomyślnie zapisane"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album został utworzony"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album został zapisany"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s został usunięty"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Album został sklonowany"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Plik został rozgrupowany"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Plik został usunięty"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Wybór dodany do %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Dodano jeden wpis do %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d wpisy dodane do %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Usunięto jeden wpis z %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d wpisy usunięte z %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Konto utworzone"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Konto zapisane"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Konto usunięte"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Ustawienia zapisane"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Hasło zostało zmienione"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import zakończony w %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Import został anulowany"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indeksowanie zakończone w %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indeksowanie oryginałów…"
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indeksowanie plików w %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksowanie anulowane"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Usunięto %d plików i %d zdjęć"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Przenoszenie plików z %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopiowanie plików z %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Usunięto etykiety"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etykieta zapisana"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Przedmiot zapisany"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Przedmiot usunięty"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Osoba zapisana"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Osoba usunięta"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Przesłany plik"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d plików przesłano w %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Przetwarzanie uploadu..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Przesyłanie zostało przetworzone"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Wybór zatwierdzony"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Wybór zarchiwizowany"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Wybór został przywrócony"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Wybór oznaczony jako prywatny"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albumy zostały usunięte"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip utworzony w %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Trwale usunięty"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s zostało przywrócone"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Pomyślnie zweryfikowano"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Pomyślnie aktywowano"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Portuguese <https://translate.photoprism.app/projects/"
"photoprism/backend/pt/>\n"
"Language: pt\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Algo correu mal, tente novamente"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Incapaz de fazer isso"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "As mudanças não foram salvas"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Não foi possível excluir"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s já existe"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Não encontrado"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Arquivo não encontrado"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Arquivo muito grande"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Não compatível"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Tipo não suportado"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Formato sem suporte"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "A pasta dos originais está vazia"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Seleção não encontrada"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entidade não encontrada"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Conta não encontrada"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Usuário não encontrado"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etiqueta não encontrada"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Não foi encontrada nenhuma câmara"
#: messages.go:130
msgid "Lens not found"
msgstr "Lente não encontrada"
#: messages.go:131
msgid "Album not found"
msgstr "Álbum não encontrado"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Assunto não encontrado"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Pessoa não encontrada"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Rosto não encontrado"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Indisponível em modo público"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Não disponível no modo somente leitura"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Faça o login em sua conta"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Permissão negada"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Pagamento obrigatório"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Envio pode ser ofensivo"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Envio falhou"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Sem itens selecionados"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Falha ao criar arquivo, por favor cheque as permissões"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Falha ao criar pasta, por favor cheque as permissões"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Não foi possível conectar, por favor tente novamente"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Digite o código de verificação"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Código de verificação inválido, tente novamente"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Senha inválida, por favor tente novamente"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Recurso Desativado"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Sem etiquetas selecionadas"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Sem álbuns selecionados"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Sem arquivos disponíveis para baixar"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Falha ao criar arquivo zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Credenciais inválidas"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Link inválido"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nome inválido"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Em uso, por favor tente novamente mais tarde"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "O intervalo de despertar é %s, mas deve ser de 1h ou menos"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Sua conta não pôde ser conectada"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Demasiados pedidos"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Armazenamento insuficiente"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Quota excedida"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Cadastro desativado"
#: messages.go:164
msgid "Verified email required"
msgstr "É necessário um e-mail verificado."
#: messages.go:167
msgid "Changes successfully saved"
msgstr "As mudanças foram salvas com sucesso"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Álbum criado"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Álbum salvo"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Álbum %s excluído"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Conteúdo do álbum copiado"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Arquivo removido da pilha"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Arquivo excluído"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Seleção adicionada a %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Uma entrada adicionada a %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d entradas adicionadas a %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Uma entrada removida de %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d entradas removidas de %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Conta criada"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Conta salva"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Conta excluída"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Configurações salvas"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Senha alterada"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importação completa em %d"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importação cancelada"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexação completa em %d"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexando originais..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexando arquivos em %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexação cancelada"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Removidos %d arquivos e %d fotos"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Movendo arquivos de %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Copiando arquivos de %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etiquetas excluídas"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etiqueta salva"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Assunto salvo"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Assunto eliminado"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Pessoa salva"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Pessoa apagada"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Arquivo carregado"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d arquivos enviados em %d"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "A processar carregamento..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "O Upload foi processado"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Seleção aprovada"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Seleção arquivada"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Seleção restaurada"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Seleção marcada como privada"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Álbuns excluídos"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip criado em %d"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Permanentemente excluídas"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s foi restaurado"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Verificado com sucesso"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Ativado com sucesso"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Portuguese (Brazil) <https://translate.photoprism.app/"
"projects/photoprism/backend/pt_BR/>\n"
"Language: pt_BR\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Algo deu errado, tente novamente"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Incapaz de fazer isso"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "As mudanças não foram salvas"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Não foi possível excluir"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s já existe"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Não encontrado"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Arquivo não encontrado"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Arquivo muito grande"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Não compatível"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Tipo não suportado"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Formato sem suporte"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "A pasta dos originais está vazia"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Seleção não encontrada"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entidade não encontrada"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Conta não encontrada"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Usuário não encontrado"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etiqueta não encontrada"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Câmera não encontrada"
#: messages.go:130
msgid "Lens not found"
msgstr "Lente não encontrada"
#: messages.go:131
msgid "Album not found"
msgstr "Álbum não encontrado"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Assunto não encontrado"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Pessoa não encontrada"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Rosto não encontrado"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Indisponível em modo público"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Não disponível no modo somente leitura"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Faça o login em sua conta"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Permissão negada"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Pagamento obrigatório"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Envio pode ser ofensivo"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Envio falhou"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Sem itens selecionados"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Falha ao criar arquivo, por favor cheque as permissões"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Falha ao criar pasta, por favor cheque as permissões"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Não foi possível conectar, por favor tente novamente"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Digite o código de verificação"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Código de verificação inválido, tente novamente"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Senha inválida, por favor tente novamente"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Recurso Desativado"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Sem etiquetas selecionadas"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Sem álbuns selecionados"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Sem arquivos disponíveis para baixar"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Falha ao criar arquivo zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Credenciais inválidas"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Link inválido"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nome inválido"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Ocupado, por favor tente mais tarde"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "O intervalo de despertar é %s, mas deve ser de 1h ou menos"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Sua conta não pôde ser conectada"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Muitas solicitações"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Armazenamento insuficiente"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Cota excedida"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Cadastro desativado"
#: messages.go:164
msgid "Verified email required"
msgstr "É necessário um e-mail verificado."
#: messages.go:167
msgid "Changes successfully saved"
msgstr "As mudanças foram salvas com sucesso"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Álbum criado"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Álbum salvo"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Álbum %s excluído"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Conteúdo do álbum copiado"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Arquivo removido da pilha"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Arquivo excluído"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Seleção adicionada a %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Uma entrada adicionada a %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d entradas adicionadas a %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Uma entrada removida de %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d entradas removidas de %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Conta criada"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Conta salva"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Conta excluída"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Configurações salvas"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Senha alterada"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importação completa em %d"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importação cancelada"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexação completa em %d"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexando originais..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexando arquivos em %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexação cancelada"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Removidos %d arquivos e %d fotos"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Movendo arquivos de %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Copiando arquivos de %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etiquetas excluídas"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etiqueta salva"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Assunto salvo"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Assunto eliminado"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Pessoa salva"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Pessoa apagada"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Arquivo carregado"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d arquivos enviados em %d"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Processamento de upload..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "O Upload foi processado"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Seleção aprovada"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Seleção arquivada"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Seleção restaurada"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Seleção marcada como privada"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Álbuns excluídos"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip criado em %d"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Permanentemente excluídas"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s foi restaurado"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Verificado com sucesso"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Ativado com sucesso"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Romanian <https://translate.photoprism.app/projects/"
"photoprism/backend/ro/>\n"
"Language: ro\n"
@ -13,402 +14,418 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Ceva nu a mers bine, încercați din nou"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Nu se poate face asta"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Modificările nu au putut fi salvate"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Nu a putut fi șters"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s deja există"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nu a fost găsit"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Fișier nedescoperit"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Fișier prea mare"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Neacceptat"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Tip neacceptat"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Format neacceptat"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Dosarul Originals este gol"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Selecția nu a fost găsită"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entitatea nu a fost găsită"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Contul nu a fost găsit"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Utilizatorul nu a fost găsit"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Eticheta nu a fost găsită"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Nu s-a găsit camera"
#: messages.go:130
msgid "Lens not found"
msgstr "Obiectivul nu a fost găsit"
#: messages.go:131
msgid "Album not found"
msgstr "Album nedescoperit"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Subiectul nu a fost găsit"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Persoana nu a fost găsită"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Fața nu a fost găsită"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Nu este disponibil în modul public"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Nu este disponibil în modul doar pentru citire"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Vă rugăm să vă conectați la contul dvs"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Permisiune refuzată"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Plata necesară"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Încărcarea poate fi ofensatoare"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Încărcarea a eșuat"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Niciun element selectat"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Nu a reușit să creeze fișierul, vă rugăm să verificați permisiunile"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Nu s-a reușit crearea dosarului, vă rugăm să verificați permisiunile"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Nu s-a putut conecta, vă rugăm să încercați din nou"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Introduceți codul de verificare"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Cod de verificare nevalid, încercați din nou"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Parolă invalidă, vă rugăm să încercați din nou"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Caracteristică dezactivată"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Nu sunt selectate etichete"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Nu sunt selectate albume"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Nu există fișiere disponibile pentru descărcare"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Nu a reușit să creeze fișierul zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Acreditări nevalabile"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Legătură invalidă"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Nume invalid"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Ocupat, vă rugăm să încercați din nou mai târziu"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Intervalul de trezire este %s, dar trebuie să fie de 1h sau mai puțin"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Contul dvs. nu a putut fi conectat"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Prea multe cereri"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Depozitare insuficientă"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Cota depășită"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Înregistrare dezactivată"
#: messages.go:164
msgid "Verified email required"
msgstr "Adresă de e-mail verificată necesară"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Modificări salvate cu succes"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album creat"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album salvat"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s șters"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Conținutul albumului a fost clonat"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Fișier eliminat din stivă"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fișier șters"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Selecție adăugată la %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "O intrare adăugată la %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d intrări adăugate la %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "O intrare eliminată din %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d intrări eliminate din %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Cont creat"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Cont salvat"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Cont șters"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Setări salvate"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Parola a fost schimbată"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import finalizat în %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importul a fost anulat"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexare finalizată în %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexarea originalelor..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexarea fișierelor în %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexare anulată"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Sau eliminat %d fișiere și %d fotografii"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Mutarea fișierelor din %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Copierea fișierelor din %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etichete șterse"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etichetă salvată"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Subiect salvat"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Subiect eliminat"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Persoană salvată"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Persoană eliminată"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Fișier încărcat"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d fișiere încărcate în %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Procesarea încărcării..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Încărcarea a fost procesată"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Selecție aprobată"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Selecție arhivată"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Selecție restabilită"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Selecție marcată ca fiind privată"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albume șterse"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Fișierul Zip creat în %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Șterse definitiv"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s a fost restaurat"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Verificat cu succes"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Activat cu succes"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Russian <https://translate.photoprism.app/projects/photoprism/"
"backend/ru/>\n"
"Language: ru\n"
@ -13,402 +14,418 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Что-то пошло не так, попробуйте еще раз"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Невозможно сделать это"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Изменения не будут сохранены"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Не будет удалено"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s уже существует"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Не найдено"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Файл не найден"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Слишком большой файл"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Не поддерживается"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Неподдерживаемый тип"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Неподдерживаемый формат"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Папка оригиналов пуста"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Выделение не найдено"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Сущность не найдена"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Учетная запись не найдена"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Пользователь не найден"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Метка не найдена"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Камера не найдена"
#: messages.go:130
msgid "Lens not found"
msgstr "Объектив не найден"
#: messages.go:131
msgid "Album not found"
msgstr "Альбом не найден"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Объект не найден"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Человек не найден"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Лицо не найдено"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Не доступно в публичном режиме"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Недоступно в режиме только для чтения"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Пожалуйста, войдите в свой аккаунт"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Доступ запрещен"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Требуется оплата"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Загрузка может быть оскорбительной"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Загрузка не удалась"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Нет выделенных элементов"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Не удалось создать файл, проверьте права доступа"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Не удалось создать папку, проверьте права доступа"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Нет соединения, попробуйте еще раз"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "введите код подтверждения"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Неверный код подтверждения. Повторите попытку."
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Неверный пароль, пожалуйста попробуйте еще раз"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Данная возможность отключена"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Нет выделенных меток"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Нет выделенных альбомов"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Нет файлов, доступных для скачивания"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Не удалось создать zip-файл"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Неверные учетные данные"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Неверная ссылка"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Неприемлемое имя"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Занят, повторите попытку позже"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Интервал пробуждения составляет %s, но должен быть 1 час или меньше"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Ваш аккаунт не удалось подключить"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Слишком много запросов"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Недостаточно места для хранения"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Квота превышена"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Регистрация отключена"
#: messages.go:164
msgid "Verified email required"
msgstr "Требуется подтверждение адреса электронной почты."
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Изменения сохранены"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Альбом создан"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "\\альбом сохранен"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Альбом %s удален"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Содержимое альбома скоприровано"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Файл удален из очереди"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Файл удалён"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Выделение добавлено к %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Один элемент добавлен к %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d элементов добавлено к %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Один элемент удален из %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d элементов удалено из %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Учетная запись создана"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Учетная запись сохранена"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Учетная запись удалена"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Настройки сохранены"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Пароль изменен"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Импортирование завершено за %d c"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Импортирование отменено"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Индексирование завершено за %d с"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Индексирование Оригиналов..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Индексирование файлов в %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Индексирование отменено"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Удаление %d файлов и %d фотографий"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Перемещение файлов из %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Копирование файлов из %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Метки удалены"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Метки сохранены"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Тема сохранена"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Тема удалена"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Человек спасен"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Лицо удалено"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Файл загружен"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d файлов загружено за %d с"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Обработка загрузки..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Загрузка была обработана"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Утвержденный выбор"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Выбранное помещено в архив"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Выбранное восстановлено"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Выбранное помечено как приватное"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Альбом удален"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip архив создан за %d с"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Постоянно удаляется"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s был восстановлен"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Успешно проверено"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Успешно активировано"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Slovak <https://translate.photoprism.app/projects/photoprism/"
"backend/sk/>\n"
"Language: sk\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Niečo sa pokazilo, skúste to znova"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Nemožno to urobiť"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Zmeny sa neuložili"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Nepodarilo sa odstrániť"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s už existuje"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Nenájdené"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Súbor nenájdený"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Príliš veľký súbor"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Nepodporované"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Nepodporovaný typ"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Nepodporovaný formát"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Priečinok Originály je prázdny"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Výber nenájdený"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Subjekt nenájdený"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Účet nenájdený"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Užívateľ nenájdený"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Štítok nenájdený"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Fotoaparát nebol nájdený"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektív nebol nájdený"
#: messages.go:131
msgid "Album not found"
msgstr "Album nenájdený"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Predmet nenájdený"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Osoba nenájdená"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Tvár nenájdená"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Nedostupné vo verejnom móde"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "nedostupné v móde len pre čítanie"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Prosím prihláste sa a skúste znova"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Osoba odstránená"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Požadovaná platba"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Nahrané súbory môžu byť urážlivé"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Odovzdávanie zlyhalo"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Neboli vybraté žiadne položky"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Vytváranie súboru zlyhalo, prosím skontrolujte oprávnenia"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Vytváranie zložky zlyhalo, prosím skontrolujte oprávnenia"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Nebolo možné sa pripojiť, skúste to znova"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Zadajte overovací kód"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Neplatný overovací kód, skúste to znova"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Nesprávne heslo, skúste to znova"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funkcia vypnutá"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Neboli vybraté žiadne štítky"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Neboli vybraté žiadne albumy"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Žiadne súbory na stiahnutie k dispozícií"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Nebolo možné vytvoriť súbor ZIP"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Neplatné údaje"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Neplatný odkaz"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Neplatné meno"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Systém zaneprázdnený, prosím skúste znovu neskôr"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Interval prebúdzania je %s, ale musí byť najviac 1 h"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Vaše konto sa nepodarilo pripojiť"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Príliš veľa požiadaviek"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Nedostatočné skladovanie"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Prekročenie kvóty"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registrácia zakázaná"
#: messages.go:164
msgid "Verified email required"
msgstr "Vyžaduje sa overený e-mail"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Zmeny úspešne uložené"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album vytvorený"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album uložený"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s vymazaný"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Obsah albumu prekopírovaný"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Súbor odstránený zo stohu"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Súbor odstránený"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Výber pridaný do %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Jeden záznam pridaný do %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d záznamov pridaných do %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Jeden záznam odstránený z %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d záznamov odstránených z %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Účet vytvorený"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Účet uložený"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Účet odstránený"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Nastavenia uložené"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Heslo zmenené"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Import hotový za %d sekúnd"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Import zrušený"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexovanie hotové za %d sekúnd"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexovanie originálov..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexovanie súborov v %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexovanie zrušené"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Bolo odstránených %d súborov a %d fotiek"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Presúvanie súborov z %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopírovanie súborov z %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Štítky odstránené"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Štítok uložený"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Predmet uložený"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Predmet odstránený"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Osoba uložená"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Osoba odstránená"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Súbor odstránený"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d súborov nahraných za %d sekúnd"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Spracovanie nahrávania..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Nahrané súbory môžu byť urážlivé"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Označenie schválené"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Označenie archivované"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Označenie obnovené"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Označenie označené ako súkromné"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albumy odstránené"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Súbor ZIP vytvorený za %d sekúnd"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Trvalo odstránené"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s bolo obnovené"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Úspešne overené"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Úspešne aktivované"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Nekaj je šlo narobe, poskusite znova"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Tega ni mogoče storiti"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Sprememb ni bilo mogoče shraniti"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Ni bilo mogoče izbrisati"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s že obstaja"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Ga ni mogoče najti"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Datoteka ni najdena"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Prevelika datoteka"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Nepodprto"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Nepodprta vrsta"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Nepodprt format"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Mapa Originali je prazna"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Izbor ni najden"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entiteta ni bila najdena"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Račun ni najden"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Uporabnik ne obstaja"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Oznaka ni bila najdena"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera ni bila najdena"
#: messages.go:130
msgid "Lens not found"
msgstr "Objektiv ni bil najden"
#: messages.go:131
msgid "Album not found"
msgstr "Album ni najden"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Zadeva ni bila najdena"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Oseba ni bila najdena"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Obraza ni mogoče najti"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Ni na voljo v javnem načinu"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Ni na voljo v načinu samo za branje"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Prijavite se v svoj račun"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Dovoljenje Zavrnjeno"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Zahtevano plačilo"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Nalaganje je lahko žaljivo"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Nalaganje neuspešno"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Ni izbranih elementov"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Neuspešno ustvarjanje datoteke, preverite dovoljenja"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Neuspešno ustvarjanje mape, preverite dovoljenja"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Ne morem vzpostaviti povezave, poskusite znova"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "vnesi potrditveno kodo"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Neveljavna koda za preverjanje, poskusite znova"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Nepravilno geslo, poskusite znova"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funkcija je onemogočena"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Ni izbranih nalepk"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Ni izbranih albumov"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Za prenos ni na voljo nobenih datotek"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Ni uspelo ustvariti datoteke zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Neveljavne poverilnice"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Neveljavna povezava"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Neveljavno ime"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Zaseden, poskusite znova pozneje"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Interval prebujanja je %s, vendar mora biti 1h ali manj"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Vašega računa ni bilo mogoče povezati"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Preveč zahtev"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Nezadostno skladiščenje"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kvota je presežena"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registracija onemogočena"
#: messages.go:164
msgid "Verified email required"
msgstr "Zahtevan je potrjen e-poštni naslov"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Spremembe so bile uspešno shranjene"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Ustvarjen album"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Shranjen album"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s izbrisano"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Vsebina albuma klonirana"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Datoteka odstranjena iz sklada"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Izbrisana datoteka"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Izbor dodan v %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "En vnos dodan v %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d vnosi dodani v %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "En vnos odstranjen iz %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d vnosi odstranjeni iz %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Ustvarjen račun"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Shranjen račun"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Račun je izbrisan"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Nastavitve shranjene"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Geslo spremenjeno"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Uvoz se zaključi v %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Uvoz preklican"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indeksiranje je končano v %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indeksiranje izvirnikov..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indeksiranje datotek v %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indeksiranje preklicano"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Odstranjene %d datoteke in %d fotografije"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Premikanje datotek iz %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopiranje datotek iz %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etikete izbrisane"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Shranjena nalepka"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Zadeva je shranjena"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Predmet izbrisanih"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Rešena oseba"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Izbrisana oseba"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Prenesena datoteka"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d datoteke, naložene v %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Obdelava nalaganja..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Prenos je bil obdelan"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Odobren izbor"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Arhiviran izbor"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Obnovljen izbor"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Izbor označen kot zasebni"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Izbrisani albumi"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip, ustvarjen v %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Trajno izbrisano"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s je bil obnovljen"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Uspešno preverjeno"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Uspešno aktiviran"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Swedish <https://translate.photoprism.app/projects/photoprism/"
"backend/sv/>\n"
"Language: sv\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Något gick fel, försök igen"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Det går inte att göra"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Ändringarna kunde inte sparas"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Kunde inte raderas"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s finns redan"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Hittades inte"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Filen kunde inte hittas"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Filen är för stor"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Stöds ej"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Denna typ stöds ej"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Format som inte stöds"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Mappen med originalen är tom"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Urvalet kunde inte hittas"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Entitet kunde inte hittas"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Kontot kunde inte hittas"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Användaren kunde inte hittas"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etikett saknas"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kameran hittades inte"
#: messages.go:130
msgid "Lens not found"
msgstr "Linsen hittades inte"
#: messages.go:131
msgid "Album not found"
msgstr "Albumet finns inte"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Ämnet finns inte"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Personen kunde inte hittas"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Ansiktet kunde inte hittas"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Inte tillgängligt i offentligt läge"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Inte tillgänglig i skrivskyddsläge"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Logga in på ditt konto"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Åtkomst nekades"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Betalning krävs"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Uppladdning kan vara stötande"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Uppladdning misslyckades"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Inga objekt har valts"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Det gick inte att skapa en fil, kontrollera behörigheter"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Det gick inte att skapa en mapp, kontrollera behörigheter"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Kunde inte ansluta, försök igen"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Ange verifieringskod"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Ogiltig verifieringskod, försök igen"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Felaktigt lösenord, försök igen"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Funktionen är inaktiverad"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Inga etiketter har valts"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Inga album har valts"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Inga filer finns tillgängliga för nedladdning"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Misslyckades med att skapa en zip-fil"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Ogiltiga autentiseringsuppgifter"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Ogiltig länk"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Felaktigt namn"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Upptagen, försök igen senare"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Uppvakningsintervallet är %s, men måste vara 1 timme eller mindre"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Ditt konto kunde inte anslutas"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "För många förfrågningar"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Otillräcklig lagring"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kvoten överskriden"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Registrering inaktiverad"
#: messages.go:164
msgid "Verified email required"
msgstr "Verifierad e-postadress krävs"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Ändringarna har sparats"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Album skapat"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Album sparat"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s raderat"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Innehållet i albumet kopieras"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Filen tas bort från stapeln"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Fil raderad"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Urval tillagt i %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "En post tillagd i %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d poster tillagda till %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "En post borttagen från %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d poster raderade från %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Kontot har skapats"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Kontot sparat"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Kontot raderat"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Inställningarna har sparats"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Lösenordet har ändrats"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Importen slutfördes på %d s"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Importen avbruten"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Indexering slutförd på %d s"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Indexering av original..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Indexering av filer i %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Indexering avbruten"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Tog bort %d filer och %d bilder"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Flyttar filer från %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Kopierar filer från %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etiketter raderade"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etikett sparad"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Ämne sparat"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Ämne raderat"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Person sparad"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Person raderad"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Uppladdad fil"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d filer uppladdade på %d s"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Behandling av uppladdning..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Uppladdningen har behandlats"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Urvalet är godkänt"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Urval arkiverat"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Urvalet har återställts"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Urval markerat som privat"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Album raderade"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip skapad på %d s"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Permanent borttagen"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s har återställts"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Verifierad"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Lyckades aktiverad"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "เกิดข้อผิดพลาด โปรดลองอีกครั้ง"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "ไม่สามารถทำเช่นนั้นได้"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "ไม่สามารถบันทึกการเปลี่ยนแปลง"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "ไม่สามารถลบได้"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s มีอยู่แล้ว"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "ไม่พบ"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "ไม่พบไฟล์"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "ไฟล์ใหญ่เกินไป"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "ไม่รองรับ"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "ประเภทที่ไม่รองรับ"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "รูปแบบที่ไม่สนับสนุน"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "โฟลเดอร์ต้นฉบับว่างเปล่า"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "ไม่พบสิ่งที่เลือก"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "ไม่พบเอนทิตี"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "ไม่พบบัญชี"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "ไม่พบผู้ใช้"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "ไม่พบป้ายกำกับ"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "ไม่พบกล้อง"
#: messages.go:130
msgid "Lens not found"
msgstr "ไม่พบเลนส์"
#: messages.go:131
msgid "Album not found"
msgstr "ไม่พบอัลบั้ม"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "ไม่พบหัวเรื่อง"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "ไม่พบบุคคล"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "ไม่พบใบหน้า"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "ไม่พร้อมใช้งานในโหมดสาธารณะ"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "ไม่พร้อมใช้งานในโหมดอ่านอย่างเดียว"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "กรุณาเข้าสู่ระบบบัญชีของคุณ"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "ปฏิเสธการอนุญาต"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "ต้องชำระเงิน"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "การอัปโหลดอาจไม่เหมาะสม"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "การอัพโหลดล้มเหลว"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "ไม่มีรายการที่เลือก"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "สร้างไฟล์ไม่สำเร็จ โปรดตรวจสอบสิทธิ์"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "สร้างโฟลเดอร์ไม่สำเร็จ โปรดตรวจสอบสิทธิ์"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "ไม่สามารถเชื่อมต่อได้ โปรดลองอีกครั้ง"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "ระบุรหัสยืนยืน"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "รหัสยืนยันไม่ถูกต้อง โปรดลองอีกครั้ง"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "รหัสผ่านไม่ถูกต้อง โปรดลองอีกครั้ง"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "คุณลักษณะถูกปิดใช้งาน"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "ไม่ได้เลือกป้ายกำกับ"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "ไม่ได้เลือกอัลบั้ม"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "ไม่มีไฟล์สำหรับดาวน์โหลด"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "สร้างไฟล์ zip ไม่สำเร็จ"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "ข้อมูลประจำตัวที่ไม่ถูกต้อง"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "ลิงก์ไม่ถูกต้อง"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "ชื่อไม่ถูกต้อง"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "ไม่ว่าง โปรดลองอีกครั้งในภายหลัง"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "ช่วงเวลาปลุกคือ %s แต่ต้องเป็น 1 ชั่วโมงหรือน้อยกว่า"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "ไม่สามารถเชื่อมต่อบัญชีของคุณได้"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "คำขอมากเกินไป"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "พื้นที่เก็บข้อมูลไม่เพียงพอ"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "เกินโควตา"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "การลงทะเบียนถูกปิดใช้งาน"
#: messages.go:164
msgid "Verified email required"
msgstr "ต้องยืนยันอีเมล"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "บันทึกการเปลี่ยนแปลงเรียบร้อยแล้ว"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "สร้างอัลบั้มแล้ว"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "บันทึกอัลบั้มแล้ว"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "ลบอัลบั้ม %s แล้ว"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "โคลนเนื้อหาในอัลบั้ม"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "ไฟล์ถูกลบออกจากสแต็ค"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "ลบไฟล์แล้ว"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "เพิ่มการเลือกใน %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "เพิ่มหนึ่งรายการใน %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d รายการที่เพิ่มใน %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "ลบหนึ่งรายการจาก %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "รายการ %d ถูกลบออกจาก %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "สร้างบัญชีแล้ว"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "บันทึกบัญชีแล้ว"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "ลบบัญชีแล้ว"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "การตั้งค่าที่บันทึกไว้"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "เปลี่ยนรหัสผ่านแล้ว"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "การนำเข้าเสร็จสมบูรณ์ใน %d วินาที"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "ยกเลิกการนำเข้าแล้ว"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "การสร้างดัชนีเสร็จสิ้นใน %d วินาที"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "กำลังจัดทำดัชนีต้นฉบับ..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "การทำดัชนีไฟล์ใน %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "ยกเลิกการทำดัชนีแล้ว"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "ลบไฟล์ %d และภาพถ่าย %d"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "การย้ายไฟล์จาก %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "การคัดลอกไฟล์จาก %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "ลบป้ายกำกับแล้ว"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "บันทึกป้ายกำกับแล้ว"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "บันทึกหัวเรื่องแล้ว"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "ลบหัวเรื่องแล้ว"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "บุคคลที่บันทึกไว้"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "ลบบุคคลแล้ว"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "อัปโหลดไฟล์แล้ว"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "ไฟล์ %d ที่อัปโหลดใน %d วินาที"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "กำลังประมวลผลการอัปโหลด..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "อัปโหลดได้รับการดำเนินการ"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "การเลือกได้รับการอนุมัติ"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "เก็บถาวรการเลือกแล้ว"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "คืนค่าการเลือกแล้ว"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "การเลือกถูกทำเครื่องหมายเป็นส่วนตัว"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "ลบอัลบั้มแล้ว"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip สร้างใน %d วินาที"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "ลบอย่างถาวร"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s ได้รับการกู้คืนแล้ว"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "ตรวจสอบเรียบร้อยแล้ว"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "เปิดใช้งานสำเร็จแล้ว"

View file

@ -2,411 +2,428 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Bir şeyler ters gitti, tekrar deneyin"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Bunu yapmak mümkün değil"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Değişiklikler kaydedilemedi"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Silinemedi"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s zaten var"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Bulunamadı"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Dosya bulunamadı"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Dosya çok büyük"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Desteklenmiyor"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Desteklenmeyen tür"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Desteklenmeyen format"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Orijinaller klasörü boş"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Seçim bulunamadı"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Varlık bulunamadı"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Hesap bulunamadı"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Kullanıcı bulunamadı"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Etiket bulunamadı"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Kamera bulunamadı."
#: messages.go:130
msgid "Lens not found"
msgstr "Lens bulunamadı."
#: messages.go:131
msgid "Album not found"
msgstr "Albüm bulunamadı"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Özne bulunamadı"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Kişi bulunamadı"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Yüz bulunamadı"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Genel modda mevcut değil"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Salt okunur modda kullanılamaz"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Lütfen hesabınıza giriş yapın"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "İzin reddedildi"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Ödeme gerekli"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Yükleme rahatsız edici olabilir"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Yükleme başarısız"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Seçili öğe yok"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Dosya oluşturulamadı, lütfen izinleri kontrol edin"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Klasör oluşturulamadı, lütfen izinleri kontrol edin"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Bağlanılamadı, lütfen tekrar deneyin"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Doğrulama kodunu giriniz"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Geçersiz doğrulama kodu, lütfen tekrar deneyin"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Geçersiz şifre, lütfen tekrar deneyin"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Özellik devre dışı"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Seçili etiket yok"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Seçili albüm yok"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "İndirilebilecek dosya yok"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Zip dosyası oluşturulamadı"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Geçersiz kimlik bilgileri"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Geçersiz link"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Geçersiz isim"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Meşgul, lütfen daha sonra tekrar deneyin"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Uyandırma aralığı %s'dır, ancak 1 saat veya daha az olmalıdır"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Hesabınız bağlanamadı"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Çok fazla talep var"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Yetersiz depolama"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Kota aşıldı"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Kayıt devre dışı bırakıldı"
#: messages.go:164
msgid "Verified email required"
msgstr "Doğrulanmış e-posta adresi gereklidir."
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Değişiklikler başarıyla kaydedildi"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Albüm oluşturuldu"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Albüm kaydedildi"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Albüm %s silindi"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Albüm içeriği klonlandı"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Dosya yığından kaldırıldı"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Silinmiş dosya"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Seçim %s'a eklendi"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Bir giriş %s'a eklendi"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d girişleri %s'e eklendi"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Bir giriş %s'dan kaldırıldı"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d girişleri %s'den kaldırıldı"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Hesap eklendi"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Hesap kaydedildi"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Hesap silindi"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Ayarlar kaydedildi"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Şifre Değiştirildi"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "İçe aktarma %d s içinde tamamlandı"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "İçe aktarma iptal edildi"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "İndeksleme %d s içinde tamamlandı"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Orijinalleri dizinliyor..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "%s dosya yüklendi"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "İndeksleme iptal edildi"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "%d dosya ve %d fotoğraf kaldırıldı"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Dosyaları %s'dan taşıma"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Dosyaları %s'dan kopyalama"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Etiketler silindi"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Etiket kaydedildi"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Konu kaydedildi"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Konu silindi"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Kurtarılan kişi"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Kişi silindi"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Dosya yüklendi"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d dosyalar %d s içinde yüklendi"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Yükleme işlemi..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Yükleme işlemi tamamlandı"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Seçim onaylandı"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Seçim arşivlendi"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Seçim geri yüklendi"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Özel olarak işaretlenmiş seçim"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Albümler silindi"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip %d s içinde oluşturuldu"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Kalıcı olarak silindi"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s geri yüklendi"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Başarıyla doğrulandı"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Başarıyla etkinleştirildi"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
@ -12,403 +13,419 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Щось пішло не так, спробуйте ще раз"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Неможливо це зробити"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Зміни не можливо зберегти"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Не можливо видалити"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s вже існує"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Не знайдено"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Файл не знайдено"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Файл занадто великий"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Не підтримується"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Непідтримуваний тип"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Непідтримуваний формат"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Папка з оригіналами порожня"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Вибір не знайдено"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Об'єкт не знайдено"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Обліковий запис не знайдено"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Користувача не знайдено"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Мітку не знайдено"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Камеру не знайдено"
#: messages.go:130
msgid "Lens not found"
msgstr "Об'єктив не знайдено"
#: messages.go:131
msgid "Album not found"
msgstr "Альбом не знайдено"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Тема не знайдена"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Особистість не знайдена"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Обличчя не знайдено"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Недоступно в публічному режимі"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "не доступно в режимі \"тільки читання\""
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Будь ласка, увійдіть до свого облікового запису"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "В доступі відмовлено"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Потрібна оплата"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Завантаження може бути образливим"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Помилка вивантаження"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Нічого не вибрано"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Помилка створення файла, перевірте дозволи"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Не вдалося створити папку, перевірте права доступу"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Не можливо підключитися, спробуйте знову"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Введіть код верифікації"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Невірний код верифікації, спробуйте знову"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "Невірний пароль, спробуйте знову"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Функцію вимкнено"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Мітки не вибрано"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Альбоми не вибрано"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Немає доступних файлів для завантаження"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Не вдалося створити zip-файл"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Недійсні облікові дані"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Невірне посилання"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Невірне ім'я"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Зайнято, спробуйте пізніше"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr ""
"Інтервал пробудження становить %s, але має становити 1 годину або менше"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Ваш обліковий запис не вдалося підключити"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "Занадто багато запитів"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Недостатнє зберігання"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Перевищено квоту"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Реєстрацію вимкнено"
#: messages.go:164
msgid "Verified email required"
msgstr "Потрібна підтверджена електронна адреса"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Зміни успішно збережено"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Альбом створено"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Альбом збережено"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Альбом %s видалено"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Вміст альбому клоновано"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Файл видалено з стеку"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Файл видалено"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Вибір додано до %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Один запис додано до %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d записів додано до %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Один запис видалено з %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d записів видалено з %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Обліковий запис створено"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Обліковий запис збережено"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Обліковий запис видалено"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Налаштування збережено"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "Пароль змінено"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Імпортування тривало %d с"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Імпортування скасовано"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Індексування тривало %d с"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Індексуємо оригінали..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Індексуємо файли в %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Індексування скасовано"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Видалено %d файлів та %d фотографій"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Переносимо файли з %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Копіюємо файли з %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Мітки видалено"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Мітку збережено"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Тема збережена"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Тема видалена"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Людина збережена"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Людина видалена"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "Файл завантажено"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "%d файлів вивантажено за %d с"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Обробка завантаження..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Завантаження оброблено"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Вибір затверджено"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Вибране заархівовано"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Вибране відновлено"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Вибіране позначено як приватне"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Альбом видалено"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip створено за %d с"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Остаточно видалено"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s було відновлено"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Верифікація успішна"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Активація успішна"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: none\n"
@ -12,402 +12,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "Đã xảy ra lỗi, hãy thử lại"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "Không thể làm điều đó"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "Không thể lưu các thay đổi"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "Không thể xóa được"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s đã tồn tại"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "Không tìm thấy"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "Không tìm thấy tập tin"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "Tệp quá lớn"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "Không được hỗ trợ"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "Loại không được hỗ trợ"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "Định dạng không được hỗ trợ"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "Thư mục gốc trống"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "Không tìm thấy lựa chọn"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "Không tìm thấy thực thể"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "Tài khoản không được tìm thấy"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "Không tìm thấy người dùng"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "Không tìm thấy nhãn"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "Không tìm thấy máy ảnh"
#: messages.go:130
msgid "Lens not found"
msgstr "Không tìm thấy ống kính"
#: messages.go:131
msgid "Album not found"
msgstr "Không tìm thấy album"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "Không tìm thấy chủ đề"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "Không tìm thấy người"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "Không tìm thấy khuôn mặt"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "Không khả dụng ở chế độ công khai"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "Không khả dụng ở chế độ chỉ đọc"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "Xin hãy đăng nhập vào tài khoản của bạn"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "Quyền bị từ chối"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "Yêu cầu thanh toán"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "Tải lên có thể gây khó chịu"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "Tải lên không thành công"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "Không có mục nào được chọn"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "Không tạo được tệp, vui lòng kiểm tra quyền"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "Không tạo được thư mục, vui lòng kiểm tra quyền"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "Không thể kết nối, vui lòng thử lại"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "Nhập mã xác nhận"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "Mã xác minh không hợp lệ, vui lòng thử lại"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "mật mã không hợp lệ, vui lòng thử lại"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "Tính năng bị tắt"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "Không có nhãn nào được chọn"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "Không có album nào được chọn"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "Không có tập tin nào để tải xuống"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "Không tạo được tệp zip"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "Thông tin không hợp lệ"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "Liên kết không hợp lệ"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "Tên không hợp lệ"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "Đang bận, vui lòng thử lại sau"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "Khoảng thời gian đánh thức là %s nhưng phải từ 1 giờ trở xuống"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "Tài khoản của bạn không thể kết nối được"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "quá nhiều yêu cầu"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "Không đủ dung lượng lưu trữ"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "Vượt quá hạn ngạch"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "Đăng ký bị vô hiệu hóa"
#: messages.go:164
msgid "Verified email required"
msgstr "Cần có email đã được xác minh."
#: messages.go:167
msgid "Changes successfully saved"
msgstr "Đã lưu thay đổi thành công"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "Đã tạo album"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "Đã lưu album"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "Album %s đã bị xóa"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "Nội dung album được sao chép"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "Đã xóa tệp khỏi ngăn xếp"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "Đã xóa tệp"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "Đã thêm lựa chọn vào %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "Đã thêm một mục vào %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "Các mục %d được thêm vào %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "Đã xóa một mục khỏi %s"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "Các mục %d đã bị xóa khỏi %s"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "Tài khoản đã được tạo"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "Đã lưu tài khoản"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "Tài khoản đã bị xóa"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "Đã lưu cài đặt"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "mật khẩu đã được thay đổi"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "Quá trình nhập hoàn tất sau %d giây"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "Đã hủy nhập"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "Việc lập chỉ mục hoàn tất sau %d giây"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "Lập chỉ mục bản gốc..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "Lập chỉ mục các tệp trong %s"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "Đã hủy lập chỉ mục"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "Đã xóa tệp %d và ảnh %d"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "Di chuyển tệp từ %s"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "Sao chép tập tin từ %s"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "Đã xóa nhãn"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "Đã lưu nhãn"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "Đã lưu chủ đề"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "Chủ đề đã bị xóa"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "Người đã được cứu"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "Người đã bị xóa"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "File đã được tải lên"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "Các tệp %d được tải lên trong %d giây"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "Đang xử lý tải lên..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "Tải lên đã được xử lý"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "Lựa chọn đã được phê duyệt"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "Đã lưu trữ lựa chọn"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "Đã khôi phục lựa chọn"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "Lựa chọn được đánh dấu là riêng tư"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "Album đã bị xóa"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip được tạo trong %d giây"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "Đã xóa vĩnh viễn"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s đã được khôi phục"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "Đã xác minh thành công"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "Đã kích hoạt thành công"

View file

@ -2,9 +2,10 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Chinese (Simplified) <https://translate.photoprism.app/"
"projects/photoprism/backend/zh_Hans/>\n"
"Language: zh\n"
@ -12,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "出错了,再试一次"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "无法做到这一点"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "无法保存变更"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "无法删除"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s 已存在"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "未找到"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "未找到文件"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "文件过大"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "不支持"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "不支持的类型"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "不支持的格式"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "原件文件夹是空的"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "未找到所选内容"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "未找到实体"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "未找到账户"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "未找到用户"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "未找到标签"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "未找到摄像头"
#: messages.go:130
msgid "Lens not found"
msgstr "未找到镜头"
#: messages.go:131
msgid "Album not found"
msgstr "未找到相册"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "未找到主题"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "未找到人物"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "未找到面孔"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "在公开模式下不可用"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "在只读模式下不可用"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "请登录你的账户"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "没有权限"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "需要付款"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "上传内容可能具有冒犯性"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "上传失败"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "未选择任何项目"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "创建文件失败,请检查权限"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "创建目录失败,请检查权限"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "无法连接,请重试"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "输入验证码"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "验证码无效,请重试"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "无效密码,请重试"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "功能已禁用"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "未选择标签"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "未选择相册"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "没有可供下载的文件"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "创建压缩文件失败"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "无效凭证"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "无效链接"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "无效名称"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "忙碌中,请稍后重试"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "唤醒间隔为 %s但必须小于等于 1 小时"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "你的账户无法连接"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "请求太多"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "存储不足"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "超出配额"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "注册已禁用"
#: messages.go:164
msgid "Verified email required"
msgstr "需要已验证的电子邮件地址"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "更改成功保存"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "相册已创建"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "相册已保存"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "相册 %s 已删除"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "相册内容已复制"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "文件已从堆中移除"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "文件已删除"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "所选项目已加入 %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "条目已添加到 %s"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d 个条目已添加到 %s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "条目已从 %s 移除"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d 个条目已从 %s 移除"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "账户已创建"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "账户已保存"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "账户已删除"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "设置已保存"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "密码已更改"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "导入成功,耗时 %d 秒"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "导入已取消"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "索引成功,耗时 %d 秒"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "索引源文件..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "索引 %s 中的文件"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "索引已取消"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "移除了 %d 个文件和 %d 张照片"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "正在从 %s 中移动文件"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "正在从 %s 中复制文件"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "标签已移除"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "标签已保存"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "主题已保存"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "主题已删除"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "人物已保存"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "人物已删除"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "已上传文件"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "已上传 %d 个文件,耗时 %d 秒"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "处理上传..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "上传已被处理"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "所选项已批准"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "所选项已归档"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "所选项已恢复"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "所选项已设为私有"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "相册已删除"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip 文件创建成功,耗时 %d 秒"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "已永久删除"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s 已恢复"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "验证成功"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "已成功激活"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
"translate@weblate.org>\n"
"Language-Team: Chinese (Traditional) <https://translate.photoprism.app/"
@ -13,402 +13,418 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.13.3\n"
"X-Generator: Weblate 2026.5\n"
#: messages.go:104
#: messages.go:112
msgid "Something went wrong, try again"
msgstr "出错了,再试一次"
#: messages.go:105
#: messages.go:113
msgid "Unable to do that"
msgstr "无法做到这一点"
#: messages.go:106
#: messages.go:114
msgid "Changes could not be saved"
msgstr "無法儲存更改項目"
#: messages.go:107
#: messages.go:115
msgid "Could not be deleted"
msgstr "無法刪除"
#: messages.go:108
#: messages.go:116
#, c-format
msgid "%s already exists"
msgstr "%s 已存在"
#: messages.go:109
#: messages.go:117
msgid "Not found"
msgstr "未找到"
#: messages.go:110
#: messages.go:118
msgid "File not found"
msgstr "未找到檔案"
#: messages.go:111
#: messages.go:119
msgid "File too large"
msgstr "文件過大"
#: messages.go:112
#: messages.go:120
msgid "Unsupported"
msgstr "不支援"
#: messages.go:113
#: messages.go:121
msgid "Unsupported type"
msgstr "不支援的類型"
#: messages.go:114
#: messages.go:122
msgid "Unsupported format"
msgstr "不支持的格式"
#: messages.go:115
#: messages.go:123
msgid "Originals folder is empty"
msgstr "原稿文件夾是空的"
#: messages.go:116
#: messages.go:124
msgid "Selection not found"
msgstr "未找到選取項目"
#: messages.go:117
#: messages.go:125
msgid "Entity not found"
msgstr "未找到實體"
#: messages.go:118
#: messages.go:126
msgid "Account not found"
msgstr "未找到帳號"
#: messages.go:119
#: messages.go:127
msgid "User not found"
msgstr "未找到使用者"
#: messages.go:120
#: messages.go:128
msgid "Label not found"
msgstr "未找到標籤"
#: messages.go:121
#: messages.go:129
msgid "Camera not found"
msgstr "未找到攝影機"
#: messages.go:130
msgid "Lens not found"
msgstr "未找到鏡頭"
#: messages.go:131
msgid "Album not found"
msgstr "未找到相簿"
#: messages.go:122
#: messages.go:132
msgid "Subject not found"
msgstr "未找到主體"
#: messages.go:123
#: messages.go:133
msgid "Person not found"
msgstr "找不到人"
#: messages.go:124
#: messages.go:134
msgid "Face not found"
msgstr "找不到面貌"
#: messages.go:125
#: messages.go:135
msgid "Not available in public mode"
msgstr "不適用於公開模式"
#: messages.go:126
#: messages.go:136
msgid "Not available in read-only mode"
msgstr "不適用於唯讀模式"
#: messages.go:127
#: messages.go:137
msgid "Please log in to your account"
msgstr "請登入您的帳戶"
#: messages.go:128
#: messages.go:138
msgid "Permission denied"
msgstr "權限遭拒"
#: messages.go:129
#: messages.go:139
msgid "Payment required"
msgstr "需要付款"
#: messages.go:130
#: messages.go:140
msgid "Upload might be offensive"
msgstr "所上傳檔案可能會冒犯其他人"
#: messages.go:131
#: messages.go:141
msgid "Upload failed"
msgstr "上傳失敗"
#: messages.go:132
#: messages.go:142
msgid "No items selected"
msgstr "未選取任何項目"
#: messages.go:133
#: messages.go:143
msgid "Failed creating file, please check permissions"
msgstr "建立文件失敗,請檢查權限"
#: messages.go:134
#: messages.go:144
msgid "Failed creating folder, please check permissions"
msgstr "建立目錄失敗,請檢查權限"
#: messages.go:135
#: messages.go:145
msgid "Could not connect, please try again"
msgstr "無法連線,請重試"
#: messages.go:136
#: messages.go:146
msgid "Enter verification code"
msgstr "輸入驗證碼"
#: messages.go:137
#: messages.go:147
msgid "Invalid verification code, please try again"
msgstr "驗證碼無效,請重試"
#: messages.go:138
#: messages.go:148
msgid "Invalid password, please try again"
msgstr "密碼無效,請重試"
#: messages.go:139
#: messages.go:149
msgid "Feature disabled"
msgstr "功能未開啟"
#: messages.go:140
#: messages.go:150
msgid "No labels selected"
msgstr "未選擇標籤"
#: messages.go:141
#: messages.go:151
msgid "No albums selected"
msgstr "未選取相簿"
#: messages.go:142
#: messages.go:152
msgid "No files available for download"
msgstr "没有可以下載的檔案"
#: messages.go:143
#: messages.go:153
msgid "Failed to create zip file"
msgstr "建立 zip 檔失敗"
#: messages.go:144
#: messages.go:154
msgid "Invalid credentials"
msgstr "認證無效"
#: messages.go:145
#: messages.go:155
msgid "Invalid link"
msgstr "超連結無效"
#: messages.go:146
#: messages.go:156
msgid "Invalid name"
msgstr "無效名稱"
#: messages.go:147
#: messages.go:157
msgid "Busy, please try again later"
msgstr "忙碌中,請稍候再試"
#: messages.go:148
#: messages.go:158
#, c-format
msgid "The wakeup interval is %s, but must be 1h or less"
msgstr "喚醒間隔為 %s但必須少於1 小時"
#: messages.go:149
#: messages.go:159
msgid "Your account could not be connected"
msgstr "您的賬戶無法連接"
#: messages.go:150
#: messages.go:160
msgid "Too many requests"
msgstr "请求太多"
#: messages.go:151
#: messages.go:161
msgid "Insufficient storage"
msgstr "儲存空間不足"
#: messages.go:152
#: messages.go:162
msgid "Quota exceeded"
msgstr "超過配額"
#: messages.go:155
#: messages.go:163
msgid "Registration disabled"
msgstr "註冊已停用"
#: messages.go:164
msgid "Verified email required"
msgstr "需要已驗證的電子郵件地址"
#: messages.go:167
msgid "Changes successfully saved"
msgstr "成功儲存變更"
#: messages.go:156
#: messages.go:168
msgid "Album created"
msgstr "相簿已建立"
#: messages.go:157
#: messages.go:169
msgid "Album saved"
msgstr "相簿已儲存"
#: messages.go:158
#: messages.go:170
#, c-format
msgid "Album %s deleted"
msgstr "相簿 %s 已刪除"
#: messages.go:159
#: messages.go:171
msgid "Album contents cloned"
msgstr "相簿内容已被複製"
#: messages.go:160
#: messages.go:172
msgid "File removed from stack"
msgstr "檔案已從堆疊中移除"
#: messages.go:161
#: messages.go:173
msgid "File deleted"
msgstr "檔案已刪除"
#: messages.go:162
#: messages.go:174
#, c-format
msgid "Selection added to %s"
msgstr "選取項目已加入 %s"
#: messages.go:163
#: messages.go:175
#, c-format
msgid "One entry added to %s"
msgstr "已在 %s 增加一個項目"
#: messages.go:164
#: messages.go:176
#, c-format
msgid "%d entries added to %s"
msgstr "%d個項目已加入%s"
#: messages.go:165
#: messages.go:177
#, c-format
msgid "One entry removed from %s"
msgstr "已從 %s 移除一個項目"
#: messages.go:166
#: messages.go:178
#, c-format
msgid "%d entries removed from %s"
msgstr "%d 個項目已從 %s 移除"
#: messages.go:167
#: messages.go:179
msgid "Account created"
msgstr "帳號已建立"
#: messages.go:168
#: messages.go:180
msgid "Account saved"
msgstr "帳號已儲存"
#: messages.go:169
#: messages.go:181
msgid "Account deleted"
msgstr "帳號已刪除"
#: messages.go:170
#: messages.go:182
msgid "Settings saved"
msgstr "設定已儲存"
#: messages.go:171
#: messages.go:183
msgid "Password changed"
msgstr "密碼已更改"
#: messages.go:172
#: messages.go:184
#, c-format
msgid "Import completed in %d s"
msgstr "匯入成功, 共用 %d 秒"
#: messages.go:173
#: messages.go:185
msgid "Import canceled"
msgstr "匯入取消"
#: messages.go:174
#: messages.go:186
#, c-format
msgid "Indexing completed in %d s"
msgstr "索引建立成功, 共用 %d 秒"
#: messages.go:175
#: messages.go:187
msgid "Indexing originals..."
msgstr "索引原始檔案..."
#: messages.go:176
#: messages.go:188
#, c-format
msgid "Indexing files in %s"
msgstr "建立 %s 中的檔案索引"
#: messages.go:177
#: messages.go:189
msgid "Indexing canceled"
msgstr "建立索引取消"
#: messages.go:178
#: messages.go:190
#, c-format
msgid "Removed %d files and %d photos"
msgstr "刪除了 %d 個檔案和 %d 張照片"
#: messages.go:179
#: messages.go:191
#, c-format
msgid "Moving files from %s"
msgstr "正在從 %s 中移動檔案"
#: messages.go:180
#: messages.go:192
#, c-format
msgid "Copying files from %s"
msgstr "正在從 %s 中複製檔案"
#: messages.go:181
#: messages.go:193
msgid "Labels deleted"
msgstr "已刪除標籤"
#: messages.go:182
#: messages.go:194
msgid "Label saved"
msgstr "標籤已儲存"
#: messages.go:183
#: messages.go:195
msgid "Subject saved"
msgstr "主題已儲存"
#: messages.go:184
#: messages.go:196
msgid "Subject deleted"
msgstr "主題已刪除"
#: messages.go:185
#: messages.go:197
msgid "Person saved"
msgstr "人物已儲存"
#: messages.go:186
#: messages.go:198
msgid "Person deleted"
msgstr "人物已刪除"
#: messages.go:187
#: messages.go:199
msgid "File uploaded"
msgstr "檔案上傳成功"
#: messages.go:188
#: messages.go:200
#, c-format
msgid "%d files uploaded in %d s"
msgstr "已上傳 %d 個檔案, 共用 %d 秒"
#: messages.go:189
#: messages.go:201
msgid "Processing upload..."
msgstr "正在處理上傳..."
#: messages.go:190
#: messages.go:202
msgid "Upload has been processed"
msgstr "上傳已處理完畢"
#: messages.go:191
#: messages.go:203
msgid "Selection approved"
msgstr "選取項目已認可"
#: messages.go:192
#: messages.go:204
msgid "Selection archived"
msgstr "選取項目已封存"
#: messages.go:193
#: messages.go:205
msgid "Selection restored"
msgstr "選取項目已被復原"
#: messages.go:194
#: messages.go:206
msgid "Selection marked as private"
msgstr "選取項目已設為私人"
#: messages.go:195
#: messages.go:207
msgid "Albums deleted"
msgstr "相簿已刪除"
#: messages.go:196
#: messages.go:208
#, c-format
msgid "Zip created in %d s"
msgstr "Zip檔建立成功, 共用 %d 秒"
#: messages.go:197
#: messages.go:209
msgid "Permanently deleted"
msgstr "永久刪除"
#: messages.go:198
#: messages.go:210
#, c-format
msgid "%s has been restored"
msgstr "%s 已被回復"
#: messages.go:199
#: messages.go:211
msgid "Successfully verified"
msgstr "驗證成功"
#: messages.go:200
#: messages.go:212
msgid "Successfully activated"
msgstr "激活成功"

BIN
assets/samples/dice.jxl Normal file

Binary file not shown.

View file

@ -1 +1 @@
<svg data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 224 224"><defs><linearGradient id="a" x1="26.38" y1="231.72" x2="231.72" y2="26.38" gradientUnits="userSpaceOnUse" gradientTransform="translate(-26.38 -26.38)"><stop offset="0" stop-color="#fff"/><stop offset="0" stop-color="#b8edff"/><stop offset="1" stop-color="#d4b8ff"/></linearGradient></defs><rect rx="22%" ry="22%" width="224" height="224" style="fill:url(#a)"/><path d="m198.63 157.72-3.8 22.98M25.464 158.66l14.07 13.3m90.971-130.767L39.438 171.78a.086.086 0 0 0 .067.142l155.24 8.902a.086.086 0 0 0 .085-.124L130.638 41.212a.095.095 0 0 0-.133-.02zm-18.753-12.626L25.36 158.48a.123.123 0 0 0 .105.18l173.07-.76a.114.114 0 0 0 .096-.18L111.952 28.567a.114.114 0 0 0-.2 0zm.105-.152 18.781 12.654" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10;stroke-width:6px"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 224 224"><defs><linearGradient id="a" x1="26.38" y1="231.72" x2="231.72" y2="26.38" gradientUnits="userSpaceOnUse" gradientTransform="translate(-26.38 -26.38)"><stop offset="0" stop-color="#fff"/><stop offset="0" stop-color="#b8edff"/><stop offset="1" stop-color="#d4b8ff"/></linearGradient></defs><rect rx="22%" ry="22%" width="224" height="224" style="fill:url(#a)"/><path d="m198.63 157.72-3.8 22.98M25.464 158.66l14.07 13.3m90.971-130.767L39.438 171.78a.086.086 0 0 0 .067.142l155.24 8.902a.086.086 0 0 0 .085-.124L130.638 41.212a.095.095 0 0 0-.133-.02zm-18.753-12.626L25.36 158.48a.123.123 0 0 0 .105.18l173.07-.76a.114.114 0 0 0 .096-.18L111.952 28.567a.114.114 0 0 0-.2 0zm.105-.152 18.781 12.654" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10;stroke-width:6px"/></svg>

Before

Width:  |  Height:  |  Size: 857 B

After

Width:  |  Height:  |  Size: 837 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="b" width="120%" height="120%" x="-10%" y="-10%"><feDropShadow dx="0" dy="2" flood-color="#0f172a" flood-opacity=".2" stdDeviation="2.5"/></filter><filter id="c" width="140%" height="140%" x="-20%" y="-20%"><feDropShadow dx="0" dy="2" flood-color="#0f172a" flood-opacity=".22" stdDeviation="4"/></filter><linearGradient id="a" x1="0" x2="0" y1="0" y2="1"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#f1f5f9"/></linearGradient></defs><circle cx="256" cy="256" r="256" fill="url(#a)"/><circle cx="256" cy="256" r="255" fill="none" stroke="#e2e8f0" opacity=".5"/><g filter="url(#b)" transform="translate(256 256)"><path fill="#ff3b30" d="M0-200c45 20 60 100 40 160C25-10 10-2 0 0c-10-2-25-10-40-40-20-60-5-140 40-160"/><path fill="#ff9500" d="M141.421-141.421C159.1-95.46 113.137-28.284 56.57 0 24.749 10.607 8.485 5.657 0 0c-5.657-8.485-10.607-24.749 0-56.569 28.284-56.568 95.46-102.53 141.421-84.852"/><path fill="#fc0" d="M200 0C180 45 100 60 40 40 10 25 2 10 0 0c2-10 10-25 40-40 60-20 140-5 160 40"/><path fill="#34c759" d="M141.421 141.421C95.46 159.1 28.284 113.137 0 56.57-10.607 24.749-5.657 8.485 0 0c8.485-5.657 24.749-10.607 56.569 0 56.568 28.284 102.53 95.46 84.852 141.421"/><path fill="#00c7be" d="M0 200c-45-20-60-100-40-160C-25 10-10 2 0 0c10 2 25 10 40 40 20 60 5 140-40 160"/><path fill="#007aff" d="M-141.421 141.421C-159.1 95.46-113.137 28.284-56.57 0-24.749-10.607-8.485-5.657 0 0c5.657 8.485 10.607 24.749 0 56.569-28.284 56.568-95.46 102.53-141.421 84.852"/><path fill="#af52de" d="M-200 0c20-45 100-60 160-40C-10-25-2-10 0 0c-2 10-10 25-40 40-60 20-140 5-160-40"/><path fill="#ff2d55" d="M-141.421-141.421C-95.46-159.1-28.284-113.137 0-56.57 10.607-24.749 5.657-8.485 0 0c-8.485 5.657-24.749 10.607-56.569 0-56.568-28.284-102.53-95.46-84.852-141.421"/></g><circle cx="256" cy="256" r="44" fill="#fff" filter="url(#c)"/><circle cx="256" cy="256" r="44" fill="none" stroke="#e2e8f0" opacity=".5"/></svg>

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Some files were not shown because too many files have changed in this diff Show more