mirror of
https://github.com/immich-app/immich.git
synced 2026-03-04 16:07:02 +00:00
Compare commits
159 Commits
shared-dee
...
v2.5.6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3be8e265cd | ||
|
|
e3c4e0197a | ||
|
|
1ddb8f0667 | ||
|
|
adfb003d03 | ||
|
|
8c8b11f80c | ||
|
|
90d554947f | ||
|
|
caeba5063b | ||
|
|
280174026f | ||
|
|
a9e0fa43fa | ||
|
|
e6e56d75e2 | ||
|
|
0886281dd8 | ||
|
|
32dea76a92 | ||
|
|
6af534fe4c | ||
|
|
71fe9192fd | ||
|
|
7fa6f617f5 | ||
|
|
c3730c8eab | ||
|
|
3462fc434e | ||
|
|
561469b826 | ||
|
|
937bef9a4d | ||
|
|
5f18110e97 | ||
|
|
57485023ae | ||
|
|
8a9b541dd0 | ||
|
|
25be5fc22d | ||
|
|
906c38273f | ||
|
|
10b2bf7970 | ||
|
|
7cf8a9936a | ||
|
|
59c4a49ffd | ||
|
|
00486cbcc8 | ||
|
|
b524d7b6fd | ||
|
|
5b705cb723 | ||
|
|
354dd3cc3c | ||
|
|
57483a1e7f | ||
|
|
bcea64875f | ||
|
|
84e30abe5d | ||
|
|
e3e243fa2b | ||
|
|
b3820c259e | ||
|
|
a356497d96 | ||
|
|
16fe828913 | ||
|
|
211dc3c056 | ||
|
|
ff9052f7f5 | ||
|
|
999ce34251 | ||
|
|
491ed3d927 | ||
|
|
94e86c6e76 | ||
|
|
8581b4f350 | ||
|
|
4835d5f97f | ||
|
|
435565be1b | ||
|
|
94d3039606 | ||
|
|
092ebe01a5 | ||
|
|
37e5968a7a | ||
|
|
cfc5ed5997 | ||
|
|
1b3c0e4f65 | ||
|
|
fd49d7d566 | ||
|
|
ad9f3cfa05 | ||
|
|
9d8efe2685 | ||
|
|
ed4d9abdae | ||
|
|
ac9f6921cc | ||
|
|
f0da875e37 | ||
|
|
b0e1a425b3 | ||
|
|
7211d80e5f | ||
|
|
92c79a7122 | ||
|
|
7580521a76 | ||
|
|
2dd3a764ae | ||
|
|
a42c08ed84 | ||
|
|
3c77c724c5 | ||
|
|
84b2979485 | ||
|
|
e9c2ca008a | ||
|
|
9c098109e0 | ||
|
|
27a2808470 | ||
|
|
0a8a65a45e | ||
|
|
2b6055e830 | ||
|
|
ba2dfa7df6 | ||
|
|
237ea3aedd | ||
|
|
810e9254f3 | ||
|
|
57e0835b46 | ||
|
|
e97030a7ae | ||
|
|
fdf06a91cc | ||
|
|
732303661b | ||
|
|
e9f8521a50 | ||
|
|
6bd60270b4 | ||
|
|
5a6fd7af06 | ||
|
|
6cdebdd3b3 | ||
|
|
9dddccd831 | ||
|
|
440b3b4c6f | ||
|
|
3ea65f8d27 | ||
|
|
38c1f0b1fd | ||
|
|
5212bca3d0 | ||
|
|
2990bde0bb | ||
|
|
af1ecaf5cc | ||
|
|
3870ebc3c6 | ||
|
|
0a9d969b47 | ||
|
|
94965f6d66 | ||
|
|
8872d2c7ae | ||
|
|
23445fdcc1 | ||
|
|
25f2273e24 | ||
|
|
95e8e474b8 | ||
|
|
9f52d864cf | ||
|
|
0273dcb0cf | ||
|
|
1436e2a75f | ||
|
|
855817514c | ||
|
|
d5ad35ea52 | ||
|
|
e63213d774 | ||
|
|
0be1ffade6 | ||
|
|
1a04caee29 | ||
|
|
3ace578fc0 | ||
|
|
25c573bc7a | ||
|
|
10bb83cf75 | ||
|
|
10b53b525d | ||
|
|
8db61d341f | ||
|
|
eadb2f89af | ||
|
|
f2f11b1924 | ||
|
|
141be5cbc9 | ||
|
|
e81faa1dbf | ||
|
|
0beb1f9e7a | ||
|
|
e07a91f9c2 | ||
|
|
c6defd453b | ||
|
|
4e0e1b2c5c | ||
|
|
84c3980844 | ||
|
|
e50579eefc | ||
|
|
0cb153a971 | ||
|
|
12d23e987b | ||
|
|
9486eed97e | ||
|
|
913e939606 | ||
|
|
9be01e79f7 | ||
|
|
2d09853c3d | ||
|
|
91831f68e2 | ||
|
|
41e2ed3754 | ||
|
|
1319ad373f | ||
|
|
97df9fd53f | ||
|
|
4707821451 | ||
|
|
20c4d375b1 | ||
|
|
46d2238431 | ||
|
|
f7291c3a0b | ||
|
|
b5a3334e30 | ||
|
|
53718f01bb | ||
|
|
b51e0f1007 | ||
|
|
6fd3c9fffa | ||
|
|
50a0b126f6 | ||
|
|
b4489bd4a5 | ||
|
|
e6e661f882 | ||
|
|
f467a5e2c8 | ||
|
|
818f7b3e9b | ||
|
|
44b4f35019 | ||
|
|
212c03ceff | ||
|
|
7cedb5ea04 | ||
|
|
e57739b641 | ||
|
|
6587d45f1e | ||
|
|
da590995ab | ||
|
|
e04d316203 | ||
|
|
6b2737bae3 | ||
|
|
42b354c302 | ||
|
|
cf6c7f9960 | ||
|
|
9506398153 | ||
|
|
b5c3d87290 | ||
|
|
97220102e4 | ||
|
|
6430c88b84 | ||
|
|
df7efc4945 | ||
|
|
646bb372ab | ||
|
|
836d22570f | ||
|
|
3b0be896e6 |
@@ -26,7 +26,81 @@
|
||||
"vitest.explorer",
|
||||
"ms-playwright.playwright",
|
||||
"ms-azuretools.vscode-docker"
|
||||
]
|
||||
],
|
||||
"settings": {
|
||||
"tasks": {
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Fix Permissions, Install Dependencies",
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start.sh ] && /immich-devcontainer/container-start.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "dedicated",
|
||||
"showReuseMessage": true,
|
||||
"clear": false,
|
||||
"group": "Devcontainer tasks",
|
||||
"close": true
|
||||
},
|
||||
"runOptions": {
|
||||
"runOn": "default"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Immich API Server (Nest)",
|
||||
"dependsOn": ["Fix Permissions, Install Dependencies"],
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start-backend.sh ] && /immich-devcontainer/container-start-backend.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "dedicated",
|
||||
"showReuseMessage": true,
|
||||
"clear": false,
|
||||
"group": "Devcontainer tasks",
|
||||
"close": true
|
||||
},
|
||||
"runOptions": {
|
||||
"runOn": "folderOpen"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Immich Web Server (Vite)",
|
||||
"dependsOn": ["Fix Permissions, Install Dependencies"],
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start-frontend.sh ] && /immich-devcontainer/container-start-frontend.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "dedicated",
|
||||
"showReuseMessage": true,
|
||||
"clear": false,
|
||||
"group": "Devcontainer tasks",
|
||||
"close": true
|
||||
},
|
||||
"runOptions": {
|
||||
"runOn": "folderOpen"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Build Immich CLI",
|
||||
"type": "shell",
|
||||
"command": "pnpm --filter cli build:dev"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
|
||||
7
.github/workflows/build-mobile.yml
vendored
7
.github/workflows/build-mobile.yml
vendored
@@ -178,9 +178,12 @@ jobs:
|
||||
contents: read
|
||||
# Run on main branch or workflow_dispatch, or on PRs/other branches (build only, no upload)
|
||||
if: ${{ !github.event.pull_request.head.repo.fork && fromJSON(needs.pre-job.outputs.should_run).mobile == true }}
|
||||
runs-on: macos-latest
|
||||
runs-on: macos-15
|
||||
|
||||
steps:
|
||||
- name: Select Xcode 26
|
||||
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
|
||||
with:
|
||||
@@ -266,6 +269,8 @@ jobs:
|
||||
ENVIRONMENT: ${{ inputs.environment || 'development' }}
|
||||
BUNDLE_ID_SUFFIX: ${{ inputs.environment == 'production' && '' || 'development' }}
|
||||
GITHUB_REF: ${{ github.ref }}
|
||||
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 120
|
||||
FASTLANE_XCODEBUILD_SETTINGS_RETRIES: 6
|
||||
working-directory: ./mobile/ios
|
||||
run: |
|
||||
# Only upload to TestFlight on main branch
|
||||
|
||||
7
.github/workflows/cli.yml
vendored
7
.github/workflows/cli.yml
vendored
@@ -24,10 +24,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
packages: write
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./cli
|
||||
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@da177fa133657503ddb7503f8ba53dccefec5da1 # create-workflow-token-action-v1.0.0
|
||||
@@ -57,10 +58,8 @@ jobs:
|
||||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
- run: pnpm build
|
||||
- run: pnpm publish --no-git-checks
|
||||
- run: pnpm publish --provenance --no-git-checks
|
||||
if: ${{ github.event_name == 'release' }}
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
docker:
|
||||
name: Docker
|
||||
|
||||
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
@@ -131,7 +131,7 @@ jobs:
|
||||
- device: rocm
|
||||
suffixes: '-rocm'
|
||||
platforms: linux/amd64
|
||||
runner-mapping: '{"linux/amd64": "mich"}'
|
||||
runner-mapping: '{"linux/amd64": "pokedex-giant"}'
|
||||
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@0477486d82313fba68f7c82c034120a4b8981297 # multi-runner-build-workflow-v2.1.0
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
6
.github/workflows/prepare-release.yml
vendored
6
.github/workflows/prepare-release.yml
vendored
@@ -109,12 +109,6 @@ jobs:
|
||||
APP_STORE_CONNECT_API_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY }}
|
||||
IOS_CERTIFICATE_P12: ${{ secrets.IOS_CERTIFICATE_P12 }}
|
||||
IOS_CERTIFICATE_PASSWORD: ${{ secrets.IOS_CERTIFICATE_PASSWORD }}
|
||||
IOS_PROVISIONING_PROFILE: ${{ secrets.IOS_PROVISIONING_PROFILE }}
|
||||
IOS_PROVISIONING_PROFILE_SHARE_EXTENSION: ${{ secrets.IOS_PROVISIONING_PROFILE_SHARE_EXTENSION }}
|
||||
IOS_PROVISIONING_PROFILE_WIDGET_EXTENSION: ${{ secrets.IOS_PROVISIONING_PROFILE_WIDGET_EXTENSION }}
|
||||
IOS_DEVELOPMENT_PROVISIONING_PROFILE: ${{ secrets.IOS_DEVELOPMENT_PROVISIONING_PROFILE }}
|
||||
IOS_DEVELOPMENT_PROVISIONING_PROFILE_SHARE_EXTENSION: ${{ secrets.IOS_DEVELOPMENT_PROVISIONING_PROFILE_SHARE_EXTENSION }}
|
||||
IOS_DEVELOPMENT_PROVISIONING_PROFILE_WIDGET_EXTENSION: ${{ secrets.IOS_DEVELOPMENT_PROVISIONING_PROFILE_WIDGET_EXTENSION }}
|
||||
FASTLANE_TEAM_ID: ${{ secrets.FASTLANE_TEAM_ID }}
|
||||
|
||||
with:
|
||||
|
||||
6
.github/workflows/sdk.yml
vendored
6
.github/workflows/sdk.yml
vendored
@@ -12,6 +12,8 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
id-token: write
|
||||
packages: write
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
@@ -42,6 +44,4 @@ jobs:
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
- name: Publish
|
||||
run: pnpm publish --no-git-checks
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
run: pnpm publish --provenance --no-git-checks
|
||||
|
||||
36
.github/workflows/test.yml
vendored
36
.github/workflows/test.yml
vendored
@@ -497,14 +497,15 @@ jobs:
|
||||
run: npx playwright install chromium --only-shell
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Docker build
|
||||
run: docker compose build
|
||||
run: docker compose up -d --build --renew-anon-volumes --force-recreate --remove-orphans --wait --wait-timeout 300
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run e2e tests (web)
|
||||
env:
|
||||
CI: true
|
||||
run: npx playwright test --project=chromium
|
||||
PLAYWRIGHT_DISABLE_WEBSERVER: true
|
||||
run: npx playwright test --project=web
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Archive web results
|
||||
- name: Archive e2e test (web) results
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
||||
if: success() || failure()
|
||||
with:
|
||||
@@ -513,14 +514,37 @@ jobs:
|
||||
- name: Run ui tests (web)
|
||||
env:
|
||||
CI: true
|
||||
PLAYWRIGHT_DISABLE_WEBSERVER: true
|
||||
run: npx playwright test --project=ui
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Archive ui results
|
||||
- name: Archive ui test (web) results
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: e2e-ui-test-results-${{ matrix.runner }}
|
||||
path: e2e/playwright-report/
|
||||
- name: Run maintenance tests
|
||||
env:
|
||||
CI: true
|
||||
PLAYWRIGHT_DISABLE_WEBSERVER: true
|
||||
run: npx playwright test --project=maintenance
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Archive maintenance tests (web) results
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: e2e-maintenance-isolated-test-results-${{ matrix.runner }}
|
||||
path: e2e/playwright-report/
|
||||
- name: Capture Docker logs
|
||||
if: always()
|
||||
run: docker compose logs --no-color > docker-compose-logs.txt
|
||||
working-directory: ./e2e
|
||||
- name: Archive Docker logs
|
||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
||||
if: always()
|
||||
with:
|
||||
name: docker-compose-logs-${{ matrix.runner }}
|
||||
path: e2e/docker-compose-logs.txt
|
||||
success-check-e2e:
|
||||
name: End-to-End Tests Success
|
||||
needs: [e2e-tests-server-cli, e2e-tests-web]
|
||||
@@ -591,9 +615,9 @@ jobs:
|
||||
- name: Lint with ruff
|
||||
run: |
|
||||
uv run ruff check --output-format=github immich_ml
|
||||
- name: Check black formatting
|
||||
- name: Format with ruff
|
||||
run: |
|
||||
uv run black --check immich_ml
|
||||
uv run ruff format --check immich_ml
|
||||
- name: Run mypy type checking
|
||||
run: |
|
||||
uv run mypy --strict immich_ml/
|
||||
|
||||
2
.github/workflows/weblate-lock.yml
vendored
2
.github/workflows/weblate-lock.yml
vendored
@@ -36,7 +36,7 @@ jobs:
|
||||
github-token: ${{ steps.token.outputs.token }}
|
||||
filters: |
|
||||
i18n:
|
||||
- modified: 'i18n/!(en)**\.json'
|
||||
- modified: 'i18n/!(en|package)**\.json'
|
||||
skip-force-logic: 'true'
|
||||
|
||||
enforce-lock:
|
||||
|
||||
80
.vscode/tasks.json
vendored
80
.vscode/tasks.json
vendored
@@ -1,80 +0,0 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Fix Permissions, Install Dependencies",
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start.sh ] && /immich-devcontainer/container-start.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "dedicated",
|
||||
"showReuseMessage": true,
|
||||
"clear": false,
|
||||
"group": "Devcontainer tasks",
|
||||
"close": true
|
||||
},
|
||||
"runOptions": {
|
||||
"runOn": "default"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Immich API Server (Nest)",
|
||||
"dependsOn": ["Fix Permissions, Install Dependencies"],
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start-backend.sh ] && /immich-devcontainer/container-start-backend.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "dedicated",
|
||||
"showReuseMessage": true,
|
||||
"clear": false,
|
||||
"group": "Devcontainer tasks",
|
||||
"close": true
|
||||
},
|
||||
"runOptions": {
|
||||
"runOn": "default"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Immich Web Server (Vite)",
|
||||
"dependsOn": ["Fix Permissions, Install Dependencies"],
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start-frontend.sh ] && /immich-devcontainer/container-start-frontend.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "dedicated",
|
||||
"showReuseMessage": true,
|
||||
"clear": false,
|
||||
"group": "Devcontainer tasks",
|
||||
"close": true
|
||||
},
|
||||
"runOptions": {
|
||||
"runOn": "default"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Immich Server and Web",
|
||||
"dependsOn": ["Immich Web Server (Vite)", "Immich API Server (Nest)"],
|
||||
"runOptions": {
|
||||
"runOn": "folderOpen"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Build Immich CLI",
|
||||
"type": "shell",
|
||||
"command": "pnpm --filter cli build:dev"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -23,9 +23,21 @@ We generally discourage PRs entirely generated by an LLM. For any part generated
|
||||
|
||||
From time to time, we put a feature freeze on parts of the codebase. For us, this means we won't accept most PRs that make changes in that area. Exempted from this are simple bug fixes that require only minor changes. We will close feature PRs that target a feature-frozen area, even if that feature is highly requested and you put a lot of work into it. Please keep that in mind, and if you're ever uncertain if a PR would be accepted, reach out to us first (e.g., in the aforementioned `#contributing` channel). We hate to throw away work. Currently, we have feature freezes on:
|
||||
|
||||
* Sharing/Asset ownership
|
||||
* (External) libraries
|
||||
- Sharing/Asset ownership
|
||||
- (External) libraries
|
||||
|
||||
## Non-code contributions
|
||||
|
||||
If you want to contribute to Immich but you don't feel comfortable programming in our tech stack, there are other ways you can help the team. All our translations are done through [Weblate](https://hosted.weblate.org/projects/immich). These rely entirely on the community; if you speak a language that isn't fully translated yet, submitting translations there is greatly appreciated! If you like helping others, answering Q&A discussions here on GitHub and replying to people on our Discord is also always appreciated.
|
||||
If you want to contribute to Immich but you don't feel comfortable programming in our tech stack, there are other ways you can help the team.
|
||||
|
||||
### Translations
|
||||
|
||||
All our translations are done through [Weblate](https://hosted.weblate.org/projects/immich). These rely entirely on the community; if you speak a language that isn't fully translated yet, submitting translations there is greatly appreciated!
|
||||
|
||||
### Datasets
|
||||
|
||||
Help us improve our [Immich Datasets](https://datasets.immich.app) by submitting photos and videos taken from a variety of devices, including smartphones, DSLRs, and action cameras, as well as photos with unique features, such as panoramas, burst photos, and photo spheres. These datasets will be publically available for anyone to use, do not submit private/sensitive photos.
|
||||
|
||||
### Community support
|
||||
|
||||
If you like helping others, answering Q&A discussions here on GitHub and replying to people on our Discord is also always appreciated.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@immich/cli",
|
||||
"version": "2.2.105",
|
||||
"version": "2.5.6",
|
||||
"description": "Command Line Interface (CLI) for Immich",
|
||||
"type": "module",
|
||||
"exports": "./dist/index.js",
|
||||
@@ -20,7 +20,7 @@
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/micromatch": "^4.0.9",
|
||||
"@types/mock-fs": "^4.13.1",
|
||||
"@types/node": "^24.10.8",
|
||||
"@types/node": "^24.10.11",
|
||||
"@vitest/coverage-v8": "^3.0.0",
|
||||
"byte-size": "^9.0.0",
|
||||
"cli-progress": "^3.12.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[tools]
|
||||
terragrunt = "0.93.10"
|
||||
opentofu = "1.10.7"
|
||||
terragrunt = "0.98.0"
|
||||
opentofu = "1.11.4"
|
||||
|
||||
[tasks."tg:fmt"]
|
||||
run = "terragrunt hclfmt"
|
||||
|
||||
@@ -97,7 +97,7 @@ services:
|
||||
command: ['./run.sh', '-disable-reporting']
|
||||
ports:
|
||||
- 3000:3000
|
||||
image: grafana/grafana:12.3.1-ubuntu@sha256:d57f1365197aec34c4d80869d8ca45bb7787c7663904950dab214dfb40c1c2fd
|
||||
image: grafana/grafana:12.3.2-ubuntu@sha256:6cca4b429a1dc0d37d401dee54825c12d40056c3c6f3f56e3f0d6318ce77749b
|
||||
volumes:
|
||||
- grafana-data:/var/lib/grafana
|
||||
|
||||
|
||||
100
docker/docker-compose.rootless.yml
Normal file
100
docker/docker-compose.rootless.yml
Normal file
@@ -0,0 +1,100 @@
|
||||
#
|
||||
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
||||
#
|
||||
# Make sure to use the docker-compose.yml of the current release:
|
||||
#
|
||||
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
||||
#
|
||||
# The compose file on main may not be compatible with the latest release.
|
||||
|
||||
name: immich
|
||||
|
||||
services:
|
||||
immich-server:
|
||||
container_name: immich_server
|
||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||
# extends:
|
||||
# file: hwaccel.transcoding.yml
|
||||
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
||||
user: '1000:1000'
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
cap_drop:
|
||||
- NET_RAW
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||
- ${UPLOAD_LOCATION}:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- '2283:2283'
|
||||
depends_on:
|
||||
- redis
|
||||
- database
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
immich-machine-learning:
|
||||
container_name: immich_machine_learning
|
||||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||
# extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
|
||||
# file: hwaccel.ml.yml
|
||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||
user: '1000:1000'
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
cap_drop:
|
||||
- NET_RAW
|
||||
volumes:
|
||||
- ./ml-model-cache:/cache
|
||||
- ./ml-dotcache:/.cache
|
||||
- ./ml-config:/.config
|
||||
env_file:
|
||||
- .env
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:546304417feac0874c3dd576e0952c6bb8f06bb4093ea0c9ca303c73cf458f63
|
||||
user: '1000:1000'
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
cap_drop:
|
||||
- NET_RAW
|
||||
volumes:
|
||||
- ./redis:/data
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
||||
user: '1000:1000'
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
cap_drop:
|
||||
- NET_RAW
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_USER: ${DB_USERNAME}
|
||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
|
||||
# DB_STORAGE_TYPE: 'HDD'
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
|
||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||
shm_size: 128mb
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
volumes:
|
||||
model-cache:
|
||||
@@ -402,6 +402,9 @@ To decrease Redis logs, you can add the following line to the `redis:` section o
|
||||
### How can I run Immich as a non-root user?
|
||||
|
||||
You can change the user in the container by setting the `user` argument in `docker-compose.yml` for each service.
|
||||
|
||||
[Example docker-compose.yml file](https://github.com/immich-app/immich/blob/main/docker/docker-compose.rootless.yml)
|
||||
|
||||
You may need to add mount points or docker volumes for the following internal container paths:
|
||||
|
||||
- `immich-machine-learning:/.config`
|
||||
|
||||
@@ -140,7 +140,8 @@ For advanced users or automated recovery scenarios, you can restore a database b
|
||||
|
||||
```bash title='Backup'
|
||||
# Replace <DB_USERNAME> with the database username - usually postgres unless you have changed it.
|
||||
docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=<DB_USERNAME> | gzip > "/path/to/backup/dump.sql.gz"
|
||||
# Replace <DB_DATABASE_NAME> with the database name - usually immich unless you have changed it.
|
||||
docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=<DB_DATABASE_NAME> --username=<DB_USERNAME> | gzip > "/path/to/backup/dump.sql.gz"
|
||||
```
|
||||
|
||||
```bash title='Restore'
|
||||
@@ -153,9 +154,10 @@ docker start immich_postgres # Start Postgres server
|
||||
sleep 10 # Wait for Postgres server to start up
|
||||
# Check the database user if you deviated from the default
|
||||
# Replace <DB_USERNAME> with the database username - usually postgres unless you have changed it.
|
||||
# Replace <DB_DATABASE_NAME> with the database name - usually immich unless you have changed it.
|
||||
gunzip --stdout "/path/to/backup/dump.sql.gz" \
|
||||
| sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
|
||||
| docker exec -i immich_postgres psql --dbname=postgres --username=<DB_USERNAME> # Restore Backup
|
||||
| docker exec -i immich_postgres psql --dbname=<DB_DATABASE_NAME> --username=<DB_USERNAME> --single-transaction --set ON_ERROR_STOP=on # Restore Backup
|
||||
docker compose up -d # Start remainder of Immich apps
|
||||
```
|
||||
|
||||
@@ -164,7 +166,8 @@ docker compose up -d # Start remainder of Immich apps
|
||||
|
||||
```powershell title='Backup'
|
||||
# Replace <DB_USERNAME> with the database username - usually postgres unless you have changed it.
|
||||
[System.IO.File]::WriteAllLines("C:\absolute\path\to\backup\dump.sql", (docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=<DB_USERNAME>))
|
||||
# Replace <DB_DATABASE_NAME> with the database name - usually immich unless you have changed it.
|
||||
[System.IO.File]::WriteAllLines("C:\absolute\path\to\backup\dump.sql", (docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=<DB_DATABASE_NAME> --username=<DB_USERNAME>))
|
||||
```
|
||||
|
||||
```powershell title='Restore'
|
||||
@@ -179,8 +182,9 @@ sleep 10 # Wait for Postgres server to
|
||||
docker exec -it immich_postgres bash # Enter the Docker shell and run the following command
|
||||
# If your backup ends in `.gz`, replace `cat` with `gunzip --stdout`
|
||||
# Replace <DB_USERNAME> with the database username - usually postgres unless you have changed it.
|
||||
# Replace <DB_DATABASE_NAME> with the database name - usually immich unless you have changed it.
|
||||
|
||||
cat "/dump.sql" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" | psql --dbname=postgres --username=<DB_USERNAME>
|
||||
cat "/dump.sql" | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" | psql --dbname=<DB_DATABASE_NAME> --username=<DB_USERNAME> --single-transaction --set ON_ERROR_STOP=on
|
||||
exit # Exit the Docker shell
|
||||
docker compose up -d # Start remainder of Immich apps
|
||||
```
|
||||
@@ -188,6 +192,10 @@ docker compose up -d # Start remainder of Immich ap
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
:::warning
|
||||
The backup and restore process changed in v2.5.0, if you have a backup created with an older version of Immich, use the documentation version selector to find manual restore instructions for your backup.
|
||||
:::
|
||||
|
||||
:::note
|
||||
For the database restore to proceed properly, it requires a completely fresh install (i.e., the Immich server has never run since creating the Docker containers). If the Immich app has run, you may encounter Postgres conflicts (relation already exists, violated foreign key constraints, etc.). In this case, delete the `DB_DATA_LOCATION` folder to reset the database.
|
||||
:::
|
||||
@@ -196,6 +204,10 @@ For the database restore to proceed properly, it requires a completely fresh ins
|
||||
Some deployment methods make it difficult to start the database without also starting the server. In these cases, set the environment variable `DB_SKIP_MIGRATIONS=true` before starting the services. This prevents the server from running migrations that interfere with the restore process. Remove this variable and restart services after the database is restored.
|
||||
:::
|
||||
|
||||
:::tip
|
||||
The provided restore process ensures your database is never in a broken state by committing all changes in one transaction. This may be undesirable behaviour in some circumstances, you can disable it by removing `--single-transaction --set ON_ERROR_STOP=on` from the command.
|
||||
:::
|
||||
|
||||
## Filesystem
|
||||
|
||||
Immich stores two types of content in the filesystem: (a) original, unmodified assets (photos and videos), and (b) generated content. We recommend backing up the entire contents of `UPLOAD_LOCATION`, but only the original content is critical, which is stored in the following folders:
|
||||
|
||||
@@ -56,11 +56,13 @@ Once you have a new OAuth client application configured, Immich can be configure
|
||||
| Setting | Type | Default | Description |
|
||||
| ---------------------------------------------------- | ------- | -------------------- | ----------------------------------------------------------------------------------- |
|
||||
| Enabled | boolean | false | Enable/disable OAuth |
|
||||
| Issuer URL | URL | (required) | Required. Self-discovery URL for client (from previous step) |
|
||||
| Client ID | string | (required) | Required. Client ID (from previous step) |
|
||||
| Client Secret | string | (required) | Required. Client Secret (previous step) |
|
||||
| Scope | string | openid email profile | Full list of scopes to send with the request (space delimited) |
|
||||
| Signing Algorithm | string | RS256 | The algorithm used to sign the id token (examples: RS256, HS256) |
|
||||
| `issuer_url` | URL | (required) | Required. Self-discovery URL for client (from previous step) |
|
||||
| `client_id` | string | (required) | Required. Client ID (from previous step) |
|
||||
| `client_secret` | string | (required) | Required. Client Secret (previous step) |
|
||||
| `scope` | string | openid email profile | Full list of scopes to send with the request (space delimited) |
|
||||
| `id_token_signed_response_alg` | string | RS256 | The algorithm used to sign the id token (examples: RS256, HS256) |
|
||||
| `userinfo_signed_response_alg` | string | none | The algorithm used to sign the userinfo response (examples: RS256, HS256) |
|
||||
| Request timeout | string | 30,000 (30 seconds) | Number of milliseconds to wait for http requests to complete before giving up |
|
||||
| Storage Label Claim | string | preferred_username | Claim mapping for the user's storage label**¹** |
|
||||
| Role Claim | string | immich_role | Claim mapping for the user's role. (should return "user" or "admin")**¹** |
|
||||
| Storage Quota Claim | string | immich_quota | Claim mapping for the user's storage**¹** |
|
||||
|
||||
@@ -88,7 +88,7 @@ The easiest option is to have both extensions installed during the migration:
|
||||
<details>
|
||||
<summary>Migration steps (automatic)</summary>
|
||||
1. Ensure you still have pgvecto.rs installed
|
||||
2. Install `pgvector` (`>= 0.7.0, < 1.0.0`). The easiest way to do this is on Debian/Ubuntu by adding the [PostgreSQL Apt repository][pg-apt] and then running `apt install postgresql-NN-pgvector`, where `NN` is your Postgres version (e.g., `16`)
|
||||
2. Install `pgvector` (`>= 0.7, < 0.9`). The easiest way to do this is on Debian/Ubuntu by adding the [PostgreSQL Apt repository][pg-apt] and then running `apt install postgresql-NN-pgvector`, where `NN` is your Postgres version (e.g., `16`)
|
||||
3. [Install VectorChord][vchord-install]
|
||||
4. Add `shared_preload_libraries= 'vchord.so, vectors.so'` to your `postgresql.conf`, making sure to include _both_ `vchord.so` and `vectors.so`. You may include other libraries here as well if needed
|
||||
5. Restart the Postgres database
|
||||
|
||||
@@ -98,7 +98,6 @@ entryPoints:
|
||||
respondingTimeouts:
|
||||
readTimeout: 600s
|
||||
idleTimeout: 600s
|
||||
writeTimeout: 600s
|
||||
```
|
||||
|
||||
The second part is in the `docker-compose.yml` file where immich is in. Add the Traefik specific labels like in the example.
|
||||
|
||||
@@ -90,10 +90,13 @@ To see local changes to `@immich/ui` in Immich, do the following:
|
||||
|
||||
#### Setup
|
||||
|
||||
1. Setup Flutter toolchain using FVM.
|
||||
2. Run `flutter pub get` to install the dependencies.
|
||||
3. Run `make translation` to generate the translation file.
|
||||
4. Run `fvm flutter run` to start the app.
|
||||
1. [Install mise](https://mise.jdx.dev/installing-mise.html).
|
||||
2. Change to the immich (root) directory and trust the mise config with `mise trust`.
|
||||
3. Install tools with mise: `mise install`.
|
||||
4. Change to the `mobile/` directory.
|
||||
5. Run `flutter pub get` to install the dependencies.
|
||||
6. Run `make translation` to generate the translation file.
|
||||
7. Run `flutter run` to start the app.
|
||||
|
||||
#### Translation
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@ For example to get a list of files that would be uploaded for further
|
||||
processing:
|
||||
|
||||
```bash
|
||||
immich upload --dry-run . | tail -n +6 | jq .newFiles[]
|
||||
immich upload --dry-run --json-output . | tail -n +6 | jq .newFiles[]
|
||||
```
|
||||
|
||||
### Obtain the API Key
|
||||
|
||||
@@ -86,8 +86,8 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
||||
## Setup
|
||||
|
||||
1. If you do not already have it, download the latest [`hwaccel.ml.yml`][hw-file] file and ensure it's in the same folder as the `docker-compose.yml`.
|
||||
2. In the `docker-compose.yml` under `immich-machine-learning`, uncomment the `extends` section and change `cpu` to the appropriate backend.
|
||||
3. Still in `immich-machine-learning`, add one of -[armnn, cuda, rocm, openvino, rknn] to the `image` section's tag at the end of the line.
|
||||
2. In `immich-machine-learning`, add one of -[armnn, cuda, rocm, openvino, rknn] to the `image` section's tag at the end of the line.
|
||||
3. Still in the `docker-compose.yml` under `immich-machine-learning`, uncomment the `extends` section and change `cpu` to the appropriate backend.
|
||||
4. Redeploy the `immich-machine-learning` container with these updated settings.
|
||||
|
||||
### Confirming Device Usage
|
||||
|
||||
@@ -66,7 +66,7 @@ Now make sure that the local album is selected in the backup screen (steps 1-2 a
|
||||
- **Keep on device:** You can choose to restrict removal to `Always keep` **All photos** or **All videos**, regardless of other settings. This setting can hamper freeing up space significantly — with 80 GB of videos and 40 GB photos, selecting `Always keep photos` retains thousands of photos on your device.
|
||||
|
||||
2. **Scan & Review:** Before any files are removed, you are presented with a review screen to verify which items will be deleted and how much storage is reclamable.
|
||||
3. **Deletion:** Confirmed items are moved to your device's native Trash/Recycle Bin.
|
||||
3. **Deletion:** Confirmed items are moved to your device's native Trash/Recycle Bin. For large queues, Immich processes deletion in batches for stability (`2000` assets per batch on Android, `10000` per batch on iOS).
|
||||
|
||||
:::info reclaim storage
|
||||
To use the reclaimed space right away, you must empty the system/gallery trash manually outside of Immich.
|
||||
|
||||
@@ -26,6 +26,16 @@ docker image prune
|
||||
[breaking]: https://github.com/immich-app/immich/discussions?discussions_q=label%3Achangelog%3Abreaking-change+sort%3Adate_created
|
||||
[releases]: https://github.com/immich-app/immich/releases
|
||||
|
||||
## Versioning Policy
|
||||
|
||||
Immich follows [semantic versioning][semver], which tags releases in the format `<major>.<minor>.<patch>`. We intend for breaking changes to be limited to major version releases.
|
||||
You can configure your Docker image to point to the current major version by using a metatag, such as `:v2`.
|
||||
|
||||
Currently, we have no plans to backport patches to earlier versions. We encourage all users to run the most recent release of Immich.
|
||||
Switching back to an earlier version, even within the same minor release tag, is not supported.
|
||||
|
||||
[semver]: https://semver.org/
|
||||
|
||||
## Migrating to VectorChord
|
||||
|
||||
:::info
|
||||
|
||||
32
docs/static/archived-versions.json
vendored
32
docs/static/archived-versions.json
vendored
@@ -1,36 +1,20 @@
|
||||
[
|
||||
{
|
||||
"label": "v2.5.6",
|
||||
"url": "https://docs.v2.5.6.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.4.1",
|
||||
"url": "https://docs.v2.4.1.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.4.0",
|
||||
"url": "https://docs.v2.4.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.3.1",
|
||||
"url": "https://docs.v2.3.1.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.3.0",
|
||||
"url": "https://docs.v2.3.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.2.3",
|
||||
"url": "https://docs.v2.2.3.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.2.2",
|
||||
"url": "https://docs.v2.2.2.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.2.1",
|
||||
"url": "https://docs.v2.2.1.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.2.0",
|
||||
"url": "https://docs.v2.2.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.1.0",
|
||||
"url": "https://docs.v2.1.0.archive.immich.app"
|
||||
@@ -39,18 +23,10 @@
|
||||
"label": "v2.0.1",
|
||||
"url": "https://docs.v2.0.1.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.0.0",
|
||||
"url": "https://docs.v2.0.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.144.1",
|
||||
"url": "https://docs.v1.144.1.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.144.0",
|
||||
"url": "https://docs.v1.144.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.143.1",
|
||||
"url": "https://docs.v1.143.1.archive.immich.app"
|
||||
|
||||
@@ -70,7 +70,7 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
redis:
|
||||
image: redis:6.2-alpine@sha256:37e002448575b32a599109664107e374c8709546905c372a34d64919043b9ceb
|
||||
image: redis:6.2-alpine@sha256:46884be93652d02a96a176ccf173d1040bef365c5706aa7b6a1931caec8bfeef
|
||||
|
||||
database:
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0@sha256:6f3e9d2c2177af16c2988ff71425d79d89ca630ec2f9c8db03209ab716542338
|
||||
|
||||
@@ -42,7 +42,7 @@ services:
|
||||
- 2285:2285
|
||||
|
||||
redis:
|
||||
image: redis:6.2-alpine@sha256:37e002448575b32a599109664107e374c8709546905c372a34d64919043b9ceb
|
||||
image: redis:6.2-alpine@sha256:46884be93652d02a96a176ccf173d1040bef365c5706aa7b6a1931caec8bfeef
|
||||
|
||||
database:
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0@sha256:6f3e9d2c2177af16c2988ff71425d79d89ca630ec2f9c8db03209ab716542338
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "immich-e2e",
|
||||
"version": "2.4.1",
|
||||
"version": "2.5.6",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
@@ -27,7 +27,7 @@
|
||||
"@playwright/test": "^1.44.1",
|
||||
"@socket.io/component-emitter": "^3.1.2",
|
||||
"@types/luxon": "^3.4.2",
|
||||
"@types/node": "^24.10.8",
|
||||
"@types/node": "^24.10.11",
|
||||
"@types/pg": "^8.15.1",
|
||||
"@types/pngjs": "^6.0.4",
|
||||
"@types/supertest": "^6.0.2",
|
||||
|
||||
@@ -14,7 +14,8 @@ export const playwrightDisableWebserver = process.env.PLAYWRIGHT_DISABLE_WEBSERV
|
||||
process.env.PW_EXPERIMENTAL_SERVICE_WORKER_NETWORK_EVENTS = '1';
|
||||
|
||||
const config: PlaywrightTestConfig = {
|
||||
testDir: './src/web/specs',
|
||||
testDir: './src/specs/server',
|
||||
testMatch: /.*\.e2e-spec\.ts/,
|
||||
fullyParallel: false,
|
||||
forbidOnly: !!process.env.CI,
|
||||
retries: process.env.CI ? 4 : 0,
|
||||
@@ -28,54 +29,28 @@ const config: PlaywrightTestConfig = {
|
||||
},
|
||||
},
|
||||
|
||||
testMatch: /.*\.e2e-spec\.ts/,
|
||||
|
||||
workers: process.env.CI ? 4 : Math.round(cpus().length * 0.75),
|
||||
|
||||
projects: [
|
||||
{
|
||||
name: 'chromium',
|
||||
name: 'web',
|
||||
use: { ...devices['Desktop Chrome'] },
|
||||
testMatch: /.*\.e2e-spec\.ts/,
|
||||
testDir: './src/specs/web',
|
||||
workers: 1,
|
||||
},
|
||||
{
|
||||
name: 'ui',
|
||||
use: { ...devices['Desktop Chrome'] },
|
||||
testMatch: /.*\.ui-spec\.ts/,
|
||||
testDir: './src/ui/specs',
|
||||
fullyParallel: true,
|
||||
workers: process.env.CI ? 3 : Math.max(1, Math.round(cpus().length * 0.75) - 1),
|
||||
},
|
||||
|
||||
// {
|
||||
// name: 'firefox',
|
||||
// use: { ...devices['Desktop Firefox'] },
|
||||
// },
|
||||
|
||||
// {
|
||||
// name: 'webkit',
|
||||
// use: { ...devices['Desktop Safari'] },
|
||||
// },
|
||||
|
||||
/* Test against mobile viewports. */
|
||||
// {
|
||||
// name: 'Mobile Chrome',
|
||||
// use: { ...devices['Pixel 5'] },
|
||||
// },
|
||||
// {
|
||||
// name: 'Mobile Safari',
|
||||
// use: { ...devices['iPhone 12'] },
|
||||
// },
|
||||
|
||||
/* Test against branded browsers. */
|
||||
// {
|
||||
// name: 'Microsoft Edge',
|
||||
// use: { ...devices['Desktop Edge'], channel: 'msedge' },
|
||||
// },
|
||||
// {
|
||||
// name: 'Google Chrome',
|
||||
// use: { ...devices['Desktop Chrome'], channel: 'chrome' },
|
||||
// },
|
||||
{
|
||||
name: 'maintenance',
|
||||
use: { ...devices['Desktop Chrome'] },
|
||||
testDir: './src/specs/maintenance',
|
||||
workers: 1,
|
||||
},
|
||||
],
|
||||
|
||||
/* Run your local dev server before starting the tests */
|
||||
|
||||
@@ -473,6 +473,7 @@ describe('/asset', () => {
|
||||
id: user1Assets[0].id,
|
||||
exifInfo: expect.objectContaining({
|
||||
dateTimeOriginal: '2023-11-20T01:11:00+00:00',
|
||||
timeZone: 'UTC-7',
|
||||
}),
|
||||
});
|
||||
expect(status).toEqual(200);
|
||||
2
e2e/src/ui/generators/memory.ts
Normal file
2
e2e/src/ui/generators/memory.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export { generateMemoriesFromTimeline, generateMemory } from './memory/model-objects';
|
||||
export type { MemoryConfig, MemoryYearConfig } from './memory/model-objects';
|
||||
84
e2e/src/ui/generators/memory/model-objects.ts
Normal file
84
e2e/src/ui/generators/memory/model-objects.ts
Normal file
@@ -0,0 +1,84 @@
|
||||
import { faker } from '@faker-js/faker';
|
||||
import { MemoryType, type MemoryResponseDto, type OnThisDayDto } from '@immich/sdk';
|
||||
import { DateTime } from 'luxon';
|
||||
import { toAssetResponseDto } from 'src/ui/generators/timeline/rest-response';
|
||||
import type { MockTimelineAsset } from 'src/ui/generators/timeline/timeline-config';
|
||||
import { SeededRandom, selectRandomMultiple } from 'src/ui/generators/timeline/utils';
|
||||
|
||||
export type MemoryConfig = {
|
||||
id?: string;
|
||||
ownerId: string;
|
||||
year: number;
|
||||
memoryAt: string;
|
||||
isSaved?: boolean;
|
||||
};
|
||||
|
||||
export type MemoryYearConfig = {
|
||||
year: number;
|
||||
assetCount: number;
|
||||
};
|
||||
|
||||
export function generateMemory(config: MemoryConfig, assets: MockTimelineAsset[]): MemoryResponseDto {
|
||||
const now = new Date().toISOString();
|
||||
const memoryId = config.id ?? faker.string.uuid();
|
||||
|
||||
return {
|
||||
id: memoryId,
|
||||
assets: assets.map((asset) => toAssetResponseDto(asset)),
|
||||
data: { year: config.year } as OnThisDayDto,
|
||||
memoryAt: config.memoryAt,
|
||||
createdAt: now,
|
||||
updatedAt: now,
|
||||
isSaved: config.isSaved ?? false,
|
||||
ownerId: config.ownerId,
|
||||
type: MemoryType.OnThisDay,
|
||||
};
|
||||
}
|
||||
|
||||
export function generateMemoriesFromTimeline(
|
||||
timelineAssets: MockTimelineAsset[],
|
||||
ownerId: string,
|
||||
memoryConfigs: MemoryYearConfig[],
|
||||
seed: number = 42,
|
||||
): MemoryResponseDto[] {
|
||||
const rng = new SeededRandom(seed);
|
||||
const memories: MemoryResponseDto[] = [];
|
||||
const usedAssetIds = new Set<string>();
|
||||
|
||||
for (const config of memoryConfigs) {
|
||||
const yearAssets = timelineAssets.filter((asset) => {
|
||||
const assetYear = DateTime.fromISO(asset.fileCreatedAt).year;
|
||||
return assetYear === config.year && !usedAssetIds.has(asset.id);
|
||||
});
|
||||
|
||||
if (yearAssets.length === 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const countToSelect = Math.min(config.assetCount, yearAssets.length);
|
||||
const selectedAssets = selectRandomMultiple(yearAssets, countToSelect, rng);
|
||||
|
||||
for (const asset of selectedAssets) {
|
||||
usedAssetIds.add(asset.id);
|
||||
}
|
||||
|
||||
selectedAssets.sort(
|
||||
(a, b) => DateTime.fromISO(b.fileCreatedAt).diff(DateTime.fromISO(a.fileCreatedAt)).milliseconds,
|
||||
);
|
||||
|
||||
const memoryAt = DateTime.now().set({ year: config.year }).toISO()!;
|
||||
|
||||
memories.push(
|
||||
generateMemory(
|
||||
{
|
||||
ownerId,
|
||||
year: config.year,
|
||||
memoryAt,
|
||||
},
|
||||
selectedAssets,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return memories;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { generateConsecutiveDays, generateDayAssets } from 'src/generators/timeline/model-objects';
|
||||
import { SeededRandom, selectRandomDays } from 'src/generators/timeline/utils';
|
||||
import { generateConsecutiveDays, generateDayAssets } from 'src/ui/generators/timeline/model-objects';
|
||||
import { SeededRandom, selectRandomDays } from 'src/ui/generators/timeline/utils';
|
||||
import type { MockTimelineAsset } from './timeline-config';
|
||||
import { GENERATION_CONSTANTS } from './timeline-config';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import sharp from 'sharp';
|
||||
import { SeededRandom } from 'src/generators/timeline/utils';
|
||||
import { SeededRandom } from 'src/ui/generators/timeline/utils';
|
||||
|
||||
export const randomThumbnail = async (seed: string, ratio: number) => {
|
||||
const height = 235;
|
||||
@@ -6,7 +6,7 @@ import { faker } from '@faker-js/faker';
|
||||
import { AssetVisibility } from '@immich/sdk';
|
||||
import { DateTime } from 'luxon';
|
||||
import { writeFileSync } from 'node:fs';
|
||||
import { SeededRandom } from 'src/generators/timeline/utils';
|
||||
import { SeededRandom } from 'src/ui/generators/timeline/utils';
|
||||
import type { DayPattern, MonthDistribution } from './distribution-patterns';
|
||||
import { ASSET_DISTRIBUTION, DAY_DISTRIBUTION } from './distribution-patterns';
|
||||
import type { MockTimelineAsset, MockTimelineData, SerializedTimelineData, TimelineConfig } from './timeline-config';
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
} from '@immich/sdk';
|
||||
import { DateTime } from 'luxon';
|
||||
import { signupDto } from 'src/fixtures';
|
||||
import { parseTimeBucketKey } from 'src/generators/timeline/utils';
|
||||
import { parseTimeBucketKey } from 'src/ui/generators/timeline/utils';
|
||||
import type { MockTimelineAsset, MockTimelineData } from './timeline-config';
|
||||
|
||||
/**
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { AssetVisibility } from '@immich/sdk';
|
||||
import { DayPattern, MonthDistribution } from 'src/generators/timeline/distribution-patterns';
|
||||
import { DayPattern, MonthDistribution } from 'src/ui/generators/timeline/distribution-patterns';
|
||||
|
||||
// Constants for generation parameters
|
||||
export const GENERATION_CONSTANTS = {
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import { GENERATION_CONSTANTS, MockTimelineAsset } from 'src/generators/timeline/timeline-config';
|
||||
import { GENERATION_CONSTANTS, MockTimelineAsset } from 'src/ui/generators/timeline/timeline-config';
|
||||
|
||||
/**
|
||||
* Linear Congruential Generator for deterministic pseudo-random numbers
|
||||
65
e2e/src/ui/mock-network/memory-network.ts
Normal file
65
e2e/src/ui/mock-network/memory-network.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
import type { MemoryResponseDto } from '@immich/sdk';
|
||||
import { BrowserContext } from '@playwright/test';
|
||||
|
||||
export type MemoryChanges = {
|
||||
memoryDeletions: string[];
|
||||
assetRemovals: Map<string, string[]>;
|
||||
};
|
||||
|
||||
export const setupMemoryMockApiRoutes = async (
|
||||
context: BrowserContext,
|
||||
memories: MemoryResponseDto[],
|
||||
changes: MemoryChanges,
|
||||
) => {
|
||||
await context.route('**/api/memories*', async (route, request) => {
|
||||
const url = new URL(request.url());
|
||||
const pathname = url.pathname;
|
||||
|
||||
if (pathname === '/api/memories' && request.method() === 'GET') {
|
||||
const activeMemories = memories
|
||||
.filter((memory) => !changes.memoryDeletions.includes(memory.id))
|
||||
.map((memory) => {
|
||||
const removedAssets = changes.assetRemovals.get(memory.id) ?? [];
|
||||
return {
|
||||
...memory,
|
||||
assets: memory.assets.filter((asset) => !removedAssets.includes(asset.id)),
|
||||
};
|
||||
})
|
||||
.filter((memory) => memory.assets.length > 0);
|
||||
|
||||
return route.fulfill({
|
||||
status: 200,
|
||||
contentType: 'application/json',
|
||||
json: activeMemories,
|
||||
});
|
||||
}
|
||||
|
||||
const memoryMatch = pathname.match(/\/api\/memories\/([^/]+)$/);
|
||||
if (memoryMatch && request.method() === 'GET') {
|
||||
const memoryId = memoryMatch[1];
|
||||
const memory = memories.find((m) => m.id === memoryId);
|
||||
|
||||
if (!memory || changes.memoryDeletions.includes(memoryId)) {
|
||||
return route.fulfill({ status: 404 });
|
||||
}
|
||||
|
||||
const removedAssets = changes.assetRemovals.get(memoryId) ?? [];
|
||||
return route.fulfill({
|
||||
status: 200,
|
||||
contentType: 'application/json',
|
||||
json: {
|
||||
...memory,
|
||||
assets: memory.assets.filter((asset) => !removedAssets.includes(asset.id)),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
if (/\/api\/memories\/([^/]+)$/.test(pathname) && request.method() === 'DELETE') {
|
||||
const memoryId = pathname.split('/').pop()!;
|
||||
changes.memoryDeletions.push(memoryId);
|
||||
return route.fulfill({ status: 204 });
|
||||
}
|
||||
|
||||
await route.fallback();
|
||||
});
|
||||
};
|
||||
@@ -10,8 +10,8 @@ import {
|
||||
randomPreview,
|
||||
randomThumbnail,
|
||||
TimelineData,
|
||||
} from 'src/generators/timeline';
|
||||
import { sleep } from 'src/web/specs/timeline/utils';
|
||||
} from 'src/ui/generators/timeline';
|
||||
import { sleep } from 'src/ui/specs/timeline/utils';
|
||||
|
||||
export class TimelineTestContext {
|
||||
slowBucket = false;
|
||||
@@ -8,11 +8,11 @@ import {
|
||||
selectRandom,
|
||||
TimelineAssetConfig,
|
||||
TimelineData,
|
||||
} from 'src/generators/timeline';
|
||||
import { setupBaseMockApiRoutes } from 'src/mock-network/base-network';
|
||||
import { setupTimelineMockApiRoutes, TimelineTestContext } from 'src/mock-network/timeline-network';
|
||||
} from 'src/ui/generators/timeline';
|
||||
import { setupBaseMockApiRoutes } from 'src/ui/mock-network/base-network';
|
||||
import { setupTimelineMockApiRoutes, TimelineTestContext } from 'src/ui/mock-network/timeline-network';
|
||||
import { utils } from 'src/utils';
|
||||
import { assetViewerUtils } from 'src/web/specs/timeline/utils';
|
||||
import { assetViewerUtils } from '../timeline/utils';
|
||||
|
||||
test.describe.configure({ mode: 'parallel' });
|
||||
test.describe('asset-viewer', () => {
|
||||
289
e2e/src/ui/specs/memory/memory-viewer.e2e-spec.ts
Normal file
289
e2e/src/ui/specs/memory/memory-viewer.e2e-spec.ts
Normal file
@@ -0,0 +1,289 @@
|
||||
import { faker } from '@faker-js/faker';
|
||||
import type { MemoryResponseDto } from '@immich/sdk';
|
||||
import { test } from '@playwright/test';
|
||||
import { generateMemoriesFromTimeline } from 'src/ui/generators/memory';
|
||||
import {
|
||||
Changes,
|
||||
createDefaultTimelineConfig,
|
||||
generateTimelineData,
|
||||
TimelineAssetConfig,
|
||||
TimelineData,
|
||||
} from 'src/ui/generators/timeline';
|
||||
import { setupBaseMockApiRoutes } from 'src/ui/mock-network/base-network';
|
||||
import { MemoryChanges, setupMemoryMockApiRoutes } from 'src/ui/mock-network/memory-network';
|
||||
import { setupTimelineMockApiRoutes, TimelineTestContext } from 'src/ui/mock-network/timeline-network';
|
||||
import { memoryAssetViewerUtils, memoryGalleryUtils, memoryViewerUtils } from './utils';
|
||||
|
||||
test.describe.configure({ mode: 'parallel' });
|
||||
|
||||
test.describe('Memory Viewer - Gallery Asset Viewer Navigation', () => {
|
||||
let adminUserId: string;
|
||||
let timelineRestData: TimelineData;
|
||||
let memories: MemoryResponseDto[];
|
||||
const assets: TimelineAssetConfig[] = [];
|
||||
const testContext = new TimelineTestContext();
|
||||
const changes: Changes = {
|
||||
albumAdditions: [],
|
||||
assetDeletions: [],
|
||||
assetArchivals: [],
|
||||
assetFavorites: [],
|
||||
};
|
||||
const memoryChanges: MemoryChanges = {
|
||||
memoryDeletions: [],
|
||||
assetRemovals: new Map(),
|
||||
};
|
||||
|
||||
test.beforeAll(async () => {
|
||||
adminUserId = faker.string.uuid();
|
||||
testContext.adminId = adminUserId;
|
||||
|
||||
timelineRestData = generateTimelineData({
|
||||
...createDefaultTimelineConfig(),
|
||||
ownerId: adminUserId,
|
||||
});
|
||||
|
||||
for (const timeBucket of timelineRestData.buckets.values()) {
|
||||
assets.push(...timeBucket);
|
||||
}
|
||||
|
||||
memories = generateMemoriesFromTimeline(
|
||||
assets,
|
||||
adminUserId,
|
||||
[
|
||||
{ year: 2024, assetCount: 3 },
|
||||
{ year: 2023, assetCount: 2 },
|
||||
{ year: 2022, assetCount: 4 },
|
||||
],
|
||||
42,
|
||||
);
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ context }) => {
|
||||
await setupBaseMockApiRoutes(context, adminUserId);
|
||||
await setupTimelineMockApiRoutes(context, timelineRestData, changes, testContext);
|
||||
await setupMemoryMockApiRoutes(context, memories, memoryChanges);
|
||||
});
|
||||
|
||||
test.afterEach(() => {
|
||||
testContext.slowBucket = false;
|
||||
changes.albumAdditions = [];
|
||||
changes.assetDeletions = [];
|
||||
changes.assetArchivals = [];
|
||||
changes.assetFavorites = [];
|
||||
memoryChanges.memoryDeletions = [];
|
||||
memoryChanges.assetRemovals.clear();
|
||||
});
|
||||
|
||||
test.describe('Asset viewer navigation from gallery', () => {
|
||||
test('shows both prev/next buttons for middle asset within a memory', async ({ page }) => {
|
||||
const firstMemory = memories[0];
|
||||
const middleAsset = firstMemory.assets[1];
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, middleAsset.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, middleAsset.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, middleAsset);
|
||||
|
||||
await memoryAssetViewerUtils.expectPreviousButtonVisible(page);
|
||||
await memoryAssetViewerUtils.expectNextButtonVisible(page);
|
||||
});
|
||||
|
||||
test('shows next button when at last asset of first memory (next memory exists)', async ({ page }) => {
|
||||
const firstMemory = memories[0];
|
||||
const lastAssetOfFirstMemory = firstMemory.assets.at(-1)!;
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, lastAssetOfFirstMemory.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, lastAssetOfFirstMemory.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, lastAssetOfFirstMemory);
|
||||
|
||||
await memoryAssetViewerUtils.expectNextButtonVisible(page);
|
||||
await memoryAssetViewerUtils.expectPreviousButtonVisible(page);
|
||||
});
|
||||
|
||||
test('shows prev button when at first asset of last memory (prev memory exists)', async ({ page }) => {
|
||||
const lastMemory = memories.at(-1)!;
|
||||
const firstAssetOfLastMemory = lastMemory.assets[0];
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, firstAssetOfLastMemory.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, firstAssetOfLastMemory.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, firstAssetOfLastMemory);
|
||||
|
||||
await memoryAssetViewerUtils.expectPreviousButtonVisible(page);
|
||||
await memoryAssetViewerUtils.expectNextButtonVisible(page);
|
||||
});
|
||||
|
||||
test('can navigate from last asset of memory to first asset of next memory', async ({ page }) => {
|
||||
const firstMemory = memories[0];
|
||||
const secondMemory = memories[1];
|
||||
const lastAssetOfFirst = firstMemory.assets.at(-1)!;
|
||||
const firstAssetOfSecond = secondMemory.assets[0];
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, lastAssetOfFirst.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, lastAssetOfFirst.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, lastAssetOfFirst);
|
||||
|
||||
await memoryAssetViewerUtils.clickNextButton(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, firstAssetOfSecond);
|
||||
|
||||
await memoryAssetViewerUtils.expectCurrentAssetId(page, firstAssetOfSecond.id);
|
||||
});
|
||||
|
||||
test('can navigate from first asset of memory to last asset of previous memory', async ({ page }) => {
|
||||
const firstMemory = memories[0];
|
||||
const secondMemory = memories[1];
|
||||
const lastAssetOfFirst = firstMemory.assets.at(-1)!;
|
||||
const firstAssetOfSecond = secondMemory.assets[0];
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, firstAssetOfSecond.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, firstAssetOfSecond.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, firstAssetOfSecond);
|
||||
|
||||
await memoryAssetViewerUtils.clickPreviousButton(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, lastAssetOfFirst);
|
||||
});
|
||||
|
||||
test('hides prev button at very first asset (first memory, first asset, no prev memory)', async ({ page }) => {
|
||||
const firstMemory = memories[0];
|
||||
const veryFirstAsset = firstMemory.assets[0];
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, veryFirstAsset.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, veryFirstAsset.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, veryFirstAsset);
|
||||
|
||||
await memoryAssetViewerUtils.expectPreviousButtonNotVisible(page);
|
||||
await memoryAssetViewerUtils.expectNextButtonVisible(page);
|
||||
});
|
||||
|
||||
test('hides next button at very last asset (last memory, last asset, no next memory)', async ({ page }) => {
|
||||
const lastMemory = memories.at(-1)!;
|
||||
const veryLastAsset = lastMemory.assets.at(-1)!;
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, veryLastAsset.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, veryLastAsset.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, veryLastAsset);
|
||||
|
||||
await memoryAssetViewerUtils.expectNextButtonNotVisible(page);
|
||||
await memoryAssetViewerUtils.expectPreviousButtonVisible(page);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('Keyboard navigation', () => {
|
||||
test('ArrowLeft navigates to previous asset across memory boundary', async ({ page }) => {
|
||||
const firstMemory = memories[0];
|
||||
const secondMemory = memories[1];
|
||||
const lastAssetOfFirst = firstMemory.assets.at(-1)!;
|
||||
const firstAssetOfSecond = secondMemory.assets[0];
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, firstAssetOfSecond.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, firstAssetOfSecond.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, firstAssetOfSecond);
|
||||
|
||||
await page.keyboard.press('ArrowLeft');
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, lastAssetOfFirst);
|
||||
});
|
||||
|
||||
test('ArrowRight navigates to next asset across memory boundary', async ({ page }) => {
|
||||
const firstMemory = memories[0];
|
||||
const secondMemory = memories[1];
|
||||
const lastAssetOfFirst = firstMemory.assets.at(-1)!;
|
||||
const firstAssetOfSecond = secondMemory.assets[0];
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, lastAssetOfFirst.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, lastAssetOfFirst.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, lastAssetOfFirst);
|
||||
|
||||
await page.keyboard.press('ArrowRight');
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, firstAssetOfSecond);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('Memory Viewer - Single Asset Memory Edge Cases', () => {
|
||||
let adminUserId: string;
|
||||
let timelineRestData: TimelineData;
|
||||
let memories: MemoryResponseDto[];
|
||||
const assets: TimelineAssetConfig[] = [];
|
||||
const testContext = new TimelineTestContext();
|
||||
const changes: Changes = {
|
||||
albumAdditions: [],
|
||||
assetDeletions: [],
|
||||
assetArchivals: [],
|
||||
assetFavorites: [],
|
||||
};
|
||||
const memoryChanges: MemoryChanges = {
|
||||
memoryDeletions: [],
|
||||
assetRemovals: new Map(),
|
||||
};
|
||||
|
||||
test.beforeAll(async () => {
|
||||
adminUserId = faker.string.uuid();
|
||||
testContext.adminId = adminUserId;
|
||||
|
||||
timelineRestData = generateTimelineData({
|
||||
...createDefaultTimelineConfig(),
|
||||
ownerId: adminUserId,
|
||||
});
|
||||
|
||||
for (const timeBucket of timelineRestData.buckets.values()) {
|
||||
assets.push(...timeBucket);
|
||||
}
|
||||
|
||||
memories = generateMemoriesFromTimeline(
|
||||
assets,
|
||||
adminUserId,
|
||||
[
|
||||
{ year: 2024, assetCount: 2 },
|
||||
{ year: 2023, assetCount: 1 },
|
||||
{ year: 2022, assetCount: 2 },
|
||||
],
|
||||
123,
|
||||
);
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ context }) => {
|
||||
await setupBaseMockApiRoutes(context, adminUserId);
|
||||
await setupTimelineMockApiRoutes(context, timelineRestData, changes, testContext);
|
||||
await setupMemoryMockApiRoutes(context, memories, memoryChanges);
|
||||
});
|
||||
|
||||
test.afterEach(() => {
|
||||
testContext.slowBucket = false;
|
||||
changes.albumAdditions = [];
|
||||
changes.assetDeletions = [];
|
||||
changes.assetArchivals = [];
|
||||
changes.assetFavorites = [];
|
||||
memoryChanges.memoryDeletions = [];
|
||||
memoryChanges.assetRemovals.clear();
|
||||
});
|
||||
|
||||
test('single asset memory shows both prev/next when surrounded by other memories', async ({ page }) => {
|
||||
const singleAssetMemory = memories[1];
|
||||
const singleAsset = singleAssetMemory.assets[0];
|
||||
|
||||
await memoryViewerUtils.openMemoryPageWithAsset(page, singleAsset.id);
|
||||
await memoryGalleryUtils.clickThumbnail(page, singleAsset.id);
|
||||
|
||||
await memoryAssetViewerUtils.waitForViewerOpen(page);
|
||||
await memoryAssetViewerUtils.waitForAssetLoad(page, singleAsset);
|
||||
|
||||
await memoryAssetViewerUtils.expectPreviousButtonVisible(page);
|
||||
await memoryAssetViewerUtils.expectNextButtonVisible(page);
|
||||
});
|
||||
});
|
||||
123
e2e/src/ui/specs/memory/utils.ts
Normal file
123
e2e/src/ui/specs/memory/utils.ts
Normal file
@@ -0,0 +1,123 @@
|
||||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
import { expect, Page } from '@playwright/test';
|
||||
|
||||
function getAssetIdFromUrl(url: URL): string | null {
|
||||
const pathMatch = url.pathname.match(/\/memory\/photos\/([^/]+)/);
|
||||
if (pathMatch) {
|
||||
return pathMatch[1];
|
||||
}
|
||||
return url.searchParams.get('id');
|
||||
}
|
||||
|
||||
export const memoryViewerUtils = {
|
||||
locator(page: Page) {
|
||||
return page.locator('#memory-viewer');
|
||||
},
|
||||
|
||||
async waitForMemoryLoad(page: Page) {
|
||||
await expect(this.locator(page)).toBeVisible();
|
||||
await expect(page.locator('#memory-viewer img').first()).toBeVisible();
|
||||
},
|
||||
|
||||
async openMemoryPage(page: Page) {
|
||||
await page.goto('/memory');
|
||||
await this.waitForMemoryLoad(page);
|
||||
},
|
||||
|
||||
async openMemoryPageWithAsset(page: Page, assetId: string) {
|
||||
await page.goto(`/memory?id=${assetId}`);
|
||||
await this.waitForMemoryLoad(page);
|
||||
},
|
||||
};
|
||||
|
||||
export const memoryGalleryUtils = {
|
||||
locator(page: Page) {
|
||||
return page.locator('#gallery-memory');
|
||||
},
|
||||
|
||||
thumbnailWithAssetId(page: Page, assetId: string) {
|
||||
return page.locator(`#gallery-memory [data-thumbnail-focus-container][data-asset="${assetId}"]`);
|
||||
},
|
||||
|
||||
async scrollToGallery(page: Page) {
|
||||
const showGalleryButton = page.getByLabel('Show gallery');
|
||||
if (await showGalleryButton.isVisible()) {
|
||||
await showGalleryButton.click();
|
||||
}
|
||||
await expect(this.locator(page)).toBeInViewport();
|
||||
},
|
||||
|
||||
async clickThumbnail(page: Page, assetId: string) {
|
||||
await this.scrollToGallery(page);
|
||||
await this.thumbnailWithAssetId(page, assetId).click();
|
||||
},
|
||||
|
||||
async getAllThumbnails(page: Page) {
|
||||
await this.scrollToGallery(page);
|
||||
return page.locator('#gallery-memory [data-thumbnail-focus-container]');
|
||||
},
|
||||
};
|
||||
|
||||
export const memoryAssetViewerUtils = {
|
||||
locator(page: Page) {
|
||||
return page.locator('#immich-asset-viewer');
|
||||
},
|
||||
|
||||
async waitForViewerOpen(page: Page) {
|
||||
await expect(this.locator(page)).toBeVisible();
|
||||
},
|
||||
|
||||
async waitForAssetLoad(page: Page, asset: AssetResponseDto) {
|
||||
const viewer = this.locator(page);
|
||||
const imgLocator = viewer.locator(`img[draggable="false"][src*="/api/assets/${asset.id}/thumbnail?size=preview"]`);
|
||||
const videoLocator = viewer.locator(`video[poster*="/api/assets/${asset.id}/thumbnail?size=preview"]`);
|
||||
|
||||
await imgLocator.or(videoLocator).waitFor({ timeout: 10_000 });
|
||||
},
|
||||
|
||||
nextButton(page: Page) {
|
||||
return page.getByLabel('View next asset');
|
||||
},
|
||||
|
||||
previousButton(page: Page) {
|
||||
return page.getByLabel('View previous asset');
|
||||
},
|
||||
|
||||
async expectNextButtonVisible(page: Page) {
|
||||
await expect(this.nextButton(page)).toBeVisible();
|
||||
},
|
||||
|
||||
async expectNextButtonNotVisible(page: Page) {
|
||||
await expect(this.nextButton(page)).toHaveCount(0);
|
||||
},
|
||||
|
||||
async expectPreviousButtonVisible(page: Page) {
|
||||
await expect(this.previousButton(page)).toBeVisible();
|
||||
},
|
||||
|
||||
async expectPreviousButtonNotVisible(page: Page) {
|
||||
await expect(this.previousButton(page)).toHaveCount(0);
|
||||
},
|
||||
|
||||
async clickNextButton(page: Page) {
|
||||
await this.nextButton(page).click();
|
||||
},
|
||||
|
||||
async clickPreviousButton(page: Page) {
|
||||
await this.previousButton(page).click();
|
||||
},
|
||||
|
||||
async closeViewer(page: Page) {
|
||||
await page.keyboard.press('Escape');
|
||||
await expect(this.locator(page)).not.toBeVisible();
|
||||
},
|
||||
|
||||
getCurrentAssetId(page: Page): string | null {
|
||||
const url = new URL(page.url());
|
||||
return getAssetIdFromUrl(url);
|
||||
},
|
||||
|
||||
async expectCurrentAssetId(page: Page, expectedAssetId: string) {
|
||||
await expect.poll(() => this.getCurrentAssetId(page)).toBe(expectedAssetId);
|
||||
},
|
||||
};
|
||||
116
e2e/src/ui/specs/search/search-gallery.e2e-spec.ts
Normal file
116
e2e/src/ui/specs/search/search-gallery.e2e-spec.ts
Normal file
@@ -0,0 +1,116 @@
|
||||
import { faker } from '@faker-js/faker';
|
||||
import { expect, test } from '@playwright/test';
|
||||
import {
|
||||
Changes,
|
||||
createDefaultTimelineConfig,
|
||||
generateTimelineData,
|
||||
TimelineAssetConfig,
|
||||
TimelineData,
|
||||
} from 'src/ui/generators/timeline';
|
||||
import { setupBaseMockApiRoutes } from 'src/ui/mock-network/base-network';
|
||||
import { setupTimelineMockApiRoutes, TimelineTestContext } from 'src/ui/mock-network/timeline-network';
|
||||
import { assetViewerUtils } from '../timeline/utils';
|
||||
|
||||
const buildSearchUrl = (assetId: string) => {
|
||||
const searchQuery = encodeURIComponent(JSON.stringify({ originalFileName: 'test' }));
|
||||
return `/search/photos/${assetId}?query=${searchQuery}`;
|
||||
};
|
||||
|
||||
test.describe.configure({ mode: 'parallel' });
|
||||
test.describe('search gallery-viewer', () => {
|
||||
let adminUserId: string;
|
||||
let timelineRestData: TimelineData;
|
||||
const assets: TimelineAssetConfig[] = [];
|
||||
const testContext = new TimelineTestContext();
|
||||
const changes: Changes = {
|
||||
albumAdditions: [],
|
||||
assetDeletions: [],
|
||||
assetArchivals: [],
|
||||
assetFavorites: [],
|
||||
};
|
||||
|
||||
test.beforeAll(async () => {
|
||||
adminUserId = faker.string.uuid();
|
||||
testContext.adminId = adminUserId;
|
||||
timelineRestData = generateTimelineData({ ...createDefaultTimelineConfig(), ownerId: adminUserId });
|
||||
for (const timeBucket of timelineRestData.buckets.values()) {
|
||||
assets.push(...timeBucket);
|
||||
}
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ context }) => {
|
||||
await setupBaseMockApiRoutes(context, adminUserId);
|
||||
await setupTimelineMockApiRoutes(context, timelineRestData, changes, testContext);
|
||||
|
||||
await context.route('**/api/search/metadata', async (route, request) => {
|
||||
if (request.method() === 'POST') {
|
||||
const searchAssets = assets.slice(0, 5).filter((asset) => !changes.assetDeletions.includes(asset.id));
|
||||
return route.fulfill({
|
||||
status: 200,
|
||||
contentType: 'application/json',
|
||||
json: {
|
||||
albums: { total: 0, count: 0, items: [], facets: [] },
|
||||
assets: {
|
||||
total: searchAssets.length,
|
||||
count: searchAssets.length,
|
||||
items: searchAssets,
|
||||
facets: [],
|
||||
nextPage: null,
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
await route.fallback();
|
||||
});
|
||||
});
|
||||
|
||||
test.afterEach(() => {
|
||||
testContext.slowBucket = false;
|
||||
changes.albumAdditions = [];
|
||||
changes.assetDeletions = [];
|
||||
changes.assetArchivals = [];
|
||||
changes.assetFavorites = [];
|
||||
});
|
||||
|
||||
test.describe('/search/photos/:id', () => {
|
||||
test('Deleting a photo advances to the next photo', async ({ page }) => {
|
||||
const asset = assets[0];
|
||||
await page.goto(buildSearchUrl(asset.id));
|
||||
await assetViewerUtils.waitForViewerLoad(page, asset);
|
||||
await page.getByLabel('Delete').click();
|
||||
await assetViewerUtils.waitForViewerLoad(page, assets[1]);
|
||||
});
|
||||
|
||||
test('Deleting two photos in a row advances to the next photo each time', async ({ page }) => {
|
||||
const asset = assets[0];
|
||||
await page.goto(buildSearchUrl(asset.id));
|
||||
await assetViewerUtils.waitForViewerLoad(page, asset);
|
||||
await page.getByLabel('Delete').click();
|
||||
await assetViewerUtils.waitForViewerLoad(page, assets[1]);
|
||||
await page.getByLabel('Delete').click();
|
||||
await assetViewerUtils.waitForViewerLoad(page, assets[2]);
|
||||
});
|
||||
|
||||
test('Navigating backward then deleting advances to the next photo', async ({ page }) => {
|
||||
const asset = assets[1];
|
||||
await page.goto(buildSearchUrl(asset.id));
|
||||
await assetViewerUtils.waitForViewerLoad(page, asset);
|
||||
await page.getByLabel('View previous asset').click();
|
||||
await assetViewerUtils.waitForViewerLoad(page, assets[0]);
|
||||
await page.getByLabel('View next asset').click();
|
||||
await assetViewerUtils.waitForViewerLoad(page, asset);
|
||||
await page.getByLabel('Delete').click();
|
||||
await assetViewerUtils.waitForViewerLoad(page, assets[2]);
|
||||
});
|
||||
|
||||
test('Deleting the last photo advances to the previous photo', async ({ page }) => {
|
||||
const lastAsset = assets[4];
|
||||
await page.goto(buildSearchUrl(lastAsset.id));
|
||||
await assetViewerUtils.waitForViewerLoad(page, lastAsset);
|
||||
await expect(page.getByLabel('View next asset')).toHaveCount(0);
|
||||
await page.getByLabel('Delete').click();
|
||||
await assetViewerUtils.waitForViewerLoad(page, assets[3]);
|
||||
await expect(page.getByLabel('View previous asset')).toBeVisible();
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -12,18 +12,15 @@ import {
|
||||
selectRandomMultiple,
|
||||
TimelineAssetConfig,
|
||||
TimelineData,
|
||||
} from 'src/generators/timeline';
|
||||
import { setupBaseMockApiRoutes } from 'src/mock-network/base-network';
|
||||
import { pageRoutePromise, setupTimelineMockApiRoutes, TimelineTestContext } from 'src/mock-network/timeline-network';
|
||||
import { utils } from 'src/utils';
|
||||
} from 'src/ui/generators/timeline';
|
||||
import { setupBaseMockApiRoutes } from 'src/ui/mock-network/base-network';
|
||||
import {
|
||||
assetViewerUtils,
|
||||
padYearMonth,
|
||||
pageUtils,
|
||||
poll,
|
||||
thumbnailUtils,
|
||||
timelineUtils,
|
||||
} from 'src/web/specs/timeline/utils';
|
||||
pageRoutePromise,
|
||||
setupTimelineMockApiRoutes,
|
||||
TimelineTestContext,
|
||||
} from 'src/ui/mock-network/timeline-network';
|
||||
import { utils } from 'src/utils';
|
||||
import { assetViewerUtils, padYearMonth, pageUtils, poll, thumbnailUtils, timelineUtils } from './utils';
|
||||
|
||||
test.describe.configure({ mode: 'parallel' });
|
||||
test.describe('Timeline', () => {
|
||||
@@ -1,6 +1,6 @@
|
||||
import { BrowserContext, expect, Page } from '@playwright/test';
|
||||
import { DateTime } from 'luxon';
|
||||
import { TimelineAssetConfig } from 'src/generators/timeline';
|
||||
import { TimelineAssetConfig } from 'src/ui/generators/timeline';
|
||||
|
||||
export const sleep = (ms: number) => {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
@@ -15,7 +15,6 @@
|
||||
"incremental": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"rootDirs": ["src"],
|
||||
"baseUrl": "./"
|
||||
},
|
||||
"include": ["src/**/*.ts"],
|
||||
|
||||
@@ -3,14 +3,14 @@ import { defineConfig } from 'vitest/config';
|
||||
// skip `docker compose up` if `make e2e` was already run
|
||||
const globalSetup: string[] = [];
|
||||
try {
|
||||
await fetch('http://127.0.0.1:2285/api/server-info/ping');
|
||||
await fetch('http://127.0.0.1:2285/api/server/ping');
|
||||
} catch {
|
||||
globalSetup.push('src/setup/docker-compose.ts');
|
||||
globalSetup.push('src/docker-compose.ts');
|
||||
}
|
||||
|
||||
export default defineConfig({
|
||||
test: {
|
||||
include: ['src/{api,cli,immich-admin}/specs/*.e2e-spec.ts'],
|
||||
include: ['src/specs/server/**/*.e2e-spec.ts'],
|
||||
globalSetup,
|
||||
testTimeout: 15_000,
|
||||
pool: 'threads',
|
||||
|
||||
230
i18n/ar.json
230
i18n/ar.json
@@ -5,8 +5,10 @@
|
||||
"acknowledge": "أُدرك ذلك",
|
||||
"action": "عملية",
|
||||
"action_common_update": "تحديث",
|
||||
"action_description": "مجموعة من الفعاليات التي ستنفذ على الأصول التي تم تصفيتها",
|
||||
"actions": "عمليات",
|
||||
"active": "نشط",
|
||||
"active_count": "فعال: {count}",
|
||||
"activity": "نشاط",
|
||||
"activity_changed": "النشاط {enabled, select, true {مُفْعل} other {معطّل}}",
|
||||
"add": "إضافة",
|
||||
@@ -14,9 +16,14 @@
|
||||
"add_a_location": "إضافة موقع",
|
||||
"add_a_name": "إضافة إسم",
|
||||
"add_a_title": "إضافة عنوان",
|
||||
"add_action": "اضف فعالية",
|
||||
"add_action_description": "اضغط لإضافة فعالية لتنفيذها",
|
||||
"add_assets": "اضف اصول",
|
||||
"add_birthday": "أضف تاريخ الميلاد",
|
||||
"add_endpoint": "اضف نقطة نهاية",
|
||||
"add_exclusion_pattern": "إضافة نمط إستثناء",
|
||||
"add_filter": "اضف تصفية",
|
||||
"add_filter_description": "اضغط لاضافة شرط تصفية",
|
||||
"add_location": "إضافة موقع",
|
||||
"add_more_users": "إضافة مستخدمين آخرين",
|
||||
"add_partner": "أضف شريكًا",
|
||||
@@ -31,10 +38,11 @@
|
||||
"add_to_album_toggle": "تبديل التحديد لـ{album}",
|
||||
"add_to_albums": "إضافة الى البومات",
|
||||
"add_to_albums_count": "إضافه إلى البومات ({count})",
|
||||
"add_to_bottom_bar": "اضف الى",
|
||||
"add_to_bottom_bar": "اضافه الى",
|
||||
"add_to_shared_album": "إضافة إلى ألبوم مشارك",
|
||||
"add_upload_to_stack": "اضف رفع الى حزمة",
|
||||
"add_url": "إضافة رابط",
|
||||
"add_workflow_step": "اضف خطوة سير عمل",
|
||||
"added_to_archive": "أُضيفت للأرشيف",
|
||||
"added_to_favorites": "أُضيفت للمفضلات",
|
||||
"added_to_favorites_count": "تم إضافة {count, number} إلى المفضلات",
|
||||
@@ -52,20 +60,20 @@
|
||||
"backup_keep_last_amount": "مقدار التفريغات السابقة للاحتفاظ بها",
|
||||
"backup_onboarding_1_description": "نسخة خارج الموقع في موقع آخر.",
|
||||
"backup_onboarding_2_description": "نسخ محلية على أجهزة مختلفة. يشمل ذلك الملفات الرئيسية ونسخة احتياطية محلية منها.",
|
||||
"backup_onboarding_3_description": "إجمالي نسخ بياناتك، بما في ذلك الملفات الأصلية. يشمل ذلك نسخةً واحدةً خارج الموقع ونسختين محليتين.",
|
||||
"backup_onboarding_3_description": "إجمالي نُسخ بياناتك، بما في ذلك الملفات الأصلية. يشمل ذلك نسخةً واحدةً خارج الموقع ونسختين محليتين.",
|
||||
"backup_onboarding_description": "يُنصح باتباع <backblaze-link>استراتيجية النسخ الاحتياطي 3-2-1</backblaze-link> لحماية بياناتك. احتفظ بنسخ احتياطية من صورك/فيديوهاتك المحمّلة، بالإضافة إلى قاعدة بيانات Immich، لضمان حل نسخ احتياطي شامل.",
|
||||
"backup_onboarding_footer": "لمزيد من المعلومات حول النسخ الاحتياطي لـ Immich، يرجى الرجوع إلى <link> التعليمات </link>.",
|
||||
"backup_onboarding_parts_title": "يتضمن النسخ الاحتياطي 3-2-1 ما يلي:",
|
||||
"backup_onboarding_title": "النسخ الاحتياطية",
|
||||
"backup_settings": "إعدادات تفريغ قاعدة البيانات",
|
||||
"backup_settings_description": "إدارة إعدادات تفريغ قاعدة البيانات.",
|
||||
"cleared_jobs": "تم إخلاء مهام: {job}",
|
||||
"cleared_jobs": "تم إخلاء مهام ل: {job}",
|
||||
"config_set_by_file": "الإعدادات حاليًا معينة عن طريق ملف الاعدادات",
|
||||
"confirm_delete_library": "هل أنت متأكد أنك تريد حذف مكتبة {library}؟",
|
||||
"confirm_delete_library_assets": "هل أنت متأكد أنك تريد حذف هذه المكتبة؟ سيؤدي ذلك إلى حذف {count, plural, one {# محتوى موجود} other {جميع # المحتويات الموجودة}} من Immich ولا يمكن التراجع عنه. ستظل الملفات موجودة على القرص.",
|
||||
"confirm_email_below": "للتأكيد، اكتب \"{email}\" بالأسفل",
|
||||
"confirm_reprocess_all_faces": "هل أنت متأكد أنك تريد إعادة معالجة جميع الوجوه؟ سيخلي هذا كل الأشخاص الذين سَميتَهم.",
|
||||
"confirm_user_password_reset": "هل أنت متأكد أنك تريد إعادة تعيين كلمة مرور {user}؟",
|
||||
"confirm_user_password_reset": "هل أنت متأكد أنك تريد إعادة تعيين كلمة المرور ل {user}؟",
|
||||
"confirm_user_pin_code_reset": "هل انت متاكد من اعادة ضبط رمز PIN الخاص ب {user}؟",
|
||||
"copy_config_to_clipboard_description": "انسخ اعدادات النظام الحالية بتنسيق JSON الى الحافظة",
|
||||
"create_job": "إنشاء وظيفة",
|
||||
@@ -96,6 +104,8 @@
|
||||
"image_preview_description": "صورة متوسطة الحجم مع بيانات وصفية مجردة، تُستخدم عند عرض أصل واحد وللتعلم الآلي",
|
||||
"image_preview_quality_description": "جودة المعاينة من 1 إلى 100. كلما كانت القيمة أعلى كان ذلك أفضل، ولكنها تنتج ملفات أكبر وقد تقلل من استجابة التطبيق. قد يؤثر ضبط قيمة منخفضة على جودة التعلم الآلي.",
|
||||
"image_preview_title": "إعدادات المعاينة",
|
||||
"image_progressive": "متدرج",
|
||||
"image_progressive_description": "ترميز صور JPEG تدريجياً لعرضها بشكل تدريجي. هذا لا يؤثر على صور WebP.",
|
||||
"image_quality": "الجودة",
|
||||
"image_resolution": "الدقة",
|
||||
"image_resolution_description": "يمكن للدقة العالية الحفاظ على مزيد من التفاصيل ولكنها تستغرق وقتًا أطول للترميز، وتحتوي على أحجام ملفات أكبر ويمكن أن تقلل من استجابة التطبيق.",
|
||||
@@ -112,6 +122,7 @@
|
||||
"job_settings_description": "إدارة تزامن الوظائف",
|
||||
"jobs_delayed": "{jobCount, plural, other {# مؤجلة}}",
|
||||
"jobs_failed": "{jobCount, plural, other {# فشلت}}",
|
||||
"jobs_over_time": "الوظائف بمرور الوقت",
|
||||
"library_created": "تم إنشاء المكتبة: {library}",
|
||||
"library_deleted": "تم حذف المكتبة",
|
||||
"library_details": "تفاصيل المكتبة",
|
||||
@@ -179,10 +190,21 @@
|
||||
"machine_learning_smart_search_enabled": "تفعيل البحث الذكي",
|
||||
"machine_learning_smart_search_enabled_description": "إذا تم تعطيله، فلن يتم ترميز الصور للبحث الذكي.",
|
||||
"machine_learning_url_description": "عنوان URL لخادم التعلم الآلي. إذا تم توفير أكثر من عنوان URL واحد، سيتم محاولة الاتصال بكل خادم على حدة حتى يستجيب أحدهم بنجاح، بدءًا من الأول إلى الأخير. سيتم تجاهل الخوادم التي لا تستجيب مؤقتًا حتى تعود للعمل.",
|
||||
"maintenance_delete_backup": "حذف النسخ الاحتياطي",
|
||||
"maintenance_delete_backup_description": "هذا الملف سيتم حذفه بشكل لا رجعه فيه.",
|
||||
"maintenance_delete_error": "فشل حذف النسخ الاحتياطي.",
|
||||
"maintenance_restore_backup": "استعادة النسخ الاحتياطي",
|
||||
"maintenance_restore_backup_description": "سيتم مسح بيانات Immich واستعادتها من النسخة الاحتياطي المختار. سيتم إنشاء نسخة احتياطية قبل المتابعة.",
|
||||
"maintenance_restore_backup_different_version": "هذا النسخ الاحتياطي تم انشائه باستخدام اصدار مختلف من Immich!",
|
||||
"maintenance_restore_backup_unknown_version": "لا يمكن التحقق من اصدار النسخ الاحتياطي.",
|
||||
"maintenance_restore_database_backup": "استعادة النسخ الاحتياطي لقاعدة البيانات",
|
||||
"maintenance_restore_database_backup_description": "استعادة حالة قاعدة البيانات السابقة باستخدام ملف النسخ الاحتياطي",
|
||||
"maintenance_settings": "صيانة",
|
||||
"maintenance_settings_description": "ضع Immich في وضع الصيانة.",
|
||||
"maintenance_start": "ابدأ وضع الصيانة",
|
||||
"maintenance_start": "التحزيل الى وضع الصيانة",
|
||||
"maintenance_start_error": "فشل البدء في وضع الصيانة.",
|
||||
"maintenance_upload_backup": "رفع ملف النسخ الاحتياطي لقاعدة البيانات",
|
||||
"maintenance_upload_backup_error": "لم يتم رفع الخزن الاحتياطي, هل الملف بصيغة .sql/.sql.gz?",
|
||||
"manage_concurrency": "إدارة التزامن",
|
||||
"manage_concurrency_description": "انتقل الى صفحة الاعمال لادارة تزامن المهام",
|
||||
"manage_log_settings": "إدارة إعدادات السجلات",
|
||||
@@ -250,7 +272,7 @@
|
||||
"oauth_auto_register": "التسجيل التلقائي",
|
||||
"oauth_auto_register_description": "التسجيل التلقائي للمستخدمين الجدد بعد تسجيل الدخول باستخدام OAuth",
|
||||
"oauth_button_text": "نص الزر",
|
||||
"oauth_client_secret_description": "مطلوب اذاPKCE(مفتاح الاثبات لتبادل الكود) لم يتم توفيره من مزود OAuth",
|
||||
"oauth_client_secret_description": "مطلوب للعميل السري، او اذا PKCE(مفتاح الاثبات لتبادل الكود) ليس مدعوم من العميل العام.",
|
||||
"oauth_enable_description": "تسجيل الدخول باستخدام OAuth",
|
||||
"oauth_mobile_redirect_uri": "عنوان URI لإعادة التوجيه على الهاتف",
|
||||
"oauth_mobile_redirect_uri_override": "تجاوز عنوان URI لإعادة التوجيه على الهاتف",
|
||||
@@ -274,10 +296,14 @@
|
||||
"password_settings_description": "إدارة تسجيل الدخول بكلمة المرور",
|
||||
"paths_validated_successfully": "تم التحقق من صحة كافة المسارات بنجاح",
|
||||
"person_cleanup_job": "تنظيف الشخص",
|
||||
"queue_details": "تفاصيل الطابور",
|
||||
"queues": "طوابير الوظائف",
|
||||
"queues_page_description": "صفحة طوابير وظائف المدير",
|
||||
"quota_size_gib": "حجم الحصة (جيجابايت)",
|
||||
"refreshing_all_libraries": "تحديث كافة المكتبات",
|
||||
"registration": "تسجيل المدير",
|
||||
"registration_description": "بما أنك أول مستخدم في النظام، سيتم تعيينك كمسؤول وستكون مسؤولًا عن المهام الإدارية، وسيتم إنشاء مستخدمين إضافيين بواسطتك.",
|
||||
"remove_failed_jobs": "ازالة العمليات التي فشلت",
|
||||
"require_password_change_on_login": "الطلب من المستخدم تغيير كلمة المرور عند تسجيل الدخول الأول",
|
||||
"reset_settings_to_default": "إعادة ضبط الإعدادات إلى الوضع الافتراضي",
|
||||
"reset_settings_to_recent_saved": "إعادة ضبط الإعدادات إلى الإعدادات المحفوظة مؤخرًا",
|
||||
@@ -357,7 +383,7 @@
|
||||
"transcoding_hardware_acceleration": "التسريع العتادي",
|
||||
"transcoding_hardware_acceleration_description": "تجريبي: ترميز اسرع لكن قد يقلل من الجودة مع معدل بت اقل",
|
||||
"transcoding_hardware_decoding": "فك تشفير الأجهزة",
|
||||
"transcoding_hardware_decoding_setting_description": "ينطبق ذلك فقط على NVENC، QSV، و RKMPP. يمكن التسريع من طرف لطرف بدلاً من تسريع الترميز فقط. قد لا يعمل على جميع مقاطع الفيديو.",
|
||||
"transcoding_hardware_decoding_setting_description": "يُمكّن من تسريع من البداية إلى النهاية بدلاً من تسريع عملية التشفير فقط. قد لا يعمل مع جميع مقاطع الفيديو.",
|
||||
"transcoding_max_b_frames": "أقصى عدد من الإطارات B",
|
||||
"transcoding_max_b_frames_description": "القيم الأعلى تعزز كفاءة الضغط، ولكنها تبطئ عملية الترميز. قد لا تكون متوافقة مع التسريع العتادي على الأجهزة القديمة. قيمة 0 تعطل إطارات B، بينما تضبط القيمة -1 هذا القيمة تلقائيًا.",
|
||||
"transcoding_max_bitrate": "الحد الأقصى لمعدل البت",
|
||||
@@ -425,6 +451,9 @@
|
||||
"admin_password": "كلمة سر المشرف",
|
||||
"administration": "الإدارة",
|
||||
"advanced": "متقدم",
|
||||
"advanced_settings_clear_image_cache": "مسح ذاكرة التخزين المؤقت للصور",
|
||||
"advanced_settings_clear_image_cache_error": "فشل مسح ذاكرة التخزين المؤقت للصور",
|
||||
"advanced_settings_clear_image_cache_success": "تم المسح بنجاح {size}",
|
||||
"advanced_settings_enable_alternate_media_filter_subtitle": "استخدم هذا الخيار لتصفية الوسائط اثناء المزامنه بناء على معايير بديلة. جرب هذا الخيار فقط كان لديك مشاكل مع التطبيق بالكشف عن جميع الالبومات.",
|
||||
"advanced_settings_enable_alternate_media_filter_title": "[تجريبي] استخدم جهاز تصفية مزامنه البومات بديل",
|
||||
"advanced_settings_log_level_title": "مستوى السجل: {level}",
|
||||
@@ -461,10 +490,12 @@
|
||||
"album_remove_user": "هل ترغب في إزالة المستخدم؟",
|
||||
"album_remove_user_confirmation": "هل أنت متأكد أنك تريد إزالة {user}؟",
|
||||
"album_search_not_found": "لم يتم ايجاد البوم مطابق لبحثك",
|
||||
"album_selected": "اختير البوم",
|
||||
"album_share_no_users": "يبدو أنك قمت بمشاركة هذا الألبوم مع جميع المستخدمين أو ليس لديك أي مستخدم للمشاركة معه.",
|
||||
"album_summary": "ملخص الألبوم",
|
||||
"album_updated": "تم تحديث الألبوم",
|
||||
"album_updated_setting_description": "تلقي إشعارًا عبر البريد الإلكتروني عندما يحتوي الألبوم المشترك على محتويات جديدة",
|
||||
"album_upload_assets": "رفع الاصول من جهاز الكومبيوتر الخاص بك و اضافتها الى البوم",
|
||||
"album_user_left": "تم ترك {album}",
|
||||
"album_user_removed": "تم إزالة {user}",
|
||||
"album_viewer_appbar_delete_confirm": "هل أنت متأكد أنك تريد حذف هذا الألبوم من حسابك؟",
|
||||
@@ -482,9 +513,11 @@
|
||||
"albums_default_sort_order_description": "ترتيب فرز الأصول الأولي عند إنشاء ألبومات جديدة.",
|
||||
"albums_feature_description": "مجموعة من الأصول التي يمكن مشاركتها مع مستخدمين آخرين.",
|
||||
"albums_on_device_count": "عدد الالبومات على الجهاز ({count})",
|
||||
"albums_selected": "{count, plural, one {# البوم مختار} other {# البومات مختارة}}",
|
||||
"all": "الكل",
|
||||
"all_albums": "جميع الألبومات",
|
||||
"all_people": "جميع الأشخاص",
|
||||
"all_photos": "جميع الصور",
|
||||
"all_videos": "جميع الفيديوهات",
|
||||
"allow_dark_mode": "السماح بالوضع المعتم",
|
||||
"allow_edits": "إسمح بالتعديل",
|
||||
@@ -492,6 +525,9 @@
|
||||
"allow_public_user_to_upload": "السماح للمستخدم العام بالرفع",
|
||||
"allowed": "مسموح",
|
||||
"alt_text_qr_code": "صورة رمز الاستجابة السريعة (QR)",
|
||||
"always_keep": "دائما حافظ على",
|
||||
"always_keep_photos_hint": "سيحتفظ تحرير المساحة بجميع الصور على هذا الجهاز.",
|
||||
"always_keep_videos_hint": "سيحتفظ تحرير المساحة بجميع الفديوات على هذا الجهاز.",
|
||||
"anti_clockwise": "عكس اتجاه عقارب الساعة",
|
||||
"api_key": "مفتاح API",
|
||||
"api_key_description": "سيتم عرض هذه القيمة مرة واحدة فقط. يرجى التأكد من نسخها قبل إغلاق النافذة.",
|
||||
@@ -518,10 +554,12 @@
|
||||
"archived_count": "{count, plural, other {الأرشيف #}}",
|
||||
"are_these_the_same_person": "هل هؤلاء هم نفس الشخص؟",
|
||||
"are_you_sure_to_do_this": "هل انت متأكد من أنك تريد أن تفعل هذا؟",
|
||||
"array_field_not_fully_supported": "حقول المصفوفة تتطلب تعديل يدوي لJSON",
|
||||
"asset_action_delete_err_read_only": "لا يمكن حذف الأصول ذات للقراءة فقط، وسوف يتم التخطي",
|
||||
"asset_action_share_err_offline": "لا يمكن جلب الأصول غير المتصلة بالإنترنت، وسوف يتم التخطي",
|
||||
"asset_added_to_album": "تمت إضافته إلى الألبوم",
|
||||
"asset_adding_to_album": "جارٍ الإضافة إلى الألبوم…",
|
||||
"asset_created": "انشئ اصل",
|
||||
"asset_description_updated": "تم تحديث وصف المحتوى",
|
||||
"asset_filename_is_offline": "الأصل {filename} غير متصل",
|
||||
"asset_has_unassigned_faces": "يحتوي الأصل على وجوه غير مخصصة",
|
||||
@@ -534,6 +572,9 @@
|
||||
"asset_list_layout_sub_title": "تصميم",
|
||||
"asset_list_settings_subtitle": "إعدادات تخطيط شبكة الصور",
|
||||
"asset_list_settings_title": "شبكة الصور",
|
||||
"asset_not_found_on_device_android": "الاصل لم يتم ايجاده في الجهاز",
|
||||
"asset_not_found_on_device_ios": "الأصل لم يتم ايجاده في الجهاز. اذا تستخدم خدمة iCloud, فالأصل قد لا يتم الوصول له بسبب ملف متضارب مخزون في iCloud",
|
||||
"asset_not_found_on_icloud": "الأصل لم يتم ايجاده في الجهاز, الأصل قد لا يتم الوصول له بسبب ملف متضارب مخزون في iCloud",
|
||||
"asset_offline": "المحتوى غير اتصال",
|
||||
"asset_offline_description": "لم يعد هذا الأصل الخارجي موجودًا على القرص. يرجى الاتصال بمسؤول Immich للحصول على المساعدة.",
|
||||
"asset_restored_successfully": "تم استعادة الاصل بنجاح",
|
||||
@@ -612,7 +653,7 @@
|
||||
"backup_controller_page_background_turn_off": "قم بإيقاف تشغيل خدمة الخلفية",
|
||||
"backup_controller_page_background_turn_on": "قم بتشغيل خدمة الخلفية",
|
||||
"backup_controller_page_background_wifi": "فقط على Wi-Fi",
|
||||
"backup_controller_page_backup": "دعم",
|
||||
"backup_controller_page_backup": "نسخ احتياطي",
|
||||
"backup_controller_page_backup_selected": "المحدد: ",
|
||||
"backup_controller_page_backup_sub": "النسخ الاحتياطي للصور ومقاطع الفيديو",
|
||||
"backup_controller_page_created": "انشئ في :{date}",
|
||||
@@ -646,6 +687,7 @@
|
||||
"backup_options_page_title": "خيارات النسخ الاحتياطي",
|
||||
"backup_setting_subtitle": "ادارة اعدادات التحميل في الخلفية والمقدمة",
|
||||
"backup_settings_subtitle": "إدارة إعدادات التحميل",
|
||||
"backup_upload_details_page_more_details": "اضغط لتفاصيل اضافية",
|
||||
"backward": "الى الوراء",
|
||||
"biometric_auth_enabled": "المصادقة البايومترية مفعله",
|
||||
"biometric_locked_out": "لقد قفلت عنك المصادقة البيومترية",
|
||||
@@ -704,6 +746,8 @@
|
||||
"change_password_form_password_mismatch": "كلمة المرور غير مطابقة",
|
||||
"change_password_form_reenter_new_password": "أعد إدخال كلمة مرور جديدة",
|
||||
"change_pin_code": "تغيير رمز PIN",
|
||||
"change_trigger": "تغيير المفعل",
|
||||
"change_trigger_prompt": "هل انت متاكد انك تريد تغيير المفعل؟ هذا سيزيل كل الاجرائات والتصفيات.",
|
||||
"change_your_password": "غير كلمة المرور الخاصة بك",
|
||||
"changed_visibility_successfully": "تم تغيير الرؤية بنجاح",
|
||||
"charging": "الشحن",
|
||||
@@ -712,8 +756,21 @@
|
||||
"check_corrupt_asset_backup_button": "اجراء فحص",
|
||||
"check_corrupt_asset_backup_description": "قم بإجراء هذا الفحص فقط عبر شبكة Wi-Fi وبعد نسخ جميع الأصول احتياطيًا. قد يستغرق الإجراء بضع دقائق.",
|
||||
"check_logs": "تحقق من السجلات",
|
||||
"checksum": "مجموع التحقق",
|
||||
"choose_matching_people_to_merge": "اختر الأشخاص المتطابقين لدمجهم",
|
||||
"city": "المدينة",
|
||||
"cleanup_confirm_description": "Immich وجد {count} اصول (انشئت قبل {date}) تم خزنها احتياطيا الى الخادم. ازالة النسخ المحلية من هذا الجهاز?",
|
||||
"cleanup_confirm_prompt_title": "ازالة من هذا الجهاز؟",
|
||||
"cleanup_deleted_assets": "تم نقل {count} اصول الى سلة المهملات",
|
||||
"cleanup_deleting": "جاري النقل الى المهملات...",
|
||||
"cleanup_found_assets": "تم ايجاد {count} اصول تم خزنها احتياطيا",
|
||||
"cleanup_found_assets_with_size": "تم العثور عل {count} عناصر تم خزنها احتياطيا ({size})",
|
||||
"cleanup_icloud_shared_albums_excluded": "البومات iCloud المشاركة مستثناة من البحث",
|
||||
"cleanup_no_assets_found": "لم يتم ايجاد اصول تطابق المعايير. بالاضافه. تحرير المساحة يمكن ان يحذف فقط العناصر التي تم خزنها احتياطياً الى الخادم",
|
||||
"cleanup_preview_title": "اصول ليتم ازالتها ({count})",
|
||||
"cleanup_step3_description": "ابحث عن اصول تم خزنها احتياطيا تطابق بياناتك و احتفظ بالاعدادات.",
|
||||
"cleanup_step4_summary": "{count} اصول (أنشأت قبل {date}) ليتم ازالتها من جهازك المحلي. ستظل الصور متاحة من خلال تطبيق Immich .",
|
||||
"cleanup_trash_hint": "لاستعادة مساحة التخزين بالكامل، افتح تطبيق معرض النظام وأفرغ سلة المهملات",
|
||||
"clear": "إخلاء",
|
||||
"clear_all": "إخلاء الكل",
|
||||
"clear_all_recent_searches": "مسح جميع عمليات البحث الأخيرة",
|
||||
@@ -725,6 +782,8 @@
|
||||
"client_cert_import": "استيراد",
|
||||
"client_cert_import_success_msg": "تم استيراد شهادة العميل",
|
||||
"client_cert_invalid_msg": "ملف شهادة عميل غير صالحة او كلمة سر غير صحيحة",
|
||||
"client_cert_password_message": "أدخل كلمة المرور الخاصة بهذه الشهادة",
|
||||
"client_cert_password_title": "كلمة المرور الخاصة بالشهادة",
|
||||
"client_cert_remove_msg": "تم ازالة شهادة العميل",
|
||||
"client_cert_subtitle": "يدعم صيغ PKCS12 (.p12, .pfx)فقط. استيراد/ازالة الشهادات متاح فقط قبل تسجيل الدخول",
|
||||
"client_cert_title": "شهادة مستخدم SSL [تجريبية]",
|
||||
@@ -779,6 +838,7 @@
|
||||
"create_album": "إنشاء ألبوم",
|
||||
"create_album_page_untitled": "بدون اسم",
|
||||
"create_api_key": "إنشاء مفتاح API",
|
||||
"create_first_workflow": "إنشاء سير العمل الأول",
|
||||
"create_library": "إنشاء مكتبة",
|
||||
"create_link": "إنشاء رابط",
|
||||
"create_link_to_share": "إنشاء رابط للمشاركة",
|
||||
@@ -793,17 +853,25 @@
|
||||
"create_tag": "إنشاء علامة",
|
||||
"create_tag_description": "أنشئ علامة جديدة. بالنسبة للعلامات المتداخلة، يرجى إدخال المسار الكامل للعلامة بما في ذلك الخطوط المائلة للأمام.",
|
||||
"create_user": "إنشاء مستخدم",
|
||||
"create_workflow": "إنشاء سير العمل",
|
||||
"created": "تم الإنشاء",
|
||||
"created_at": "مخلوق",
|
||||
"creating_linked_albums": "جاري إنشاء الألبومات المرتبطة...",
|
||||
"crop": "قص",
|
||||
"crop_aspect_ratio_fixed": "تم الاصلاح",
|
||||
"crop_aspect_ratio_free": "حر",
|
||||
"crop_aspect_ratio_original": "اصلي",
|
||||
"curated_object_page_title": "أشياء",
|
||||
"current_device": "الجهاز الحالي",
|
||||
"current_pin_code": "رمز PIN الحالي",
|
||||
"current_server_address": "عنوان الخادم الحالي",
|
||||
"custom_date": "تاريخ مخصص",
|
||||
"custom_locale": "لغة مخصصة",
|
||||
"custom_locale_description": "تنسيق التواريخ والأرقام بناءً على اللغة والمنطقة",
|
||||
"custom_url": "رابط مخصص",
|
||||
"cutoff_date_description": "احتفظ بالصور من آخر…",
|
||||
"cutoff_day": "{count, plural, one {يوم} other {ايام}}",
|
||||
"cutoff_year": "{count, plural, one {سنة} other {سنوات}}",
|
||||
"daily_title_text_date": "E ، MMM DD",
|
||||
"daily_title_text_date_year": "E ، MMM DD ، yyyy",
|
||||
"dark": "معتم",
|
||||
@@ -859,6 +927,7 @@
|
||||
"deselect_all": "الغاء تحديد الكل",
|
||||
"details": "تفاصيل",
|
||||
"direction": "الإتجاه",
|
||||
"disable": "ابطال",
|
||||
"disabled": "معطل",
|
||||
"disallow_edits": "منع التعديلات",
|
||||
"discord": "دسكورد",
|
||||
@@ -884,16 +953,18 @@
|
||||
"download_include_embedded_motion_videos": "مقاطع الفيديو المدمجة",
|
||||
"download_include_embedded_motion_videos_description": "تضمين مقاطع الفيديو المضمنة في الصور المتحركة كملف منفصل",
|
||||
"download_notfound": "لم يعثر على التنزيل",
|
||||
"download_paused": "اوقف التنزيل",
|
||||
"download_settings": "التنزيلات",
|
||||
"download_original": "تحميل الأصلي",
|
||||
"download_paused": "توقف التنزيل",
|
||||
"download_settings": "التنزيل",
|
||||
"download_settings_description": "إدارة الإعدادات المتعلقة بتنزيل المحتويات",
|
||||
"download_started": "بدا التنزيل",
|
||||
"download_started": "بدأ التنزيل",
|
||||
"download_sucess": "نجح التنزيل",
|
||||
"download_sucess_android": "تم تحميل الوسائط الى DCIM/Immich",
|
||||
"download_waiting_to_retry": "الانتظار للمحاولة",
|
||||
"download_waiting_to_retry": "الانتظار لاعادة المحاولة",
|
||||
"downloading": "جارٍ التنزيل",
|
||||
"downloading_asset_filename": "{filename} قيد التنزيل",
|
||||
"downloading_media": "تحميل الوسائط",
|
||||
"downloading_asset_filename": "جاري تنزيل الاصل {filename}",
|
||||
"downloading_from_icloud": "التنزيل من iCloud",
|
||||
"downloading_media": "تنزيل الوسائط",
|
||||
"drop_files_to_upload": "قم بإسقاط الملفات في أي مكان لرفعها",
|
||||
"duplicates": "التكرارات",
|
||||
"duplicates_description": "قم بحل كل مجموعة من خلال الإشارة إلى التكرارات، إن وجدت",
|
||||
@@ -921,11 +992,22 @@
|
||||
"edit_tag": "تعديل العلامة",
|
||||
"edit_title": "تعديل العنوان",
|
||||
"edit_user": "تعديل المستخدم",
|
||||
"edit_workflow": "تعديل سير العمل",
|
||||
"editor": "محرر",
|
||||
"editor_close_without_save_prompt": "لن يتم حفظ التغييرات",
|
||||
"editor_close_without_save_title": "إغلاق المحرر؟",
|
||||
"editor_crop_tool_h2_aspect_ratios": "نسب العرض إلى الارتفاع",
|
||||
"editor_crop_tool_h2_rotation": "التدوير",
|
||||
"editor_confirm_reset_all_changes": "هل أنت متأكد من إعادة ضبط جميع التغييرات؟",
|
||||
"editor_discard_edits_confirm": "تجاهل التعديلات",
|
||||
"editor_discard_edits_prompt": "لديك تعديلات غير محفوظة. هل أنت متأكد من رغبتك في تجاهلها؟",
|
||||
"editor_discard_edits_title": "تجاهل التعديلات؟",
|
||||
"editor_edits_applied_error": "فشل تطبيق التعديلات",
|
||||
"editor_edits_applied_success": "تم تطبيق التعديلات بنجاح",
|
||||
"editor_flip_horizontal": "اقلب أفقيًا",
|
||||
"editor_flip_vertical": "اقلب عموديًا",
|
||||
"editor_orientation": "اتجاه",
|
||||
"editor_reset_all_changes": "اعادة ظبط التغييرات",
|
||||
"editor_rotate_left": "أدر 90° عكس اتجاه عقارب الساعة",
|
||||
"editor_rotate_right": "ادر 90° باتجاه عقارب الساعة",
|
||||
"email": "البريد الإلكتروني",
|
||||
"email_notifications": "تنبيهات البريد الالكتروني",
|
||||
"empty_folder": "هذا المجلد فارغ",
|
||||
@@ -934,7 +1016,7 @@
|
||||
"enable": "تفعيل",
|
||||
"enable_backup": "تشغيل النسخ الاحتياطي",
|
||||
"enable_biometric_auth_description": "أدخل رمز PIN الخاص بك لتمكين المصادقة البيومترية",
|
||||
"enabled": "مفعل",
|
||||
"enabled": "مفعَل",
|
||||
"end_date": "تاريخ الإنتهاء",
|
||||
"enqueued": "مُدرج في الطابور",
|
||||
"enter_wifi_name": "ادخل اسم Wi-Fi",
|
||||
@@ -944,11 +1026,14 @@
|
||||
"error_change_sort_album": "فشل في تغيير ترتيب الألبوم",
|
||||
"error_delete_face": "حدث خطأ في حذف الوجه من الأصول",
|
||||
"error_getting_places": "خطأ أثناء استرجاع بيانات المواقع",
|
||||
"error_loading_albums": "خطأ في تحميل الالبومات",
|
||||
"error_loading_image": "حدث خطأ أثناء تحميل الصورة",
|
||||
"error_loading_partners": "خطأ بتحميل بيانات الشركاء: {error}",
|
||||
"error_retrieving_asset_information": "خطأ في استعادة معلومات الاصل",
|
||||
"error_saving_image": "خطأ: {error}",
|
||||
"error_tag_face_bounding_box": "خطأ في وضع علامة على الوجه - لا يمكن الحصول على إحداثيات المربع المحيط",
|
||||
"error_title": "خطأ - حدث خللٌ ما",
|
||||
"error_while_navigating": "حدث خطأ أثناء الانتقال إلى الأصل",
|
||||
"errors": {
|
||||
"cannot_navigate_next_asset": "لا يمكن الانتقال إلى المحتوى التالي",
|
||||
"cannot_navigate_previous_asset": "لا يمكن الانتقال إلى المحتوى السابق",
|
||||
@@ -1006,6 +1091,7 @@
|
||||
"unable_to_complete_oauth_login": "غير قادر على إكمال تسجيل الدخول عبر OAuth",
|
||||
"unable_to_connect": "غير قادر على الإتصال",
|
||||
"unable_to_copy_to_clipboard": "لا يمكن النسخ إلى الحافظة، تأكد من استخدامك للصفحة عبر https",
|
||||
"unable_to_create": "تعذر إنشاء سير العمل",
|
||||
"unable_to_create_admin_account": "غير قادر على إنشاء حساب المسؤول",
|
||||
"unable_to_create_api_key": "غير قادر على إنشاء مفتاح API جديد",
|
||||
"unable_to_create_library": "غير قادر على إنشاء مكتبة",
|
||||
@@ -1016,6 +1102,7 @@
|
||||
"unable_to_delete_exclusion_pattern": "غير قادر على حذف نمط الاستبعاد",
|
||||
"unable_to_delete_shared_link": "غير قادر على حذف الرابط المشترك",
|
||||
"unable_to_delete_user": "غير قادر على حذف المستخدم",
|
||||
"unable_to_delete_workflow": "تعذر حذف سير العمل",
|
||||
"unable_to_download_files": "غير قادر على تنزيل الملفات",
|
||||
"unable_to_edit_exclusion_pattern": "غير قادر على تعديل نمط الاستبعاد",
|
||||
"unable_to_empty_trash": "غير قادر على إفراغ سلة المهملات",
|
||||
@@ -1055,6 +1142,7 @@
|
||||
"unable_to_scan_library": "غير قادر على فحص المكتبة",
|
||||
"unable_to_set_feature_photo": "غير قادر على تعيين الصورة المميزة",
|
||||
"unable_to_set_profile_picture": "غير قادر على تعيين صورة الملف الشخصي",
|
||||
"unable_to_set_rating": "تعذر تحديد التقييم",
|
||||
"unable_to_submit_job": "غير قادر على تقديم الوظيفة",
|
||||
"unable_to_trash_asset": "غير قادر على نقل المحتويات إلى سلة المهملات",
|
||||
"unable_to_unlink_account": "غير قادر على إلغاء ربط الحساب",
|
||||
@@ -1066,8 +1154,10 @@
|
||||
"unable_to_update_settings": "غير قادر على تحديث الإعدادات",
|
||||
"unable_to_update_timeline_display_status": "غير قادر على تحديث حالة عرض المخطط الزمني",
|
||||
"unable_to_update_user": "غير قادر على تحديث المستخدم",
|
||||
"unable_to_update_workflow": "تعذر تحديث سير العمل",
|
||||
"unable_to_upload_file": "تعذر رفع الملف"
|
||||
},
|
||||
"errors_text": "اخطاء",
|
||||
"exclusion_pattern": "نمط استبعاد",
|
||||
"exif": "Exif (صيغة ملف صوري قابل للتبادل)",
|
||||
"exif_bottom_sheet_description": "اضف وصفا...",
|
||||
@@ -1099,6 +1189,7 @@
|
||||
"external_network_sheet_info": "عندما لا يتواجد على شبكة Wi-Fi المفضلة، فإنه سيتصل بالخادم من خلال أول عناوين URL أدناه التي يمكنه الوصول إليها، بدءًا من الأعلى إلى الأسفل",
|
||||
"face_unassigned": "غير معين",
|
||||
"failed": "فشل",
|
||||
"failed_count": "فشل: {count}",
|
||||
"failed_to_authenticate": "فشل في المصادقة",
|
||||
"failed_to_load_assets": "فشل تحميل الأصول",
|
||||
"failed_to_load_folder": "فشل تحميل المجلد",
|
||||
@@ -1111,14 +1202,17 @@
|
||||
"features": "الميزات",
|
||||
"features_in_development": "الميزات قيد التطوير",
|
||||
"features_setting_description": "إدارة ميزات التطبيق",
|
||||
"file_name": "إسم الملف",
|
||||
"file_name_or_extension": "اسم الملف أو امتداده",
|
||||
"file_name_text": "أسم الملف",
|
||||
"file_name_with_value": "اسم الملف: {file_name}",
|
||||
"file_size": "حجم الملف",
|
||||
"filename": "اسم الملف",
|
||||
"filetype": "نوع الملف",
|
||||
"filter": "تصفية",
|
||||
"filter_description": "شروط تصفية الأصول المستهدفة",
|
||||
"filter_people": "تصفية الاشخاص",
|
||||
"filter_places": "تصفية الاماكن",
|
||||
"filters": "التصفيات",
|
||||
"find_them_fast": "يمكنك العثور عليها بسرعة بالاسم من خلال البحث",
|
||||
"first": "الاول",
|
||||
"fix_incorrect_match": "إصلاح المطابقة غير الصحيحة",
|
||||
@@ -1128,12 +1222,16 @@
|
||||
"folders_feature_description": "تصفح عرض المجلد للصور ومقاطع الفيديو الموجودة على نظام الملفات",
|
||||
"forgot_pin_code_question": "هل نسيت رمز الPIN الخاص بك؟",
|
||||
"forward": "إلى الأمام",
|
||||
"free_up_space": "تحرير المساحة",
|
||||
"free_up_space_description": "نقل الصور والفديوات التي تم خزنها احتياطياالى سلة المهملات الخاصه بجهازك لتحرير المساحة. نسخك على اىخادم ستبقى بأمان.",
|
||||
"free_up_space_settings_subtitle": "تحرير خزن الجهاز",
|
||||
"full_path": "مسار كامل:{path}",
|
||||
"gcast_enabled": "كوكل كاست",
|
||||
"gcast_enabled_description": "تقوم هذه الميزة بتحميل الموارد الخارجية من Google حتى تعمل.",
|
||||
"general": "عام",
|
||||
"geolocation_instruction_location": "انقر على الاصل الذي يحتوي على إحداثيات نظام تحديد المواقع لاستخدام موقعه، أو اختر الموقع مباشرة من الخريطة",
|
||||
"get_help": "الحصول على المساعدة",
|
||||
"get_people_error": "خطأ استعادة الأشخاص",
|
||||
"get_wifiname_error": "تعذر الحصول على اسم شبكة Wi-Fi. تأكد من منح الأذونات اللازمة واتصالك بشبكة Wi-Fi",
|
||||
"getting_started": "البدء",
|
||||
"go_back": "الرجوع للخلف",
|
||||
@@ -1159,12 +1257,14 @@
|
||||
"header_settings_header_name_input": "اسم الرأس",
|
||||
"header_settings_header_value_input": "قيمة الرأس",
|
||||
"headers_settings_tile_title": "رؤوس وكيل مخصصة",
|
||||
"height": "الطول",
|
||||
"hi_user": "مرحبا {name} ({email})",
|
||||
"hide_all_people": "إخفاء جميع الأشخاص",
|
||||
"hide_gallery": "اخفاء المعرض",
|
||||
"hide_named_person": "إخفاء الشخص {name}",
|
||||
"hide_password": "اخفاء كلمة المرور",
|
||||
"hide_person": "اخفاء الشخص",
|
||||
"hide_schema": "اخفاء المخطط",
|
||||
"hide_text_recognition": "اخفاء التعرف على النص",
|
||||
"hide_unnamed_people": "إخفاء الأشخاص بدون إسم",
|
||||
"home_page_add_to_album_conflicts": "تمت إضافة {added} أصول إلى الألبوم {album}. {failed} أصول موجودة بالفعل في الألبوم.",
|
||||
@@ -1237,9 +1337,18 @@
|
||||
"ios_debug_info_processing_ran_at": "المعالجة جرت في {dateTime}",
|
||||
"items_count": "{count, plural, one {# عنصر} other {# عناصر}}",
|
||||
"jobs": "الوظائف",
|
||||
"json_editor": "محرر JSON",
|
||||
"json_error": "خطأ JSON",
|
||||
"keep": "احتفظ",
|
||||
"keep_albums": "الاحتفاظ بالالبومات",
|
||||
"keep_albums_count": "الاحتفاظ ب{count} {count, plural, one {البوم} other {البومات}}",
|
||||
"keep_all": "احتفظ بالكل",
|
||||
"keep_description": "اختر ما يبقى على جهازك عند تحرير المساحة.",
|
||||
"keep_favorites": "الاحتفاظ بالمفضلات",
|
||||
"keep_on_device": "احتفظ على الجهاز",
|
||||
"keep_on_device_hint": "اختر العناصر التي تريد ابقائها على الجهاز",
|
||||
"keep_this_delete_others": "احتفظ بهذا، واحذف الآخرين",
|
||||
"keeping": "الاحتفاظ ب: {items}",
|
||||
"kept_this_deleted_others": "تم الاحتفاظ بهذا الأصل وحذف {count, plural, one {# asset} other {# assets}}",
|
||||
"keyboard_shortcuts": "اختصارات لوحة المفاتيح",
|
||||
"language": "اللغة",
|
||||
@@ -1249,7 +1358,7 @@
|
||||
"language_setting_description": "اختر لغتك المفضلة",
|
||||
"large_files": "ملفات كبيرة",
|
||||
"last": "الاخير",
|
||||
"last_months": "{count, plural, one {شهر فائت} other {اشهر # فائتة}}",
|
||||
"last_months": "{count, plural, one {شهر فائت} other {فائتة # اشهر}}",
|
||||
"last_seen": "اخر ظهور",
|
||||
"latest_version": "احدث اصدار",
|
||||
"latitude": "خط العرض",
|
||||
@@ -1281,6 +1390,7 @@
|
||||
"local": "محلّي",
|
||||
"local_asset_cast_failed": "غير قادر على بث أصل لم يتم تحميله إلى الخادم",
|
||||
"local_assets": "أُصول (ملفات) محلية",
|
||||
"local_id": "الهوية المحلية",
|
||||
"local_media_summary": "ملخص الملفات المحلية",
|
||||
"local_network": "شبكة محلية",
|
||||
"local_network_sheet_info": "سيتصل التطبيق بالخادم من خلال عنوان URL هذا عند استخدام شبكة Wi-Fi المحددة",
|
||||
@@ -1332,10 +1442,28 @@
|
||||
"loop_videos_description": "فَعْل لتكرار مقطع فيديو تلقائيًا في عارض التفاصيل.",
|
||||
"main_branch_warning": "أنت تستخدم إصداراً قيد التطوير؛ ونحن نوصي بشدة باستخدام إصدار النشر!",
|
||||
"main_menu": "القائمة الرئيسية",
|
||||
"maintenance_action_restore": "استعادة قاعدة البيانات",
|
||||
"maintenance_description": "يجب وضع Immich في وضع الصيانة <link>وضع الصيانة</link>.",
|
||||
"maintenance_end": "انهاء وضع الصيانة",
|
||||
"maintenance_end_error": "فشل في انهاء وضع الصيانة.",
|
||||
"maintenance_logged_in_as": "حاليا مسجل باسم {user}",
|
||||
"maintenance_restore_from_backup": "استعادة من الخزن الاحتياطي",
|
||||
"maintenance_restore_library": "استعادة المكتبه الخاصة بك",
|
||||
"maintenance_restore_library_confirm": "إذا بدا هذا صحيحا، فتابع عملية استعادة النسخة الاحتياطية!",
|
||||
"maintenance_restore_library_description": "استعادة قاعدة البيانات",
|
||||
"maintenance_restore_library_folder_has_files": "{folder} يحتوي {count} مجلد(ات)",
|
||||
"maintenance_restore_library_folder_no_files": "{folder} لا يحتوي على ملفات!",
|
||||
"maintenance_restore_library_folder_pass": "قابل للقراءة والكتابة",
|
||||
"maintenance_restore_library_folder_read_fail": "غير قابل للقراءة",
|
||||
"maintenance_restore_library_folder_write_fail": "غير قابل للكتابة",
|
||||
"maintenance_restore_library_hint_missing_files": "قد تكون بعض الملفات المهمة مفقودة",
|
||||
"maintenance_restore_library_hint_regenerate_later": "يمكنك إعادة إنشاء هذه لاحقًا في الإعدادات",
|
||||
"maintenance_restore_library_hint_storage_template_missing_files": "هل تستخدم قالب تخزين؟ قد تكون بعض الملفات مفقودة",
|
||||
"maintenance_restore_library_loading": "جارٍ تحميل فحوصات السلامة والأساليب الاستدلالية…",
|
||||
"maintenance_task_backup": "جاري انشاء نسخة احتياطية لقاعدة البيانات الموجودة…",
|
||||
"maintenance_task_migrations": "تشغيل عمليات ترحيل قواعد البيانات…",
|
||||
"maintenance_task_restore": "جارٍ استعادة النسخة الاحتياطية المختارة…",
|
||||
"maintenance_task_rollback": "فشلت عملية الاستعادة، جارٍ التراجع إلى نقطة الاستعادة…",
|
||||
"maintenance_title": "غير متوفر مؤقتا",
|
||||
"make": "صنع",
|
||||
"manage_geolocation": "إدارة الموقع",
|
||||
@@ -1397,6 +1525,8 @@
|
||||
"minimize": "تصغير",
|
||||
"minute": "دقيقة",
|
||||
"minutes": "دقائق",
|
||||
"mirror_horizontal": "افقي",
|
||||
"mirror_vertical": "عمودي",
|
||||
"missing": "المفقودة",
|
||||
"mobile_app": "تطبيق الجوال",
|
||||
"mobile_app_download_onboarding_note": "قم بتنزيل التطبيق المصاحب للهاتف المحمول باستخدام الخيارات التالية",
|
||||
@@ -1405,11 +1535,14 @@
|
||||
"monthly_title_text_date_format": "ط ط ط",
|
||||
"more": "المزيد",
|
||||
"move": "تحريك",
|
||||
"move_down": "انزل الى الاسفل",
|
||||
"move_off_locked_folder": "تحريك خارج المجلد المقفل",
|
||||
"move_to": "نقل الى",
|
||||
"move_to_device_trash": "نقل إلى سلة مهملات الجهاز",
|
||||
"move_to_lock_folder_action_prompt": "{count} اضيف إلى المجلد المقفل",
|
||||
"move_to_locked_folder": "النقل الى مجلد مغلق",
|
||||
"move_to_locked_folder_confirmation": "هذه الصور والفديوات ستتم ازالتها من جميع الالبومات، ويمكنان تتم مشاهدتها فقط من خلال المجلد المقفل",
|
||||
"move_up": "تحرك الى الاعلى",
|
||||
"moved_to_archive": "تم نقل {count, plural, one {# اصل} other {# اصول}} الى الارشيف",
|
||||
"moved_to_library": "تم نقل {count, plural, one {# اصل} other {# اصول}} الى المكتبة",
|
||||
"moved_to_trash": "تم النقل إلى سلة المهملات",
|
||||
@@ -1419,6 +1552,7 @@
|
||||
"my_albums": "ألبوماتي",
|
||||
"name": "الاسم",
|
||||
"name_or_nickname": "الاسم أو اللقب",
|
||||
"name_required": "الاسم مطلوب",
|
||||
"navigate": "التنقل",
|
||||
"navigate_to_time": "انتقل إلى الوقت",
|
||||
"network_requirement_photos_upload": "استخدام بيانات الهاتف المحمول لعمل نسخة احتياطية للصور",
|
||||
@@ -1443,6 +1577,8 @@
|
||||
"next": "التالي",
|
||||
"next_memory": "الذكرى التالية",
|
||||
"no": "لا",
|
||||
"no_actions_added": "لم تتم إضافة إجراءات حتى الان",
|
||||
"no_albums_found": "لم يتم ايجاد البومات",
|
||||
"no_albums_message": "قم بإنشاء ألبوم لتنظيم الصور ومقاطع الفيديو الخاصة بك",
|
||||
"no_albums_with_name_yet": "يبدو أنه ليس لديك أي ألبومات بهذا الاسم حتى الآن.",
|
||||
"no_albums_yet": "يبدو أنه ليس لديك أي ألبومات حتى الآن.",
|
||||
@@ -1452,11 +1588,13 @@
|
||||
"no_cast_devices_found": "لم يتم ايجاد جهاز بث",
|
||||
"no_checksum_local": "لا توجد بيانات تحقق متاحة - يتعذر تحميل الاصول المحلية",
|
||||
"no_checksum_remote": "لا يوجد رمز تحقق متاح - يتعذر تحميل الاصل من الموقع البعيد",
|
||||
"no_configuration_needed": "لا حاجة إلى أي إعدادات",
|
||||
"no_devices": "لا يوجد اجهزة مرخصة",
|
||||
"no_duplicates_found": "لم يتم العثور على أي تكرارات.",
|
||||
"no_exif_info_available": "لا تتوفر معلومات exif",
|
||||
"no_explore_results_message": "قم برفع المزيد من الصور لاستكشاف مجموعتك.",
|
||||
"no_favorites_message": "أضف المفضلة للعثور بسرعة على أفضل الصور ومقاطع الفيديو",
|
||||
"no_filters_added": "لم تتم إضافة أي فلتر بعد",
|
||||
"no_libraries_message": "إنشاء مكتبة خارجية لعرض الصور ومقاطع الفيديو الخاصة بك",
|
||||
"no_local_assets_found": "لم يتم العثور على أي اصول محلية تتطابق مع قيمة التحقق هذه",
|
||||
"no_location_set": "لم يتم تحديد موقع",
|
||||
@@ -1470,6 +1608,7 @@
|
||||
"no_results_description": "جرب كلمة رئيسية مرادفة أو أكثر عمومية",
|
||||
"no_shared_albums_message": "قم بإنشاء ألبوم لمشاركة الصور ومقاطع الفيديو مع الأشخاص في شبكتك",
|
||||
"no_uploads_in_progress": "لا يوجد اي ملفات قيد الرفع",
|
||||
"none": "لا يوجد",
|
||||
"not_allowed": "غير مسموح",
|
||||
"not_available": "غير متاح",
|
||||
"not_in_any_album": "ليست في أي ألبوم",
|
||||
@@ -1552,6 +1691,7 @@
|
||||
"people": "الأشخاص",
|
||||
"people_edits_count": "تم تعديل {count, plural, one {# شخص } other {# أشخاص }}",
|
||||
"people_feature_description": "تصفح الصور ومقاطع الفيديو المجمعة حسب الأشخاص",
|
||||
"people_selected": "{count, plural, one {# شخص مختار} other {# اشخاص مختارين}}",
|
||||
"people_sidebar_description": "عرض رابط للأشخاص في الشريط الجانبي",
|
||||
"permanent_deletion_warning": "تحذير الحذف الدائم",
|
||||
"permanent_deletion_warning_setting_description": "إظهار تحذير عند حذف المحتويات نهائيًا",
|
||||
@@ -1576,11 +1716,14 @@
|
||||
"person_age_years": "{years, plural, other {# اعوام}} من العمر",
|
||||
"person_birthdate": "ولد في {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (مخفي)} other {}}",
|
||||
"person_recognized": "شخص تم التعرف عليه",
|
||||
"person_selected": "شخص مختار",
|
||||
"photo_shared_all_users": "يبدو أنك شاركت صورك مع جميع المستخدمين أو ليس لديك أي مستخدم للمشاركة معه.",
|
||||
"photos": "الصور",
|
||||
"photos_and_videos": "الصور ومقاطع الفيديو",
|
||||
"photos_count": "{count, plural, one {{count, number} صورة} other {{count, number} صور}}",
|
||||
"photos_from_previous_years": "صور من السنوات السابقة",
|
||||
"photos_only": "صور فقط",
|
||||
"pick_a_location": "اختر موقعًا",
|
||||
"pick_custom_range": "نطاق مخصص",
|
||||
"pick_date_range": "حدد نطاق التاريخ",
|
||||
@@ -1656,10 +1799,12 @@
|
||||
"purchase_settings_server_activated": "يتم إدارة مفتاح منتج الخادم من قبل مدير النظام",
|
||||
"query_asset_id": "استعلام عن معرف الأصل",
|
||||
"queue_status": "يتم الاضافة الى قائمة انتظار النسخ الاحتياطي {count}/{total}",
|
||||
"rate_asset": "تقييم الاصل",
|
||||
"rating": "تقييم نجمي",
|
||||
"rating_clear": "مسح التقييم",
|
||||
"rating_count": "{count, plural, one {# نجمة} other {# نجوم}}",
|
||||
"rating_description": "اعرض تقييم EXIF في لوحة المعلومات",
|
||||
"rating_set": "تم تحديد التصنيف {rating, plural, one {# نجمة} other {# نجوم}}",
|
||||
"reaction_options": "خيارات رد الفعل",
|
||||
"read_changelog": "قراءة سجل التغيير",
|
||||
"readonly_mode_disabled": "تم تعطيل وضع القراءة فقط",
|
||||
@@ -1759,9 +1904,11 @@
|
||||
"saved_settings": "تم حفظ الإعدادات",
|
||||
"say_something": "قل شيئًا",
|
||||
"scaffold_body_error_occurred": "حدث خطأ",
|
||||
"scan": "بحث",
|
||||
"scan_all_libraries": "فحص كل المكتبات",
|
||||
"scan_library": "مسح",
|
||||
"scan_settings": "إعدادات الفحص",
|
||||
"scanning": "جاري البحث",
|
||||
"scanning_for_album": "جارٍ الفحص عن ألبوم...",
|
||||
"search": "البحث",
|
||||
"search_albums": "البحث في الألبومات",
|
||||
@@ -1791,6 +1938,7 @@
|
||||
"search_filter_media_type_title": "اختر نوع الوسائط",
|
||||
"search_filter_ocr": "البحث عن طريق التعرف البصري على الحروف",
|
||||
"search_filter_people_title": "اختر الاشخاص",
|
||||
"search_filter_star_rating": "تقييم النجوم",
|
||||
"search_for": "البحث عن",
|
||||
"search_for_existing_person": "البحث عن شخص موجود",
|
||||
"search_no_more_result": "لا توجد نتائج اضافية",
|
||||
@@ -1825,17 +1973,23 @@
|
||||
"second": "ثانية",
|
||||
"see_all_people": "عرض جميع الأشخاص",
|
||||
"select": "إختر",
|
||||
"select_album": "اختر البوم",
|
||||
"select_album_cover": "تحديد غلاف الألبوم",
|
||||
"select_albums": "اختر البومات",
|
||||
"select_all": "تحديد الكل",
|
||||
"select_all_duplicates": "تحديد جميع النسخ المكررة",
|
||||
"select_all_in": "اختر الكل في {group}",
|
||||
"select_avatar_color": "تحديد لون الصورة الشخصية",
|
||||
"select_count": "{count, plural, one {اختر #} other {اختر #}}",
|
||||
"select_cutoff_date": "حدد تاريخ القطع",
|
||||
"select_face": "تحديد وجه",
|
||||
"select_featured_photo": "تحديد الصورة المميزة",
|
||||
"select_from_computer": "تحديد من الحاسب الآلي",
|
||||
"select_keep_all": "تحديد الأحتفاظ بالكل",
|
||||
"select_library_owner": "تحديد مالِك المكتبة",
|
||||
"select_new_face": "تحديد وجه جديد",
|
||||
"select_people": "اختر الاشخاص",
|
||||
"select_person": "اختر شخص",
|
||||
"select_person_to_tag": "اختر شخص لوضع علامة",
|
||||
"select_photos": "تحديد الصور",
|
||||
"select_trash_all": "تحديد حذف الكلِ",
|
||||
@@ -1971,6 +2125,7 @@
|
||||
"show_password": "إظهار كلمة المرور",
|
||||
"show_person_options": "إظهار خيارات الشخص",
|
||||
"show_progress_bar": "إظهار شريط التقدم",
|
||||
"show_schema": "أظهر المخطط",
|
||||
"show_search_options": "إظهار خيارات البحث",
|
||||
"show_shared_links": "عرض الروابط المشتركة",
|
||||
"show_slideshow_transition": "إظهار انتقال عرض الشرائح",
|
||||
@@ -1988,6 +2143,8 @@
|
||||
"skip_to_folders": "تخطي إلى المجلدات",
|
||||
"skip_to_tags": "تخطي إلى العلامات",
|
||||
"slideshow": "عرض الشرائح",
|
||||
"slideshow_repeat": "اعادة عرض الشرائح",
|
||||
"slideshow_repeat_description": "العودة إلى البداية عند انتهاء عرض الشرائح",
|
||||
"slideshow_settings": "إعدادات عرض الشرائح",
|
||||
"sort_albums_by": "رتب الألبومات حسب...",
|
||||
"sort_created": "تاريخ الإنشاء",
|
||||
@@ -2064,6 +2221,7 @@
|
||||
"theme_setting_theme_subtitle": "اختر إعدادات مظهر التطبيق",
|
||||
"theme_setting_three_stage_loading_subtitle": "قد يزيد التحميل من ثلاث مراحل من أداء التحميل ولكنه يسبب تحميل شبكة أعلى بكثير",
|
||||
"theme_setting_three_stage_loading_title": "تمكين تحميل ثلاث مراحل",
|
||||
"then": "ثم",
|
||||
"they_will_be_merged_together": "سيتم دمجهم معًا",
|
||||
"third_party_resources": "موارد الطرف الثالث",
|
||||
"time": "وقت",
|
||||
@@ -2098,6 +2256,13 @@
|
||||
"trash_page_select_assets_btn": "اختر الأصول",
|
||||
"trash_page_title": "سلة المهملات ({count})",
|
||||
"trashed_items_will_be_permanently_deleted_after": "سيتم حذفُ العناصر المحذوفة نِهائيًا بعد {days, plural, one {# يوم} other {# أيام }}.",
|
||||
"trigger": "مفعِل",
|
||||
"trigger_asset_uploaded": "تم رفع الاصل",
|
||||
"trigger_asset_uploaded_description": "يتم تفعيله عند تحميل أصل جديد",
|
||||
"trigger_description": "حدث يبدأ سير العمل",
|
||||
"trigger_person_recognized": "تم التعرف على شخص",
|
||||
"trigger_person_recognized_description": "يتم تفعيله عند اكتشاف شخص",
|
||||
"trigger_type": "نوع المفعل",
|
||||
"troubleshoot": "استكشاف المشاكل",
|
||||
"type": "النوع",
|
||||
"unable_to_change_pin_code": "تفيير رمز PIN غير ممكن",
|
||||
@@ -2112,6 +2277,7 @@
|
||||
"unhide_person": "أظهر الشخص",
|
||||
"unknown": "غير معروف",
|
||||
"unknown_country": "بلد غير معروف",
|
||||
"unknown_date": "تاريخ غير معروف",
|
||||
"unknown_year": "سنة غير معروفة",
|
||||
"unlimited": "غير محدود",
|
||||
"unlink_motion_video": "إلغاء ربط فيديو الحركة",
|
||||
@@ -2128,17 +2294,19 @@
|
||||
"unstack": "فك الكومه",
|
||||
"unstack_action_prompt": "تم ازالة تكديس {count}",
|
||||
"unstacked_assets_count": "تم إخراج {count, plural, one {# الأصل} other {# الأصول}} من التكديس",
|
||||
"unsupported_field_type": "نوع حقل غير مدعوم",
|
||||
"untagged": "غير مُعَلَّم",
|
||||
"untitled_workflow": "خطة سير عمل بدون عنوان",
|
||||
"up_next": "التالي",
|
||||
"update_location_action_prompt": "تحديث موقع {count} عناصر محددة على النحو التالي:",
|
||||
"updated_at": "تم التحديث",
|
||||
"updated_password": "تم تحديث كلمة المرور",
|
||||
"upload": "رفع",
|
||||
"upload_action_prompt": "{count} ملف في قائمة الانتظار للرفع",
|
||||
"upload_concurrency": "الرفع المتزامن",
|
||||
"upload_details": "تفاصيل الرفع",
|
||||
"upload_dialog_info": "هل تريد النسخ الاحتياطي للأصول (الأصول) المحددة إلى الخادم؟",
|
||||
"upload_dialog_title": "تحميل الأصول",
|
||||
"upload_error_with_count": "خطأ في رفع {count, plural, one {# اصل} other {# اصول}}",
|
||||
"upload_errors": "إكتمل الرفع مع {count, plural, one {# خطأ} other {# أخطاء}}, قم بتحديث الصفحة لرؤية المحتويات الجديدة التي تم رفعها.",
|
||||
"upload_finished": "تم الانتهاء من الرفع",
|
||||
"upload_progress": "متبقية {remaining, number} - معالجة {processed, number}/{total, number}",
|
||||
@@ -2174,6 +2342,7 @@
|
||||
"utilities": "أدوات",
|
||||
"validate": "تحقْق",
|
||||
"validate_endpoint_error": "الرجاء ادخال عنوان URL صالح",
|
||||
"validation_error": "خطأ في التحقق",
|
||||
"variables": "المتغيرات",
|
||||
"version": "الإصدار",
|
||||
"version_announcement_closing": "صديقك، أليكس",
|
||||
@@ -2185,10 +2354,12 @@
|
||||
"video_hover_setting_description": "تشغيل الصورة المصغرة للفيديو عند تحريك الماوس فوق العنصر. حتى عند التعطيل، يمكن بدء التشغيل عن طريق التمرير فوق رمز التشغيل.",
|
||||
"videos": "فيديوهات",
|
||||
"videos_count": "{count, plural, one {# مقطع فيديو } other {# مقاطع الفيديو }}",
|
||||
"videos_only": "الفديوات فقط",
|
||||
"view": "عرض",
|
||||
"view_album": "عرض الألبوم",
|
||||
"view_all": "عرض الكل",
|
||||
"view_all_users": "عرض كافة المستخدمين",
|
||||
"view_asset_owners": "عرض مالكي الأصول",
|
||||
"view_details": "رؤية التفاصيل",
|
||||
"view_in_timeline": "عرض في الجدول الزمني",
|
||||
"view_link": "عرض الرابط",
|
||||
@@ -2204,19 +2375,36 @@
|
||||
"viewer_stack_use_as_main_asset": "استخدم كأصل رئيسي",
|
||||
"viewer_unstack": "فك الكومه",
|
||||
"visibility_changed": "الرؤية تغيرت لـ {count, plural, one {شخص واحد} other {# عدة أشخاص}}",
|
||||
"visual": "مرئي",
|
||||
"visual_builder": "اداة نشاء مرئية",
|
||||
"waiting": "في الانتظار",
|
||||
"waiting_count": "الانتظار: {count}",
|
||||
"warning": "تحذير",
|
||||
"week": "أسبوع",
|
||||
"welcome": "مرحباً",
|
||||
"welcome_to_immich": "مرحباً بك في Immich",
|
||||
"width": "عُرض",
|
||||
"wifi_name": "اسم شبكة Wi-Fi",
|
||||
"workflow": "سير العمل",
|
||||
"workflow_delete_prompt": "هل أنت متأكد من حذف سير العمل هذا؟",
|
||||
"workflow_deleted": "تم حذف سير العمل",
|
||||
"workflow_description": "وصف سير العمل",
|
||||
"workflow_info": "معلومات سير العمل",
|
||||
"workflow_json": "ملف JSON لسير العمل",
|
||||
"workflow_json_help": "قم بتعديل إعدادات سير العمل بصيغة JSON. ستتم مزامنة التغييرات مع أداة الإنشاء المرئية.",
|
||||
"workflow_name": "اسم سير العمل",
|
||||
"workflow_navigation_prompt": "هل انت متاكد من المغادرة بدون حفظ التغييرات؟",
|
||||
"workflow_summary": "ملخص سير العمل",
|
||||
"workflow_update_success": "تم تحديث سير العمل بنجاح",
|
||||
"workflow_updated": "تم تحديث سير العمل",
|
||||
"workflows": "سير العمل",
|
||||
"workflows_help_text": "تعمل سير العمل على أتمتة الإجراءات على أصولك بناءً على المفعلات والفلاتر",
|
||||
"wrong_pin_code": "رمز التعريف الشخصي خاطئ",
|
||||
"year": "سنة",
|
||||
"years_ago": "{years, plural, one {# سنة} other {# سنوات}} مضت",
|
||||
"yes": "نعم",
|
||||
"you_dont_have_any_shared_links": "ليس لديك أي روابط مشتركة",
|
||||
"your_wifi_name": "اسم شبكة الاتصال اللاسلكي الخاص بك",
|
||||
"zero_to_clear_rating": "اضغط 0 لمسح تصنيف الاصول",
|
||||
"zoom_image": "تكبير الصورة",
|
||||
"zoom_to_bounds": "تكبير حتى حدود المنطقة"
|
||||
}
|
||||
|
||||
93
i18n/be.json
93
i18n/be.json
@@ -1,12 +1,14 @@
|
||||
{
|
||||
"about": "Аб",
|
||||
"about": "Аб прадукце",
|
||||
"account": "Уліковы запіс",
|
||||
"account_settings": "Налады ўліковага запісу",
|
||||
"acknowledge": "Пацвердзіць",
|
||||
"action": "Дзеянне",
|
||||
"action_common_update": "Абнавіць",
|
||||
"action_description": "Дзеянні, якія выконваюцца з адабранымі аб’ектамі",
|
||||
"actions": "Дзеянні",
|
||||
"active": "Актыўных",
|
||||
"active": "Апрацоўваюцца",
|
||||
"active_count": "Апрацоўваюцца: {count}",
|
||||
"activity": "Актыўнасць",
|
||||
"activity_changed": "Актыўнасць {enabled, select, true {уключана} other {адключана}}",
|
||||
"add": "Дадаць",
|
||||
@@ -14,10 +16,15 @@
|
||||
"add_a_location": "Дадаць месца",
|
||||
"add_a_name": "Дадаць імя",
|
||||
"add_a_title": "Дадаць загаловак",
|
||||
"add_action": "Дадаць дзеянне",
|
||||
"add_action_description": "Націсніце для дадання дзеяння",
|
||||
"add_assets": "Дадаць аб’екты",
|
||||
"add_birthday": "Дадаць дзень нараджэння",
|
||||
"add_endpoint": "Дадаць кропку доступу",
|
||||
"add_exclusion_pattern": "Дадаць шаблон выключэння",
|
||||
"add_location": "Дадайце месца",
|
||||
"add_filter": "Дадаць фільтр",
|
||||
"add_filter_description": "Націсніце для дадання ўмовы адбору",
|
||||
"add_location": "Дадаць месца",
|
||||
"add_more_users": "Дадаць больш карыстальнікаў",
|
||||
"add_partner": "Дадаць партнёра",
|
||||
"add_path": "Дадаць шлях",
|
||||
@@ -27,12 +34,15 @@
|
||||
"add_to_album": "Дадаць у альбом",
|
||||
"add_to_album_bottom_sheet_added": "Дададзена да {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Ужо знаходзіцца ў {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Некаторыя лакальныя актывы не могуць быць дададзены ў альбом",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Некаторыя лакальныя аб’екты не могуць быць дададзены ў альбом",
|
||||
"add_to_album_toggle": "Пераключыць выбар для {album}",
|
||||
"add_to_albums": "Дадаць у альбомы",
|
||||
"add_to_albums_count": "Дадаць у альбомы ({count})",
|
||||
"add_to_bottom_bar": "Дадаць у",
|
||||
"add_to_shared_album": "Дадаць у агульны альбом",
|
||||
"add_upload_to_stack": "Запампаваць і дадаць у набор",
|
||||
"add_url": "Дадаць URL",
|
||||
"add_workflow_step": "Дадаць крок працоўнага працэсу",
|
||||
"added_to_archive": "Дададзена ў архіў",
|
||||
"added_to_favorites": "Дададзена ў абраныя",
|
||||
"added_to_favorites_count": "Дададзена {count, number} да абранага",
|
||||
@@ -40,13 +50,13 @@
|
||||
"add_exclusion_pattern_description": "Дадайце шаблоны выключэнняў. Падтрымліваецца выкарыстанне сімвалаў * , ** і ?. Каб ігнараваць усе файлы ў любой дырэкторыі з назвай \"Raw\", выкарыстоўвайце \"**/Raw/**\". Каб ігнараваць усе файлы, якія заканчваюцца на \".tif\", выкарыстоўвайце \"**/.tif\". Каб ігнараваць абсолютны шлях, выкарыстоўвайце \"/path/to/ignore/**\".",
|
||||
"admin_user": "Адміністратар",
|
||||
"asset_offline_description": "Гэты знешні бібліятэчны актыў больш не знойдзены на дыску і быў перамешчаны ў сметніцу. Калі файл быў перамешчаны ў межах бібліятэкі, праверце вашу хроніку для новага адпаведнага актыва. Каб аднавіць гэты актыў, пераканайцеся, што шлях да файла ніжэй даступны для Immich і адскануйце бібліятэку.",
|
||||
"authentication_settings": "Налады праверкі сапраўднасці",
|
||||
"authentication_settings_description": "Кіраванне паролямі, OAuth, і іншыя налады праверкі сапраўднасці",
|
||||
"authentication_settings_disable_all": "Вы ўпэўнены, што жадаеце адключыць усе спосабы логіну? Логін будзе цалкам адключаны.",
|
||||
"authentication_settings": "Налады аўтэнтыфікацыі",
|
||||
"authentication_settings_description": "Кіраванне паролямі, OAuth і іншыя налады аўтэнтыфікацыі",
|
||||
"authentication_settings_disable_all": "Вы ўпэўнены, што хочаце адключыць усе спосабы ўваходу? Уваход будзе цалкам адключаны.",
|
||||
"authentication_settings_reenable": "Каб зноў уключыць, выкарыстайце <link>Каманду сервера</link>.",
|
||||
"background_task_job": "Фонавыя заданні",
|
||||
"backup_database": "Стварыць рэзервовую копію базы даных",
|
||||
"backup_database_enable_description": "Уключыць рэзерваванне базы даных",
|
||||
"backup_database_enable_description": "Уключыць стварэнне дампаў базы даных",
|
||||
"backup_keep_last_amount": "Колькасць папярэдніх рэзервовых копій для захавання",
|
||||
"backup_onboarding_1_description": "зняшняя копія ў воблаку або ў іншым фізічным месцы.",
|
||||
"backup_onboarding_2_description": "лакальныя копіі на іншых прыладах. Гэта ўключае ў сябе асноўныя файлы і лакальную рэзервовую копію гэтых файлаў.",
|
||||
@@ -59,12 +69,13 @@
|
||||
"backup_settings_description": "Кіраванне наладамі рэзервавання базы даных.",
|
||||
"cleared_jobs": "Ачышчаны заданні для: {job}",
|
||||
"config_set_by_file": "Канфігурацыя зараз усталявана праз файл канфігурацыі",
|
||||
"confirm_delete_library": "Вы ўпэўнены што жадаеце выдаліць бібліятэку {library}?",
|
||||
"confirm_delete_library": "Вы ўпэўнены што хочаце выдаліць бібліятэку {library}?",
|
||||
"confirm_delete_library_assets": "Вы ўпэўнены, што хочаце выдаліць гэтую бібліятэку? Гэта прывядзе да выдалення {count, plural, one {# актыву} other {усіх # актываў}}, якія змяшчаюцца ў Immich, і гэта дзеянне немагчыма будзе адмяніць. Файлы застануцца на дыску.",
|
||||
"confirm_email_below": "Каб пацвердзіць, увядзіце \"{email}\" ніжэй",
|
||||
"confirm_reprocess_all_faces": "Вы ўпэўнены, што хочаце пераапрацаваць усе твары? Гэта таксама прывядзе да выдалення імя людзей.",
|
||||
"confirm_user_password_reset": "Вы ўпэўнены ў тым, што жадаеце скінуць пароль {user}?",
|
||||
"confirm_user_pin_code_reset": "Вы ўпэўнены ў тым, што жадаеце скінуць PIN-код {user}?",
|
||||
"confirm_reprocess_all_faces": "Вы ўпэўнены, што хочаце пераапрацаваць усе твары? Гэта таксама прывядзе да выдалення імён людзей.",
|
||||
"confirm_user_password_reset": "Вы ўпэўнены ў тым, што хочаце скінуць пароль {user}?",
|
||||
"confirm_user_pin_code_reset": "Вы ўпэўнены ў тым, што хочаце скінуць PIN-код {user}?",
|
||||
"copy_config_to_clipboard_description": "Капіраваць бягучую канфігурацыю сістэмы ў JSON у буфер абмену",
|
||||
"create_job": "Стварыць заданне",
|
||||
"cron_expression": "Выраз Cron",
|
||||
"cron_expression_description": "Задайце інтэрвал сканавання, выкарыстоўваючы фармат cron. Для атрымання дадатковай інфармацыі, звярніцеся, напрыклад, да <link>Crontab Guru</link>",
|
||||
@@ -72,6 +83,8 @@
|
||||
"disable_login": "Адключыць уваход",
|
||||
"duplicate_detection_job_description": "Запусціць машыннае навучанне на актывах для выяўлення падобных выяў. Залежыць ад Smart Search",
|
||||
"exclusion_pattern_description": "Шаблоны выключэння дазваляюць ігнараваць файлы і папкі пры сканаванні вашай бібліятэкі. Гэта карысна, калі ў вас ёсць папкі, якія змяшчаюць файлы, якія вы не хочаце імпартаваць, напрыклад, файлы RAW.",
|
||||
"export_config_as_json_description": "Захаваць бягучую канфігурацыю сістэмы ў файл JSON",
|
||||
"external_libraries_page_description": "Кіраванне знешнімі бібліятэкамі",
|
||||
"face_detection": "Выяўленне твараў",
|
||||
"face_detection_description": "Выяўляць твары на фотаздымках і відэа з дапамогай машыннага навучання. Для відэа ўлічваецца толькі мініяцюра. \"Абнавіць\" (пера)апрацоўвае ўсе медыя. \"Скінуць\" дадаткова ачышчае ўсе бягучыя даныя пра твары. \"Адсутнічае\" ставіць у чаргу медыя, якія яшчэ не былі апрацаваныя. Выяўленыя твары будуць пастаўлены ў чаргу для распазнавання асоб пасля завяршэння выяўлення твараў, з групаваннем іх па існуючых або новых людзях.",
|
||||
"facial_recognition_job_description": "Групаваць выяўленыя твары па асобах. Гэты этап выконваецца пасля завяршэння выяўлення твараў. \"Скінуць\" (паўторна) перагрупоўвае ўсе твары. \"Адсутнічае\" ставіць у чаргу твары, якія яшчэ не прыпісаныя да якой-небудзь асобы.",
|
||||
@@ -87,40 +100,68 @@
|
||||
"image_prefer_embedded_preview": "Аддаваць перавагу ўбудаванай праяве",
|
||||
"image_prefer_embedded_preview_setting_description": "Выкарыстоўваць убудаваныя праявы ў RAW-фотаздымках ў якасці ўваходных даных для апрацоўкі малюнкаў, калі магчыма. Гэта дазваляе атрымаць больш дакладныя колеры для некаторых відарысаў, але ж якасць праяў залежыць ад камеры, і на відарысе можа быць больш артэфактаў сціску.",
|
||||
"image_prefer_wide_gamut": "Аддаць перавагу шырокай гаме",
|
||||
"image_prefer_wide_gamut_setting_description": "Выкарыстоўвайце Display P3 для мініяцюр. Гэта лепей захоўвае яркасць відарысаў з шырокай колеравай прасторай, але відарысы могуць выглядаць па-іншаму на старых прыладах са старай версіяй браузера. Відарысы sRGB захоўваюцца ў фармаце sRGB, што дазваляе пазбегнуць колеравых зрухаў.",
|
||||
"image_preview_description": "Відарыс сярэдняга памеру з выдаленымі метаданымі, выкарыстоўваецца пры праглядзе асобнага рэсурсу і для машыннага навучання",
|
||||
"image_preview_quality_description": "Якасць праявы ад 1 да 100. Чым вышэй, тым лепш, але пры гэтым ствараюцца файлы большага памеру і можа знізіцца хуткасць водгуку прыкладання. Ўстаноўка нізкага значэння можа паўплываць на якасць машыннага навучання.",
|
||||
"image_preview_title": "Налады папярэдняга прагляду",
|
||||
"image_quality": "Якасць",
|
||||
"image_resolution": "Раздзяляльнасць",
|
||||
"image_resolution_description": "Больш высокая раздзяляльнасць дазваляе захаваць больш дэталяў, але патрабуе больш часу для кадавання, прыводзіць да павялічвання памеру файлаў і можа знізіць хуткасць водгуку дадатку.",
|
||||
"image_settings": "Налады відарыса",
|
||||
"image_settings_description": "Кіруйце якасцю і раздзяляльнасцю сгенерыраваных відарысаў",
|
||||
"image_thumbnail_description": "Маленькая мініяцюра з выдаленымі метададзенымі, якая выкарыстоўваецца пры праглядзе груп фатаграфій, такіх як асноўная хроніка",
|
||||
"image_thumbnail_quality_description": "Якасць мініяцюр ад 1 да 100. Чым вышэй якасць, тым лепш, але пры гэтым ствараюцца файлы большага памеру і можа знізіцца хуткасць водгуку прыкладання.",
|
||||
"image_thumbnail_title": "Налады мініяцюр",
|
||||
"job_concurrency": "{job} канкурэнтнасць",
|
||||
"import_config_from_json_description": "Імпартаваць канфігурацыю сістэмы праз запампоўванне JSON файла настроек",
|
||||
"job_concurrency": "Колькасць паралельных патокаў задання {job}",
|
||||
"job_created": "Заданне створана",
|
||||
"job_not_concurrency_safe": "Гэта заданне небяспечнае для канкурэнтнага(адначасовага, паралельнага) выканання.",
|
||||
"job_not_concurrency_safe": "Гэта заданне небяспечнае для паралельнага выканання.",
|
||||
"job_settings": "Налады заданняў",
|
||||
"job_settings_description": "Кіраваць наладамі адначасовага (паралельнага) выканання задання",
|
||||
"job_settings_description": "Кіраваць наладамі паралельнага выканання заданняў",
|
||||
"jobs_delayed": "{jobCount, plural, other {# адкладзена}}",
|
||||
"jobs_failed": "{jobCount, plural, other {# не выканалася}}",
|
||||
"library_created": "Створана бібліятэка: {library}",
|
||||
"library_deleted": "Бібліятэка выдалена",
|
||||
"library_details": "Параметры бібліятэкі",
|
||||
"library_folder_description": "Вызначце папку для імпарту. Гэта папка, уключаючы падпапкі, будзе прасканавана на наяўнасць фота і відэа.",
|
||||
"library_remove_exclusion_pattern_prompt": "Вы упэўнены, што хочаце выдаліць гэты шаблон выключэння?",
|
||||
"library_remove_folder_prompt": "Вы упэўнены, што хочаце выдаліць гэту папку імпарту?",
|
||||
"library_scanning": "Сканаванне па раскладзе",
|
||||
"library_scanning_description": "Наладзьце параметры сканавання вашай бібліятэкі",
|
||||
"library_scanning_enable_description": "Уключыць сканаванне бібліятэкі па раскладзе",
|
||||
"library_scanning_enable_description": "Уключыць перыядычнае сканаванне бібліятэкі",
|
||||
"library_settings": "Знешняя бібліятэка",
|
||||
"library_settings_description": "Наладзьце параметры знешняй бібліятэкі",
|
||||
"library_tasks_description": "Сканаваць знешнія бібліятэкі на наяўнасць новых і/або змененых рэсурсаў",
|
||||
"library_updated": "Бібліятэка абноўлена",
|
||||
"library_watching_enable_description": "Назіраць за зменамі файлаў у знешніх бібліятэках",
|
||||
"library_watching_settings": "Сачыць за бібліятэкай (эксперыментальны)",
|
||||
"library_watching_settings": "[ЭКСПЕРЫМЕНТАЛЬНА] Сачыць за бібліятэкай",
|
||||
"library_watching_settings_description": "Аўтаматычна сачыць за зменамі ў файлах",
|
||||
"logging_enable_description": "Уключыць вядзенне журнала",
|
||||
"logging_level_description": "Калі уключана, які ўзровень журналявання выкарыстоўваць.",
|
||||
"logging_settings": "Вядзенне журнала",
|
||||
"machine_learning_availability_checks": "Праверка даступнасці",
|
||||
"machine_learning_availability_checks_description": "Аўтаматычна выяўляць і надаваць перавагу даступным серверам машыннага навучання",
|
||||
"machine_learning_availability_checks_enabled": "Уключыць праверку даступнасці",
|
||||
"machine_learning_availability_checks_interval": "Інтэрвал праверкі",
|
||||
"machine_learning_availability_checks_interval_description": "Інтэрвал у мілісекундах паміж праверкамі даступнасці",
|
||||
"machine_learning_availability_checks_timeout": "Час чакання запыту",
|
||||
"machine_learning_availability_checks_timeout_description": "Час чакання ў мілісекундах для праверкі даступнасці",
|
||||
"machine_learning_clip_model": "CLIP мадэль",
|
||||
"machine_learning_clip_model_description": "Назва CLIP мадэлі паказана <link>тут</link>. Звярніце ўвагу, што пры змене мадэлі неабходна паўторна запусціць заданне \"Smart Search\" для ўсіх відарысаў.",
|
||||
"machine_learning_duplicate_detection": "Выяўленне падобных",
|
||||
"machine_learning_duplicate_detection_enabled": "Уключыць выяўленне дублікатаў",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Калі адключана, абсалютна ідэнтычныя файлы ўсё роўна не будуць запампоўвацца.",
|
||||
"machine_learning_duplicate_detection_setting_description": "Выкарыстанне ўбудаванняў CLIP для пошуку верагодных дублікатаў",
|
||||
"machine_learning_enabled": "Уключыць машыннае навучанне",
|
||||
"machine_learning_enabled_description": "Калі адключана, усе функцыі машыннага навучання будуць адключаны незалежна ад налад ніжэй.",
|
||||
"machine_learning_facial_recognition": "Распазнаванне твараў",
|
||||
"machine_learning_facial_recognition_description": "Выяўленне, распазнаванне і групаванне твараў на відарысах",
|
||||
"machine_learning_facial_recognition_model": "Мадэль распазнавання твараў",
|
||||
"machine_learning_facial_recognition_model_description": "Мадэлі пералічаны ў парадку ўбывання іх памеру. Большыя мадэлі павольней і выкарыстоўваюць больш памяці, але даюць лепшыя вынікі. Звярніце увагу, што пасля змены мадэлі трэба зноў запусціць заданне распазнавання твараў для ўсіх відарысаў.",
|
||||
"machine_learning_facial_recognition_setting": "Уключыць распазнаванне твараў",
|
||||
"machine_learning_facial_recognition_setting_description": "Калі адключана, відарысы не будуць кадавацца для распазнавання твараў, і не будзе запаўняцца раздзел \"Людзі\" на старонцы \"Агляд\".",
|
||||
"machine_learning_ocr_max_resolution": "Максімальная раздзяляльнасць",
|
||||
"machine_learning_ocr_max_resolution_description": "Відарысы з раздзяляльнасцю больш гэтай будуць паменшаны з захаваннем суадносіны бакоў. Больш высокія значэнні павышаюць дакладнасць распазнавання, але патрабуюць больш часу на апрацоўку і выкарыстоўваюць больш памяці.",
|
||||
"map_dark_style": "Цёмны стыль",
|
||||
"map_enable_description": "Уключыць функцыі карты",
|
||||
"map_gps_settings": "Налады карты і GPS",
|
||||
@@ -128,6 +169,7 @@
|
||||
"map_settings": "Карта",
|
||||
"map_settings_description": "Кіраванне наладамі карты",
|
||||
"map_style_description": "URL-адрас style.json тэмы карты",
|
||||
"metadata_extraction_job_description": "Выняць метаданыя з файлаў, такія як месцазнаходжанне, твары і раздзяляльнасць",
|
||||
"metadata_settings": "Налады метаданых",
|
||||
"oauth_button_text": "Тэкст кнопкі",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -153,7 +195,11 @@
|
||||
"transcoding_accepted_video_codecs": "Прынятыя відэакодэкі",
|
||||
"transcoding_advanced_options_description": "Параметры, якія большасці карыстальнікаў не трэба змяняць",
|
||||
"transcoding_audio_codec": "Аудыякодэк",
|
||||
"transcoding_encoding_options": "Параметры кадзіравання",
|
||||
"transcoding_encoding_options": "Параметры кадавання",
|
||||
"transcoding_encoding_options_description": "Задайце кодэкі, раздзяляльнасць, якасць і іншыя параметры для кадавання відэа",
|
||||
"transcoding_optimal_description": "Відэа з раздзяляльнасцю вышэй мэтавай ці ў непрынятым фармаце",
|
||||
"transcoding_target_resolution": "Мэтавая раздзяляльнасць",
|
||||
"transcoding_target_resolution_description": "Вышэйшыя раздзяляльнасці могуць захаваць больш дэталей, але патрабуюць больш часу для кадавання, маюць большы памер файлаў і могуць зменшыць хуткасць адказу праграмы.",
|
||||
"transcoding_video_codec": "Відэакодэк",
|
||||
"trash_enabled_description": "Уключыць функцыі сметніцы",
|
||||
"trash_number_of_days": "Колькасць дзён",
|
||||
@@ -179,7 +225,7 @@
|
||||
"administration": "Кіраванне серверам",
|
||||
"advanced": "Пашыраныя",
|
||||
"advanced_settings_log_level_title": "Узровень вядзення журнала: {level}",
|
||||
"advanced_settings_proxy_headers_title": "Загалоўкі проксі",
|
||||
"advanced_settings_proxy_headers_title": "[ЭКСПЕРЫМЕНТАЛЬНА] Уласныя загалоўкі проксі",
|
||||
"advanced_settings_tile_subtitle": "Пашыраныя налады карыстальніка",
|
||||
"advanced_settings_troubleshooting_subtitle": "Уключыць дадатковыя функцыі для выпраўлення непаладак",
|
||||
"advanced_settings_troubleshooting_title": "Выпраўленне непаладак",
|
||||
@@ -326,16 +372,14 @@
|
||||
"editor": "Рэдактар",
|
||||
"editor_close_without_save_prompt": "Змены не будуць захаваны",
|
||||
"editor_close_without_save_title": "Закрыць рэдактар?",
|
||||
"editor_crop_tool_h2_aspect_ratios": "Суадносіны бакоў",
|
||||
"editor_crop_tool_h2_rotation": "Паварот",
|
||||
"error": "Памылка",
|
||||
"error_saving_image": "Памылка: {error}",
|
||||
"exif": "Exif",
|
||||
"exif_bottom_sheet_description": "Дадаць апісанне...",
|
||||
"explore": "Агляд",
|
||||
"favorite": "У абраным",
|
||||
"favorite_or_unfavorite_photo": "Дадаць або выдаліць фота з абранага",
|
||||
"favorites": "Абраныя",
|
||||
"file_name": "Назва файла",
|
||||
"filename": "Назва файла",
|
||||
"filetype": "Тып файла",
|
||||
"filter": "Фільтр",
|
||||
@@ -427,6 +471,7 @@
|
||||
"repository": "Рэпазіторый",
|
||||
"reset": "Скінуць",
|
||||
"reset_password": "Скінуць пароль",
|
||||
"resolution": "Раздзяляльнасць",
|
||||
"restore": "Аднавіць",
|
||||
"restore_all": "Аднавіць усё",
|
||||
"restore_user": "Аднавіць карыстальніка",
|
||||
@@ -447,6 +492,8 @@
|
||||
"search_page_your_map": "Ваша карта",
|
||||
"second": "Секунда",
|
||||
"send_message": "Адправіць паведамленне",
|
||||
"setting_image_viewer_original_subtitle": "Уключыце для запампавання зыходнага відарыса у поўнай раздзяляльнасці (шмат!). Адключыце каб зменшыць выкарыстанне трафіка (як сеткі, так і кэша прылады).",
|
||||
"setting_image_viewer_preview_subtitle": "Уключыце для запампавання відарыса сярэдняй раздзяляльнасці. Адключыце, каб загружаць толькі арыгінал ці мініяцюру.",
|
||||
"setting_languages_apply": "Ужыць",
|
||||
"setting_notifications_notify_never": "ніколі",
|
||||
"settings": "Налады",
|
||||
@@ -498,7 +545,7 @@
|
||||
"video_hover_setting": "Прайграванне мініяцюры відэа пры навядзенні курсора",
|
||||
"video_hover_setting_description": "Прайграванне мініяцюры відэа пры навядзенні курсора на элемент. Нават калі функцыя адключана, прайграванне можна пачаць, навёўшы курсор на значок прайгравання.",
|
||||
"videos": "Відэа",
|
||||
"videos_count": "{count, plural, one {# відэа} астатнія {# відэа}}",
|
||||
"videos_count": "{count, plural, one {# відэа} other {# відэа}}",
|
||||
"view": "Прагляд",
|
||||
"view_album": "Праглядзець альбом",
|
||||
"view_all": "Праглядзець усё",
|
||||
|
||||
220
i18n/bg.json
220
i18n/bg.json
@@ -5,6 +5,7 @@
|
||||
"acknowledge": "Потвърждавам",
|
||||
"action": "Действие",
|
||||
"action_common_update": "Обнови",
|
||||
"action_description": "Действия за изпълнение с филтрираните обекти",
|
||||
"actions": "Действия",
|
||||
"active": "Активни",
|
||||
"active_count": "Активни: {count}",
|
||||
@@ -15,9 +16,14 @@
|
||||
"add_a_location": "Добави местоположение",
|
||||
"add_a_name": "Добави име",
|
||||
"add_a_title": "Добaви заглавие",
|
||||
"add_action": "Добави действие",
|
||||
"add_action_description": "Натиснете за да добавите действие",
|
||||
"add_assets": "Добавяне на обекти",
|
||||
"add_birthday": "Добави дата на раждане",
|
||||
"add_endpoint": "Добави крайна точка",
|
||||
"add_exclusion_pattern": "Добави модел за изключване",
|
||||
"add_filter": "Добави филтър",
|
||||
"add_filter_description": "Натиснете за да добавите условие за филтър",
|
||||
"add_location": "Дoбави местоположение",
|
||||
"add_more_users": "Добави още потребители",
|
||||
"add_partner": "Добави партньор",
|
||||
@@ -36,6 +42,7 @@
|
||||
"add_to_shared_album": "Добави към споделен албум",
|
||||
"add_upload_to_stack": "Добави качените в група",
|
||||
"add_url": "Добави URL",
|
||||
"add_workflow_step": "Добави стъпка от работния процес",
|
||||
"added_to_archive": "Добавено към архива",
|
||||
"added_to_favorites": "Добавени към любимите ви",
|
||||
"added_to_favorites_count": "Добавени {count, number} към любими",
|
||||
@@ -97,6 +104,8 @@
|
||||
"image_preview_description": "Среден размер на изображението с премахнати метаданни, използвано при преглед на един елемент и за машинно обучение",
|
||||
"image_preview_quality_description": "Качество на предварителния преглед от 1 до 100. По-високата стойност е по-добра, но води до по-големи файлове и може да намали бързодействието на приложението. Задаването на ниска стойност може да повлияе на качеството на машинното обучение.",
|
||||
"image_preview_title": "Настройки на прегледа",
|
||||
"image_progressive": "Прогресивен JPEG",
|
||||
"image_progressive_description": "Изображенията, кодирани в прогресивен JPEG формат, се зареждат по-бързо, с постепенно подобряващо се качество. Това няма влияние на кодираните като WebP изображения.",
|
||||
"image_quality": "Качество",
|
||||
"image_resolution": "Резолюция",
|
||||
"image_resolution_description": "По-високите резолюции могат да запазят повече детайли, но изискват повече време за кодиране, имат по-големи размери на файловете и могат да намалят бързодействието на приложението.",
|
||||
@@ -181,10 +190,21 @@
|
||||
"machine_learning_smart_search_enabled": "Включване на Интелигентно Търсене",
|
||||
"machine_learning_smart_search_enabled_description": "Ако е деактивирано, изображенията няма да бъдат кодирани за Интелигентно Търсене.",
|
||||
"machine_learning_url_description": "URL на сървъра за машинно обучение. Ако са предоставени повече от един URL, всеки сървър ще бъде опитан един по един, докато един отговори успешно, в реда от първия до последния. Сървъри, които не отговорят, ще бъдат временно игнорирани, докато не се върнат онлайн.",
|
||||
"maintenance_delete_backup": "Изтриване на архив",
|
||||
"maintenance_delete_backup_description": "Този файл ще бъде безвъзвратно изтрит.",
|
||||
"maintenance_delete_error": "Неуспешно изтриване на архив.",
|
||||
"maintenance_restore_backup": "Възстановяване на архив",
|
||||
"maintenance_restore_backup_description": "Immich ще изтрие всички текущи данни и после ще възстанови данните от избрания архив. Първо ще направи нов архив.",
|
||||
"maintenance_restore_backup_different_version": "Този архив е създаден с различна версия на Immich!",
|
||||
"maintenance_restore_backup_unknown_version": "Неуспешно определяне на версията на архива.",
|
||||
"maintenance_restore_database_backup": "Възстановяване на данните от архив",
|
||||
"maintenance_restore_database_backup_description": "Връщане към предишно състояние на базата данни чрез използване на файл-архив",
|
||||
"maintenance_settings": "Обслужване",
|
||||
"maintenance_settings_description": "Преквлючване на сървъра Immich в режим на обслужване.",
|
||||
"maintenance_start": "Започни режим на обслужване",
|
||||
"maintenance_start": "Премини към режим на обслужване",
|
||||
"maintenance_start_error": "Неуспешно преминаване в режим на обслужване.",
|
||||
"maintenance_upload_backup": "Зареди файл-архив на базата данни",
|
||||
"maintenance_upload_backup_error": "Неуспешно зареждане на архив, това файл .sql/.sql.gz ли е?",
|
||||
"manage_concurrency": "Управление на паралелност",
|
||||
"manage_concurrency_description": "Отидете на страницата със задачи, за да управлявате едновременността им",
|
||||
"manage_log_settings": "Управление на настройките на записване",
|
||||
@@ -252,7 +272,7 @@
|
||||
"oauth_auto_register": "Автоматична регистрация",
|
||||
"oauth_auto_register_description": "Автоматично регистриране на нови потребители след влизане с OAuth",
|
||||
"oauth_button_text": "Текст на бутона",
|
||||
"oauth_client_secret_description": "Изисква се, когато доставчика на OAuth не поддържа PKCE (Proof Key for Code Exchange)",
|
||||
"oauth_client_secret_description": "Задължително за поверителен клиент или когато не се поддържа PKCE (Proof Key for Code Exchange) за публичен клиент.",
|
||||
"oauth_enable_description": "Влизане с OAuth",
|
||||
"oauth_mobile_redirect_uri": "URI за мобилно пренасочване",
|
||||
"oauth_mobile_redirect_uri_override": "URI пренасочване за мобилни устройства",
|
||||
@@ -326,7 +346,7 @@
|
||||
"template_email_invite_album": "Шаблон за покана за албум",
|
||||
"template_email_preview": "Преглед",
|
||||
"template_email_settings": "Шаблони за имейли",
|
||||
"template_email_update_album": "Шаблон за актуализация на албум",
|
||||
"template_email_update_album": "Шаблон за обновяване на албум",
|
||||
"template_email_welcome": "Шаблон за приветстващ имейл",
|
||||
"template_settings": "Шаблони за известия",
|
||||
"template_settings_description": "Управление на шаблони за известия",
|
||||
@@ -363,7 +383,7 @@
|
||||
"transcoding_hardware_acceleration": "Хардуерно ускорение",
|
||||
"transcoding_hardware_acceleration_description": "Експериментално: много по-бързо транскодиране, но може да понижи качеството при същия битрейт",
|
||||
"transcoding_hardware_decoding": "Хардуерно декодиране",
|
||||
"transcoding_hardware_decoding_setting_description": "Прилага се само за NVENC, QSV и RKMPP. Активира ускорение от край до край, вместо само да ускорява кодирането. Може да не работи с всички видеоклипове.",
|
||||
"transcoding_hardware_decoding_setting_description": "Активира ускорение от край до край, вместо само да ускорява кодирането. Може да не работи с всички видеоклипове.",
|
||||
"transcoding_max_b_frames": "Максимални B-фрейма",
|
||||
"transcoding_max_b_frames_description": "По-високите стойности подобряват ефективността на компресията, но забавят разкодирането. Може да не е съвместим с хардуерното ускорение на по-стари устройства. 0 деактивира B-фрейма, докато -1 задава тази стойност автоматично.",
|
||||
"transcoding_max_bitrate": "Максимален битрейт",
|
||||
@@ -431,6 +451,9 @@
|
||||
"admin_password": "Администраторска парола",
|
||||
"administration": "Администрация",
|
||||
"advanced": "Разширено",
|
||||
"advanced_settings_clear_image_cache": "Изчисти кеша за изображения",
|
||||
"advanced_settings_clear_image_cache_error": "Неуспешно изчистване на кеша за изображения",
|
||||
"advanced_settings_clear_image_cache_success": "Успешно изчистени {size}",
|
||||
"advanced_settings_enable_alternate_media_filter_subtitle": "При синхронизация, използвайте тази опция като филтър, основан на промяна на даден критерии. Опитайте само в случай, че приложението има проблем с откриване на всички албуми.",
|
||||
"advanced_settings_enable_alternate_media_filter_title": "[ЕКСПЕРИМЕНТАЛНО] Използвай филтъра на алтернативното устройство за синхронизация на албуми",
|
||||
"advanced_settings_log_level_title": "Ниво на запис в дневника: {level}",
|
||||
@@ -453,13 +476,13 @@
|
||||
"album": "Албум",
|
||||
"album_added": "Албумът е добавен",
|
||||
"album_added_notification_setting_description": "Получавайте известие по имейл, когато бъдете добавени към споделен албум",
|
||||
"album_cover_updated": "Обложката на албума е актуализирана",
|
||||
"album_cover_updated": "Обложката на албума е обновена",
|
||||
"album_delete_confirmation": "Сигурни ли сте, че искате да изтриете албума {album}?",
|
||||
"album_delete_confirmation_description": "Ако този албум е споделен, други потребители вече няма да имат достъп до него.",
|
||||
"album_deleted": "Албума е изтрит",
|
||||
"album_info_card_backup_album_excluded": "ИЗКЛЮЧЕН",
|
||||
"album_info_card_backup_album_included": "ВКЛЮЧЕН",
|
||||
"album_info_updated": "Информацията за албума е актуализирана",
|
||||
"album_info_updated": "Информацията за албума е обновена",
|
||||
"album_leave": "Да напусна ли албума?",
|
||||
"album_leave_confirmation": "Сигурни ли сте, че искате да напуснете {album}?",
|
||||
"album_name": "Име на албума",
|
||||
@@ -467,10 +490,12 @@
|
||||
"album_remove_user": "Премахване на потребител?",
|
||||
"album_remove_user_confirmation": "Сигурни ли сте, че искате да премахнете {user}?",
|
||||
"album_search_not_found": "Няма намерени албуми, отговарящи на търсенето ви",
|
||||
"album_selected": "Албума е избран",
|
||||
"album_share_no_users": "Изглежда, че сте споделили този албум с всички потребители или нямате друг потребител, с когото да го споделите.",
|
||||
"album_summary": "Обобщение на албума",
|
||||
"album_updated": "Албумът е актуализиран",
|
||||
"album_updated": "Албумът е обновен",
|
||||
"album_updated_setting_description": "Получавайте известие по имейл, когато споделен албум има нови файлове",
|
||||
"album_upload_assets": "Заредете обекти от компютъра в сървъра и ги добавете в албум",
|
||||
"album_user_left": "Напусна {album}",
|
||||
"album_user_removed": "Премахнат {user}",
|
||||
"album_viewer_appbar_delete_confirm": "Сигурни ли сте, че искате да изтриете този албум от своя профил?",
|
||||
@@ -488,9 +513,11 @@
|
||||
"albums_default_sort_order_description": "Първоначален ред на сортиране при създаване на нов албум.",
|
||||
"albums_feature_description": "Колекции от обекти, които могат да бъдат споделяни с други поребители.",
|
||||
"albums_on_device_count": "Албуми на устройството ({count})",
|
||||
"albums_selected": "{count, plural, one {Избран е # албум} other {Избрани са # албума}}",
|
||||
"all": "Всички",
|
||||
"all_albums": "Всички албуми",
|
||||
"all_people": "Всички хора",
|
||||
"all_photos": "Всички снимки",
|
||||
"all_videos": "Всички видеоклипове",
|
||||
"allow_dark_mode": "Разреши тъмен режим",
|
||||
"allow_edits": "Позволяване на редакции",
|
||||
@@ -498,6 +525,9 @@
|
||||
"allow_public_user_to_upload": "Позволете на публичния потребител да може да качва",
|
||||
"allowed": "Разрешено",
|
||||
"alt_text_qr_code": "Изображение на QR код",
|
||||
"always_keep": "Винаги пази",
|
||||
"always_keep_photos_hint": "При освобождаване на място ще бъдат запазени всички снимки на това устройство.",
|
||||
"always_keep_videos_hint": "При освобождаване на място ще бъдат запазени всички видеа на това устройство.",
|
||||
"anti_clockwise": "Обратно на часовниковата стрелка",
|
||||
"api_key": "API ключ",
|
||||
"api_key_description": "Тази стойност ще бъде показана само веднъж. Моля, не забравяйте да го копирате, преди да затворите прозореца.",
|
||||
@@ -524,10 +554,12 @@
|
||||
"archived_count": "{count, plural, other {Архивирани #}}",
|
||||
"are_these_the_same_person": "Това едно и също лице ли е?",
|
||||
"are_you_sure_to_do_this": "Сигурни ли сте, че искате да направите това?",
|
||||
"array_field_not_fully_supported": "Полетата на масива изискват ръчно редактиране на JSON",
|
||||
"asset_action_delete_err_read_only": "Не могат да се изтриват обекти само-за-четене, пропускане",
|
||||
"asset_action_share_err_offline": "Неуспешно получаване на офлайн обект/и, пропускаме",
|
||||
"asset_added_to_album": "Добавено в албум",
|
||||
"asset_adding_to_album": "Добавяне в албум…",
|
||||
"asset_created": "Обектът е създаден",
|
||||
"asset_description_updated": "Описанието на елемента е обновено",
|
||||
"asset_filename_is_offline": "Активът {filename} е офлайн",
|
||||
"asset_has_unassigned_faces": "Елементът има незададени лица",
|
||||
@@ -540,6 +572,9 @@
|
||||
"asset_list_layout_sub_title": "Разположение",
|
||||
"asset_list_settings_subtitle": "Настройки на мрежата на разполагане на снимки",
|
||||
"asset_list_settings_title": "Разполагане на снимки",
|
||||
"asset_not_found_on_device_android": "Обектът не е намерен на устройството",
|
||||
"asset_not_found_on_device_ios": "Обектът не е намерен на устройството. Ако използвате iCloud, обектът може да е недостъпен поради повреден файл, съхранен в iCloud",
|
||||
"asset_not_found_on_icloud": "Обектът не е намерен в iCloud. Обектът може да е недостъпен поради повреден файл, съхранен в iCloud",
|
||||
"asset_offline": "Елементът е офлайн",
|
||||
"asset_offline_description": "Този външен актив вече не се намира на диска. Моля, свържете се с администратора на Immich за помощ.",
|
||||
"asset_restored_successfully": "Успешно възстановен обект",
|
||||
@@ -691,7 +726,7 @@
|
||||
"canceling": "Анулиране",
|
||||
"cannot_merge_people": "Не може да обединява хора",
|
||||
"cannot_undo_this_action": "Не можете да отмените това действие!",
|
||||
"cannot_update_the_description": "Описанието не може да бъде актуализирано",
|
||||
"cannot_update_the_description": "Описанието не може да бъде обновено",
|
||||
"cast": "Поточно предаване",
|
||||
"cast_description": "Настройка на наличните цели за предаване",
|
||||
"change_date": "Промени датата",
|
||||
@@ -711,6 +746,8 @@
|
||||
"change_password_form_password_mismatch": "Паролите не съвпадат",
|
||||
"change_password_form_reenter_new_password": "Повтори новата парола",
|
||||
"change_pin_code": "Смени PIN кода",
|
||||
"change_trigger": "Промяна на тригера",
|
||||
"change_trigger_prompt": "Наистина ли искате да промените тригера? Това ще премахне всички налични действия и филтри.",
|
||||
"change_your_password": "Променете паролата си",
|
||||
"changed_visibility_successfully": "Видимостта е променена успешно",
|
||||
"charging": "При зареждане",
|
||||
@@ -722,6 +759,18 @@
|
||||
"checksum": "Контролна сума",
|
||||
"choose_matching_people_to_merge": "Изберете подходящи хора за сливане",
|
||||
"city": "Град",
|
||||
"cleanup_confirm_description": "Immich намери {count} обекта (създадени преди {date}), които са архивирани на сървъра. Да се премахнат ли локалните копия от това устройство?",
|
||||
"cleanup_confirm_prompt_title": "Да се премахнат ли от това устройство?",
|
||||
"cleanup_deleted_assets": "В кошчето са преместени {count} обекта",
|
||||
"cleanup_deleting": "Преместване в кошчето...",
|
||||
"cleanup_found_assets": "Намерени са {count} архивирани на сървъра обекта",
|
||||
"cleanup_found_assets_with_size": "Намерени са {count} архива с размер ({size})",
|
||||
"cleanup_icloud_shared_albums_excluded": "Споделените iCloud албуми са изключени от сканирането",
|
||||
"cleanup_no_assets_found": "Не са намерени обекти, които да отговарят на зададените критерии. За освобождване на място може да се премават само архивирани на сървъра обекти",
|
||||
"cleanup_preview_title": "Обекти за премахване ({count})",
|
||||
"cleanup_step3_description": "Сканиране за архивирани на сървъра снимки и видеа, според избраната дата и зададените опции на филтъра.",
|
||||
"cleanup_step4_summary": "{count} обекта (създадени преди {date}) за премахване от това устройство. Снимките ще останат достъпни чрез приложението Immich.",
|
||||
"cleanup_trash_hint": "За да освободите напълно мястото за съхранение, отворете системното приложение „Галерия“ и изпразнете кошчето",
|
||||
"clear": "Изчисти",
|
||||
"clear_all": "Изчисти всичко",
|
||||
"clear_all_recent_searches": "Изчистете всички скорошни търсения",
|
||||
@@ -733,6 +782,8 @@
|
||||
"client_cert_import": "Импорт",
|
||||
"client_cert_import_success_msg": "Клиентския сертификат е импортиран",
|
||||
"client_cert_invalid_msg": "Невалиден сертификат или грешна парола",
|
||||
"client_cert_password_message": "Въведете парола за този сертификат",
|
||||
"client_cert_password_title": "Парола за сертификат",
|
||||
"client_cert_remove_msg": "Клиентския сертификат е премахнат",
|
||||
"client_cert_subtitle": "Поддържа се само формат PKCS12 (.p12, .pfx). Импорт/премахване на сертификат може само преди вписване в системата",
|
||||
"client_cert_title": "Клиентски SSL сертификат [ЕКСПЕРИМЕНТАЛНО]",
|
||||
@@ -787,6 +838,7 @@
|
||||
"create_album": "Създай албум",
|
||||
"create_album_page_untitled": "Без заглавие",
|
||||
"create_api_key": "Създайте API ключ",
|
||||
"create_first_workflow": "Създайте първи работен процес",
|
||||
"create_library": "Създай библиотека",
|
||||
"create_link": "Създай линк",
|
||||
"create_link_to_share": "Създаване на линк за споделяне",
|
||||
@@ -801,17 +853,25 @@
|
||||
"create_tag": "Създай таг",
|
||||
"create_tag_description": "Създайте нов таг. За вложени тагове, моля, въведете пълния път на тага, включително наклонените черти.",
|
||||
"create_user": "Създай потребител",
|
||||
"create_workflow": "Създайте работен процес",
|
||||
"created": "Създадено",
|
||||
"created_at": "Създаден",
|
||||
"creating_linked_albums": "Създаване на свързани албуми...",
|
||||
"crop": "Изрежи",
|
||||
"crop_aspect_ratio_fixed": "Фиксиран",
|
||||
"crop_aspect_ratio_free": "Свободен",
|
||||
"crop_aspect_ratio_original": "Оригинален",
|
||||
"curated_object_page_title": "Неща",
|
||||
"current_device": "Текущо устройство",
|
||||
"current_pin_code": "Сегашен PIN код",
|
||||
"current_server_address": "Настоящ адрес на сървъра",
|
||||
"custom_date": "Персонализирана дата",
|
||||
"custom_locale": "Персонализиран локал",
|
||||
"custom_locale_description": "Форматиране на дати и числа в зависимост от езика и региона",
|
||||
"custom_url": "Персонализиран URL адрес",
|
||||
"cutoff_date_description": "Запазване на снимки от последните…",
|
||||
"cutoff_day": "{count, plural, one {ден} other {дни}}",
|
||||
"cutoff_year": "{count, plural, one {година} other {години}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM yyyy",
|
||||
"dark": "Тъмен",
|
||||
@@ -867,6 +927,7 @@
|
||||
"deselect_all": "Премахни избора от всички",
|
||||
"details": "Детайли",
|
||||
"direction": "Посока",
|
||||
"disable": "Забрани",
|
||||
"disabled": "Изключено",
|
||||
"disallow_edits": "Забраняване на редакциите",
|
||||
"discord": "Намери ни в Discord",
|
||||
@@ -892,6 +953,7 @@
|
||||
"download_include_embedded_motion_videos": "Вградени видеа",
|
||||
"download_include_embedded_motion_videos_description": "Включете видеата, вградени в динамични снимки, като отделен файл",
|
||||
"download_notfound": "Не е намерено за изтегляне",
|
||||
"download_original": "Сваляне на оригинал",
|
||||
"download_paused": "Изтеглянето е на пауза",
|
||||
"download_settings": "Изтегли",
|
||||
"download_settings_description": "Управление на настройките, свързани с изтеглянето на файлове",
|
||||
@@ -901,6 +963,7 @@
|
||||
"download_waiting_to_retry": "Изчакване за повторение",
|
||||
"downloading": "Изтегляне",
|
||||
"downloading_asset_filename": "Изтегляне на файл {filename}",
|
||||
"downloading_from_icloud": "Сваляне от iCloud",
|
||||
"downloading_media": "Изтегляне на медия",
|
||||
"drop_files_to_upload": "Пуснете файловете, за да ги качите",
|
||||
"duplicates": "Дубликати",
|
||||
@@ -929,11 +992,22 @@
|
||||
"edit_tag": "Редактирай таг",
|
||||
"edit_title": "Редактиране на заглавието",
|
||||
"edit_user": "Редактиране на потребител",
|
||||
"edit_workflow": "Редактиране на работен процес",
|
||||
"editor": "Редактор",
|
||||
"editor_close_without_save_prompt": "Промените няма да бъдат запазени",
|
||||
"editor_close_without_save_title": "Затваряне на редактора?",
|
||||
"editor_crop_tool_h2_aspect_ratios": "Съотношения на страните",
|
||||
"editor_crop_tool_h2_rotation": "Завъртане",
|
||||
"editor_confirm_reset_all_changes": "Сигурни ли сте, че искате да възстановите всички промени?",
|
||||
"editor_discard_edits_confirm": "Отхвърли промените",
|
||||
"editor_discard_edits_prompt": "Имате незапазени промени. Наистина ли искате да ги отхвърлите?",
|
||||
"editor_discard_edits_title": "Отхвърляме ли промените?",
|
||||
"editor_edits_applied_error": "Неуспешно прилагане на промените",
|
||||
"editor_edits_applied_success": "Успешно прилагане на промените",
|
||||
"editor_flip_horizontal": "Обърни хоризонтално",
|
||||
"editor_flip_vertical": "Обърни вертикално",
|
||||
"editor_orientation": "Ориентация",
|
||||
"editor_reset_all_changes": "Възстанови всички промени",
|
||||
"editor_rotate_left": "Завърти 90° обратно на часовниковата стрелка",
|
||||
"editor_rotate_right": "Завърти 90° по часовниковата стрелка",
|
||||
"email": "Имейл",
|
||||
"email_notifications": "Известия на имейл",
|
||||
"empty_folder": "Тази папка е празна",
|
||||
@@ -952,11 +1026,14 @@
|
||||
"error_change_sort_album": "Неуспешна промяна на реда на сортиране на албум",
|
||||
"error_delete_face": "Грешка при изтриване на лице от актива",
|
||||
"error_getting_places": "Грешка при събиране на местата",
|
||||
"error_loading_albums": "Грешка при зареждане на албуми",
|
||||
"error_loading_image": "Грешка при зареждане на изображението",
|
||||
"error_loading_partners": "Грешка при зареждане на партньори: {error}",
|
||||
"error_retrieving_asset_information": "Грешка при получаване на информация за обект",
|
||||
"error_saving_image": "Грешка: {error}",
|
||||
"error_tag_face_bounding_box": "Грешка при отбелязване на лице - неуспешно получаване на координати на рамката",
|
||||
"error_title": "Грешка - нещо се обърка",
|
||||
"error_while_navigating": "Грешка при навигиране към обект",
|
||||
"errors": {
|
||||
"cannot_navigate_next_asset": "Не можете да преминете към следващия файл",
|
||||
"cannot_navigate_previous_asset": "Не можете да преминете към предишния актив",
|
||||
@@ -1014,6 +1091,7 @@
|
||||
"unable_to_complete_oauth_login": "Не може да се завърши OAuth влизане",
|
||||
"unable_to_connect": "Не може да се свърже",
|
||||
"unable_to_copy_to_clipboard": "Не може да се копира в клипборда, уверете се, че имате достъп до страницата през https",
|
||||
"unable_to_create": "Неуспешно създаване на работен процес",
|
||||
"unable_to_create_admin_account": "Не може да създаде администраторски акаунт",
|
||||
"unable_to_create_api_key": "Не може да се създаде нов API ключ",
|
||||
"unable_to_create_library": "Не може да се създаде библиотека",
|
||||
@@ -1024,6 +1102,7 @@
|
||||
"unable_to_delete_exclusion_pattern": "Не може да изтрие шаблон за изключване",
|
||||
"unable_to_delete_shared_link": "Споделената връзка не може да се изтрие",
|
||||
"unable_to_delete_user": "Не може да изтрие потребител",
|
||||
"unable_to_delete_workflow": "Неуспешно премахване на работен процес",
|
||||
"unable_to_download_files": "Не могат да се изтеглят файловете",
|
||||
"unable_to_edit_exclusion_pattern": "Не може да се редактира шаблон за изключване",
|
||||
"unable_to_empty_trash": "Неуспешно изпразване на кошчето",
|
||||
@@ -1063,6 +1142,7 @@
|
||||
"unable_to_scan_library": "Неуспешно сканиране на библиотеката",
|
||||
"unable_to_set_feature_photo": "Неуспешно задаване на представителна снимка",
|
||||
"unable_to_set_profile_picture": "Неуспешно задаване на профилна снимка",
|
||||
"unable_to_set_rating": "Неуспешно задаване на рейтинг",
|
||||
"unable_to_submit_job": "Неуспешно задаване на задача",
|
||||
"unable_to_trash_asset": "Неуспешно премахване на файла",
|
||||
"unable_to_unlink_account": "Неуспешно отделяне на акаунта",
|
||||
@@ -1072,12 +1152,14 @@
|
||||
"unable_to_update_library": "Неуспешно обновяване на библиотеката",
|
||||
"unable_to_update_location": "Неуспешно обновяване на локацията",
|
||||
"unable_to_update_settings": "Неуспешно обновяване на настройките",
|
||||
"unable_to_update_timeline_display_status": "Невъзможно е актуализирането на състоянието на дисплея на времевата линия",
|
||||
"unable_to_update_timeline_display_status": "Невъзможно е обноваване на състоянието на дисплея на времевата линия",
|
||||
"unable_to_update_user": "Неуспешно обновяване на потребителя",
|
||||
"unable_to_update_workflow": "Неуспешно обновяване на работния процес",
|
||||
"unable_to_upload_file": "Неуспешно качване на файл"
|
||||
},
|
||||
"errors_text": "Грешки",
|
||||
"exclusion_pattern": "Шаблон за изключение",
|
||||
"exif": "Exif",
|
||||
"exif": "Еxif",
|
||||
"exif_bottom_sheet_description": "Добави Описание...",
|
||||
"exif_bottom_sheet_description_error": "Неуспешно обновяване на описание",
|
||||
"exif_bottom_sheet_details": "ПОДРОБНОСТИ",
|
||||
@@ -1116,18 +1198,21 @@
|
||||
"favorite_or_unfavorite_photo": "Добави или премахни снимка от Любими",
|
||||
"favorites": "Любими",
|
||||
"favorites_page_no_favorites": "Не са намерени любими обекти",
|
||||
"feature_photo_updated": "Представителната снимка е променена",
|
||||
"feature_photo_updated": "Представителната снимка е обновена",
|
||||
"features": "Функции",
|
||||
"features_in_development": "Функции в процес на разработка",
|
||||
"features_setting_description": "Управление на функциите на приложението",
|
||||
"file_name": "Име на файла",
|
||||
"file_name_or_extension": "Име на файл или разширение",
|
||||
"file_name_text": "Имe на файл",
|
||||
"file_name_with_value": "Име на файл: {file_name}",
|
||||
"file_size": "Размер на файла",
|
||||
"filename": "Име на файл",
|
||||
"filetype": "Тип на файл",
|
||||
"filter": "Филтър",
|
||||
"filter_description": "Условия за филтриране на обекти",
|
||||
"filter_people": "Филтриране на хора",
|
||||
"filter_places": "Филтър по място",
|
||||
"filters": "Филтри",
|
||||
"find_them_fast": "Намерете ги бързо по име с търсене",
|
||||
"first": "Първи",
|
||||
"fix_incorrect_match": "Поправяне на неправилно съвпадение",
|
||||
@@ -1137,12 +1222,16 @@
|
||||
"folders_feature_description": "Преглеждане на папката за снимките и видеоклиповете в файловата система",
|
||||
"forgot_pin_code_question": "Забравили сте своя ПИН код?",
|
||||
"forward": "Напред",
|
||||
"free_up_space": "Освобождаване на място",
|
||||
"free_up_space_description": "Преместете архивираните снимки и видеа в кошчето на устройството, за да освободите място. Копията на сървъра ще бъдат запазени.",
|
||||
"free_up_space_settings_subtitle": "Освобождаване на място за съхранение на устройството",
|
||||
"full_path": "Пълен път: {path}",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled": "Gооgle Cast",
|
||||
"gcast_enabled_description": "За да работи тази функция зарежда външни ресурси от Google.",
|
||||
"general": "Общи",
|
||||
"geolocation_instruction_location": "Изберете обект с GPS координати за да използвате тях или изберете място директно от картата",
|
||||
"get_help": "Помощ",
|
||||
"get_people_error": "Грешка при получаване на хора",
|
||||
"get_wifiname_error": "Неуспешно получаване името на Wi-Fi мрежата. Моля, убедете се, че са предоставени нужните разрешения на приложението и има връзка с Wi-Fi",
|
||||
"getting_started": "Как да започнем",
|
||||
"go_back": "Връщане назад",
|
||||
@@ -1175,6 +1264,7 @@
|
||||
"hide_named_person": "Скрий човек {name}",
|
||||
"hide_password": "Скрий парола",
|
||||
"hide_person": "Скрий човек",
|
||||
"hide_schema": "Скриване на схемата",
|
||||
"hide_text_recognition": "Скрий разпознатия текст",
|
||||
"hide_unnamed_people": "Скрий неназовани хора",
|
||||
"home_page_add_to_album_conflicts": "Добавени са {added} обекта в албума {album}. Вече има {failed} обекта.",
|
||||
@@ -1247,9 +1337,18 @@
|
||||
"ios_debug_info_processing_ran_at": "Започната обработка на {dateTime}",
|
||||
"items_count": "{count, plural, one {# елемент} other {# елементи}}",
|
||||
"jobs": "Задачи",
|
||||
"json_editor": "JSON редактор",
|
||||
"json_error": "Грешка в JSON",
|
||||
"keep": "Задръж",
|
||||
"keep_albums": "Запази албуми",
|
||||
"keep_albums_count": "Запазване на {count} {count, plural, one {албум} other {албума}}",
|
||||
"keep_all": "Задръж всички",
|
||||
"keep_description": "Изберете какво да остане на устройството при освобождаване на място.",
|
||||
"keep_favorites": "Запазване на любими",
|
||||
"keep_on_device": "Запази на устройството",
|
||||
"keep_on_device_hint": "Изберете обектите, които да бъдат запазени на устройството",
|
||||
"keep_this_delete_others": "Запази това, изтрий другите",
|
||||
"keeping": "Запазване: {items}",
|
||||
"kept_this_deleted_others": "Запази този елемент и другите изтрити {count, plural, one {# елемент} other {# елемента}}",
|
||||
"keyboard_shortcuts": "Бързи клавишни комбинации",
|
||||
"language": "Език",
|
||||
@@ -1316,7 +1415,7 @@
|
||||
"login_form_api_exception": "Грешка в комуникацията. Моля, провери URL на сървъра и опитай пак.",
|
||||
"login_form_back_button_text": "Обратно",
|
||||
"login_form_email_hint": "youremail@email.com",
|
||||
"login_form_endpoint_hint": "http://your-server-ip:port",
|
||||
"login_form_endpoint_hint": "http://yоur-server-ip:port",
|
||||
"login_form_endpoint_url": "URL адрес на сървъра",
|
||||
"login_form_err_http": "Моля, определи протокола http:// или https://",
|
||||
"login_form_err_invalid_email": "Невалиден имейл адрес",
|
||||
@@ -1343,10 +1442,28 @@
|
||||
"loop_videos_description": "Позволи автоматично повтаряне на видеото в изгледа на детайлите.",
|
||||
"main_branch_warning": "Използвате версия за разработчици, силно препоръчваме да използвате официална версия!",
|
||||
"main_menu": "Главно меню",
|
||||
"maintenance_action_restore": "Възвстановяване на базата данни",
|
||||
"maintenance_description": "Сървъра Immich е поставен в <link>режим на обслужване</link>.",
|
||||
"maintenance_end": "Край на режима на обслужване",
|
||||
"maintenance_end_error": "Неуспешно завършване на режима на обслужване.",
|
||||
"maintenance_logged_in_as": "Текущия потребител е {user}",
|
||||
"maintenance_restore_from_backup": "Възстановяване от архив",
|
||||
"maintenance_restore_library": "Възстановяване на библиотека",
|
||||
"maintenance_restore_library_confirm": "Ако това изглежда правилно, направете възстановяване от архив!",
|
||||
"maintenance_restore_library_description": "Възстановяване на базата данни",
|
||||
"maintenance_restore_library_folder_has_files": "{folder} има {count} папки",
|
||||
"maintenance_restore_library_folder_no_files": "В {folder} няма файлове!",
|
||||
"maintenance_restore_library_folder_pass": "за четене и за запис",
|
||||
"maintenance_restore_library_folder_read_fail": "не е читаем",
|
||||
"maintenance_restore_library_folder_write_fail": "не е записваем",
|
||||
"maintenance_restore_library_hint_missing_files": "Може да липсват важни файлове",
|
||||
"maintenance_restore_library_hint_regenerate_later": "Можете да ги генерирате отново по-късно в настройките",
|
||||
"maintenance_restore_library_hint_storage_template_missing_files": "Използвате ли шаблон за съхранение? Може да липсват файлове",
|
||||
"maintenance_restore_library_loading": "Зареждане на проверки за цялост и евристика…",
|
||||
"maintenance_task_backup": "Създаване на архив на съществуващата база данни…",
|
||||
"maintenance_task_migrations": "Изпълняват се миграции на базата данни…",
|
||||
"maintenance_task_restore": "Възстановяване от избрания архив…",
|
||||
"maintenance_task_rollback": "Възстановяването не е успешно, връщане към начална позиция…",
|
||||
"maintenance_title": "Временно недостъпен",
|
||||
"make": "Марка",
|
||||
"manage_geolocation": "Управление на местоположенията",
|
||||
@@ -1408,6 +1525,8 @@
|
||||
"minimize": "Минимизиране",
|
||||
"minute": "Минута",
|
||||
"minutes": "Минути",
|
||||
"mirror_horizontal": "Хоризонтално",
|
||||
"mirror_vertical": "Вертикално",
|
||||
"missing": "Липсващи",
|
||||
"mobile_app": "Мобилно приложение",
|
||||
"mobile_app_download_onboarding_note": "Свалете мобилното приложение Immich с някоя от следните опции",
|
||||
@@ -1416,11 +1535,14 @@
|
||||
"monthly_title_text_date_format": "MMMM г",
|
||||
"more": "Още",
|
||||
"move": "Премести",
|
||||
"move_down": "Премести надолу",
|
||||
"move_off_locked_folder": "Извади от заключената папка",
|
||||
"move_to": "Премести към",
|
||||
"move_to_device_trash": "Преместване в кошчето на устройството",
|
||||
"move_to_lock_folder_action_prompt": "{count} са добавени в заключената папка",
|
||||
"move_to_locked_folder": "Премести в заключена папка",
|
||||
"move_to_locked_folder_confirmation": "Тези снимки и видеа ще бъдат изтрити от всички албуми и ще са достъпни само в заключената папка",
|
||||
"move_up": "Премести нагоре",
|
||||
"moved_to_archive": "{count, plural, one {# обект е преместен} many {# обекта са преместени} other {# обекта са преместени}} в архива",
|
||||
"moved_to_library": "{count, plural, one {# обект е преместен} many {# обекта са преместени} other {# обекта са преместени}} в библиотеката",
|
||||
"moved_to_trash": "Преместено в кошчето",
|
||||
@@ -1430,6 +1552,7 @@
|
||||
"my_albums": "Мои албуми",
|
||||
"name": "Име",
|
||||
"name_or_nickname": "Име или прякор",
|
||||
"name_required": "Задължително е Име",
|
||||
"navigate": "Придвижване",
|
||||
"navigate_to_time": "Придвижване до момент във времето",
|
||||
"network_requirement_photos_upload": "Използвай мобилни данни за архивиране на снимки",
|
||||
@@ -1454,20 +1577,24 @@
|
||||
"next": "Следващо",
|
||||
"next_memory": "Следващ спомен",
|
||||
"no": "Не",
|
||||
"no_actions_added": "Все още не са добавени действия",
|
||||
"no_albums_found": "Не са намерени албуми",
|
||||
"no_albums_message": "Създайте албум за организиране на снимки и видеоклипове",
|
||||
"no_albums_with_name_yet": "Изглежда, че все още нямате албуми с това име.",
|
||||
"no_albums_yet": "Изглежда, че все още нямате албуми.",
|
||||
"no_archived_assets_message": "Архивирайте снимки и видеоклипове, за да ги скриете от изгледа на Снимки",
|
||||
"no_assets_message": "КЛИКНЕТЕ, ЗА ДА КАЧИТЕ ПЪРВАТА СИ СНИМКА",
|
||||
"no_assets_message": "Кликнете, за да качите първата снимка",
|
||||
"no_assets_to_show": "Няма обекти за показване",
|
||||
"no_cast_devices_found": "Няма намерени устройства за предаване",
|
||||
"no_checksum_local": "Липсват контролни суми - не може да се получат локални обекти",
|
||||
"no_checksum_remote": "Липсват контролни суми - не може да се получат обекти от сървъра",
|
||||
"no_configuration_needed": "Не е нужна конфигурация",
|
||||
"no_devices": "Няма оторизирани устройства",
|
||||
"no_duplicates_found": "Не бяха открити дубликати.",
|
||||
"no_exif_info_available": "Няма exif информация",
|
||||
"no_explore_results_message": "Качете още снимки, за да разгледате колекцията си.",
|
||||
"no_favorites_message": "Добавете в любими, за да намирате бързо най-добрите си снимки и видеоклипове",
|
||||
"no_filters_added": "Все още не са добавени филтри",
|
||||
"no_libraries_message": "Създайте външна библиотека за да разглеждате снимки и видеоклипове",
|
||||
"no_local_assets_found": "Не е намерен локален обект с такава контролна сума",
|
||||
"no_location_set": "Не е зададено местоположение",
|
||||
@@ -1481,6 +1608,7 @@
|
||||
"no_results_description": "Опитайте със синоним или по-обща ключова дума",
|
||||
"no_shared_albums_message": "Създайте албум, за да споделяте снимки и видеоклипове с хората в мрежата си",
|
||||
"no_uploads_in_progress": "Няма качване в момента",
|
||||
"none": "Нищо",
|
||||
"not_allowed": "Не е разрешено",
|
||||
"not_available": "Неналично",
|
||||
"not_in_any_album": "Не е в никой албум",
|
||||
@@ -1563,6 +1691,7 @@
|
||||
"people": "Хора",
|
||||
"people_edits_count": "Промени {count, plural, one {# човек} other {# човека}}",
|
||||
"people_feature_description": "Преглеждане на снимки и видеоклипове, групирани по хора",
|
||||
"people_selected": "{count, plural, one {Избран е # човек} other {Избрани са # човека}}",
|
||||
"people_sidebar_description": "Показване на връзка към хората в страничната лента",
|
||||
"permanent_deletion_warning": "Предупреждение за трайно изтриване",
|
||||
"permanent_deletion_warning_setting_description": "Показване на предупреждение при трайно изтриване на активи",
|
||||
@@ -1587,11 +1716,14 @@
|
||||
"person_age_years": "{years, plural, other {# години}}",
|
||||
"person_birthdate": "Дата на раждане {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (скрит)} other {}}",
|
||||
"person_recognized": "Разпознато e лице",
|
||||
"person_selected": "Избрано е лице",
|
||||
"photo_shared_all_users": "Изглежда, че сте споделили снимките си с всички потребители или нямате потребители, с които да споделяте.",
|
||||
"photos": "Снимки",
|
||||
"photos_and_videos": "Снимки и Видеа",
|
||||
"photos_count": "{count, plural, one {{count, number} Снимка} other {{count, number} Снимки}}",
|
||||
"photos_from_previous_years": "Снимки от предходни години",
|
||||
"photos_only": "Само снимки",
|
||||
"pick_a_location": "Избери локация",
|
||||
"pick_custom_range": "Произволен период",
|
||||
"pick_date_range": "Изберете период",
|
||||
@@ -1667,10 +1799,12 @@
|
||||
"purchase_settings_server_activated": "Продуктовият ключ на сървъра се управлява от администратора",
|
||||
"query_asset_id": "Buscar item per ID",
|
||||
"queue_status": "В опашка {count} от {total}",
|
||||
"rate_asset": "Задаване на рейтинг",
|
||||
"rating": "Оценка със звезди",
|
||||
"rating_clear": "Изчисти оценката",
|
||||
"rating_count": "{count, plural, one {# звезда} other {# звезди}}",
|
||||
"rating_description": "Покажи EXIF оценката в панела с информация",
|
||||
"rating_set": "Зададен е рейтинг {rating, plural, one {# звезда} other {# звезди}}",
|
||||
"reaction_options": "Избор на реакция",
|
||||
"read_changelog": "Прочети промените",
|
||||
"readonly_mode_disabled": "Режима само за четене е деактивиран",
|
||||
@@ -1770,9 +1904,11 @@
|
||||
"saved_settings": "Запазени настройки",
|
||||
"say_something": "Кажи нещо",
|
||||
"scaffold_body_error_occurred": "Възникна грешка",
|
||||
"scan": "Сканиранe",
|
||||
"scan_all_libraries": "Сканирай всички библиотеки",
|
||||
"scan_library": "Сканирай",
|
||||
"scan_settings": "Сканирай настройките",
|
||||
"scanning": "Сканиране",
|
||||
"scanning_for_album": "Сканирай за албум...",
|
||||
"search": "Търсене",
|
||||
"search_albums": "Търси албуми",
|
||||
@@ -1802,6 +1938,7 @@
|
||||
"search_filter_media_type_title": "Избери тип на файла",
|
||||
"search_filter_ocr": "Търсене нa текст",
|
||||
"search_filter_people_title": "Избери хора",
|
||||
"search_filter_star_rating": "Класация със звезди",
|
||||
"search_for": "Търси за",
|
||||
"search_for_existing_person": "Търси съществуващ човек",
|
||||
"search_no_more_result": "Няма други резултати",
|
||||
@@ -1836,17 +1973,23 @@
|
||||
"second": "Секунда",
|
||||
"see_all_people": "Вижте всички хора",
|
||||
"select": "Избери",
|
||||
"select_album": "Изберете албум",
|
||||
"select_album_cover": "Изберете обложка на албум",
|
||||
"select_albums": "Изберете албуми",
|
||||
"select_all": "Изберете всички",
|
||||
"select_all_duplicates": "Избери всички дубликати",
|
||||
"select_all_in": "Избери всички от групата {group}",
|
||||
"select_avatar_color": "Изберете цвят на аватара",
|
||||
"select_count": "{count, plural, one {Избран е #} other {Избрани са #}}",
|
||||
"select_cutoff_date": "Изберете крайна дата",
|
||||
"select_face": "Изберете лице",
|
||||
"select_featured_photo": "Избери представителна снимка",
|
||||
"select_from_computer": "Изберете от компютъра",
|
||||
"select_keep_all": "Избери \"задръж всички\"",
|
||||
"select_library_owner": "Изберете собственик на библиотека",
|
||||
"select_new_face": "Изберете ново лице",
|
||||
"select_people": "Изберете лица",
|
||||
"select_person": "Изберете човек",
|
||||
"select_person_to_tag": "Избери лице, което да маркираш",
|
||||
"select_photos": "Изберете снимки",
|
||||
"select_trash_all": "Изберете всичко за кошчето",
|
||||
@@ -1938,7 +2081,7 @@
|
||||
"shared_link_edit_expire_after_option_year": "{count} години",
|
||||
"shared_link_edit_password_hint": "Въведи парола за достъп до споделен ресурс",
|
||||
"shared_link_edit_submit_button": "Обнови връзката",
|
||||
"shared_link_error_server_url_fetch": "Не може да се извлече URL адресът на сървъра",
|
||||
"shared_link_error_server_url_fetch": "Не може да се извлече url-адресът на сървъра",
|
||||
"shared_link_expires_day": "Изтича след {count} ден",
|
||||
"shared_link_expires_days": "Изтича след {count} дни",
|
||||
"shared_link_expires_hour": "Изтича след {count} час",
|
||||
@@ -1982,6 +2125,7 @@
|
||||
"show_password": "Покажи паролата",
|
||||
"show_person_options": "Показване на опции за лица",
|
||||
"show_progress_bar": "Показване на прогрес бара",
|
||||
"show_schema": "Покажи схема",
|
||||
"show_search_options": "Показване на опциите за търсене",
|
||||
"show_shared_links": "Покажи споделени линкове",
|
||||
"show_slideshow_transition": "Покажи прехода на слайдшоуто",
|
||||
@@ -1999,6 +2143,8 @@
|
||||
"skip_to_folders": "Премини към папките",
|
||||
"skip_to_tags": "Премини към етикетите",
|
||||
"slideshow": "Слайдшоу",
|
||||
"slideshow_repeat": "Повтаряй слайдшоуто",
|
||||
"slideshow_repeat_description": "Започвай отново, когато слайдшоуто приключи",
|
||||
"slideshow_settings": "Настройки за слайдшоу",
|
||||
"sort_albums_by": "Сортиране на албуми по...",
|
||||
"sort_created": "Дата на създаване",
|
||||
@@ -2053,7 +2199,7 @@
|
||||
"tag_feature_description": "Разглеждане на снимки и видеоклипове, групирани по теми с логически тагове",
|
||||
"tag_not_found_question": "Не можете да намерите етикет? Създайте такъв <link>тук</link>",
|
||||
"tag_people": "Отбележи Хора",
|
||||
"tag_updated": "Актуализиран етикет: {tag}",
|
||||
"tag_updated": "Обновен етикет: {tag}",
|
||||
"tagged_assets": "Тагнати {count, plural, one {# елемент} other {# елементи}}",
|
||||
"tags": "Етикет",
|
||||
"tap_to_run_job": "Докоснете, за да стартирате задачата",
|
||||
@@ -2075,6 +2221,7 @@
|
||||
"theme_setting_theme_subtitle": "Задай настройки на цветовата тема на приложението",
|
||||
"theme_setting_three_stage_loading_subtitle": "Три-степенното зареждане може да увеличи производителността, но ще увеличи значително и мрежовия трафик",
|
||||
"theme_setting_three_stage_loading_title": "Включи три-степенно зареждане",
|
||||
"then": "След това",
|
||||
"they_will_be_merged_together": "Те ще бъдат обединени",
|
||||
"third_party_resources": "Ресурси от трети страни",
|
||||
"time": "Време",
|
||||
@@ -2109,6 +2256,13 @@
|
||||
"trash_page_select_assets_btn": "Избери обекти",
|
||||
"trash_page_title": "В коша ({count})",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Изхвърлените в кошчето елементи ще бъдат изтрити за постоянно след {days, plural, one {# ден} other {# дни}}.",
|
||||
"trigger": "Тригер",
|
||||
"trigger_asset_uploaded": "Обектът е зареден",
|
||||
"trigger_asset_uploaded_description": "Сработва при зареждане на нов обект",
|
||||
"trigger_description": "Събитие, което стартира работния процес",
|
||||
"trigger_person_recognized": "Разпознато е лице",
|
||||
"trigger_person_recognized_description": "Сработва при разпознаване на лице",
|
||||
"trigger_type": "Тип на тригера",
|
||||
"troubleshoot": "Отстраняване на проблеми",
|
||||
"type": "Тип",
|
||||
"unable_to_change_pin_code": "Невъзможна промяна на PIN кода",
|
||||
@@ -2123,6 +2277,7 @@
|
||||
"unhide_person": "Покажи отново човека",
|
||||
"unknown": "Неизвестно",
|
||||
"unknown_country": "Непозната Държава",
|
||||
"unknown_date": "Неизвестна дата",
|
||||
"unknown_year": "Неизвестна година",
|
||||
"unlimited": "Неограничено",
|
||||
"unlink_motion_video": "Премахни връзката с видео",
|
||||
@@ -2139,17 +2294,19 @@
|
||||
"unstack": "Разкачи",
|
||||
"unstack_action_prompt": "{count} са разгрупирани",
|
||||
"unstacked_assets_count": "Разкачени {count, plural, one {# елемент} other {# елементи}}",
|
||||
"unsupported_field_type": "Типа на полето не се поддържа",
|
||||
"untagged": "Немаркирани",
|
||||
"untitled_workflow": "Работен процес без име",
|
||||
"up_next": "Следващ",
|
||||
"update_location_action_prompt": "Обнови координатите на {count} избрани обекта с:",
|
||||
"updated_at": "Обновено",
|
||||
"updated_password": "Паролата е актуализирана",
|
||||
"updated_password": "Паролата е променена",
|
||||
"upload": "Качване",
|
||||
"upload_action_prompt": "{count} на опашка за качване",
|
||||
"upload_concurrency": "Успоредни качвания",
|
||||
"upload_details": "Детайли за качването",
|
||||
"upload_dialog_info": "Искате ли да архивирате на сървъра избраните обекти?",
|
||||
"upload_dialog_title": "Качи обект",
|
||||
"upload_error_with_count": "Грешка при зареждане на {count, plural, one {# обект} other {# обекта}}",
|
||||
"upload_errors": "Качването е завъшено с {count, plural, one {# грешка} other {# грешки}}, обновете страницата за да видите новите елементи.",
|
||||
"upload_finished": "Качването завърши",
|
||||
"upload_progress": "Остават {remaining, number} - Обработени {processed, number}/{total, number}",
|
||||
@@ -2164,7 +2321,7 @@
|
||||
"url": "URL",
|
||||
"usage": "Потребление",
|
||||
"use_biometric": "Използвай биометрия",
|
||||
"use_current_connection": "използвай текущата връзка",
|
||||
"use_current_connection": "Използвай текущата връзка",
|
||||
"use_custom_date_range": "Използвайте собствен диапазон от дати вместо това",
|
||||
"user": "Потребител",
|
||||
"user_has_been_deleted": "Този потребител е премахнат.",
|
||||
@@ -2185,6 +2342,7 @@
|
||||
"utilities": "Инструменти",
|
||||
"validate": "Валидиране",
|
||||
"validate_endpoint_error": "Моля, въведи правилен URL",
|
||||
"validation_error": "Грешка при валидиране",
|
||||
"variables": "Променливи",
|
||||
"version": "Версия",
|
||||
"version_announcement_closing": "Твой приятел, Алекс",
|
||||
@@ -2196,6 +2354,7 @@
|
||||
"video_hover_setting_description": "Възпроизвеждане на видеоклипа, когато мишката се движи над елемента. Дори когато е деактивирано, възпроизвеждането може да бъде стартирано чрез задържане на курсора на мишката върху иконата за възпроизвеждане.",
|
||||
"videos": "Видеоклипове",
|
||||
"videos_count": "{count, plural, one {# Видео} other {# Видеа}}",
|
||||
"videos_only": "Само видеа",
|
||||
"view": "Преглед",
|
||||
"view_album": "Разгледай албума",
|
||||
"view_all": "Преглед на всички",
|
||||
@@ -2216,6 +2375,8 @@
|
||||
"viewer_stack_use_as_main_asset": "Използвай като основен",
|
||||
"viewer_unstack": "Премахни от опашката",
|
||||
"visibility_changed": "Видимостта е променена за {count, plural, one {# човек} other {# човека}}",
|
||||
"visual": "Визуален",
|
||||
"visual_builder": "Визуален конструктор",
|
||||
"waiting": "в изчакване",
|
||||
"waiting_count": "В изчакване: {count}",
|
||||
"warning": "Внимание",
|
||||
@@ -2224,13 +2385,26 @@
|
||||
"welcome_to_immich": "Добре дошли в Immich",
|
||||
"width": "Ширинa",
|
||||
"wifi_name": "Wi-Fi мрежа",
|
||||
"workflow": "Работен процес",
|
||||
"workflow_delete_prompt": "Наистина ли искате да изтриете този работен процес?",
|
||||
"workflow_deleted": "Работния процес е изтрит",
|
||||
"workflow_description": "Описание на работния процес",
|
||||
"workflow_info": "Информация за работния процес",
|
||||
"workflow_json": "JSON на работния процес",
|
||||
"workflow_json_help": "Редактиране на конфигурацията на работния процес в JSON формат. Промените ще бъдат синхронизирани с визуалния конструктор.",
|
||||
"workflow_name": "Име на работния процес",
|
||||
"workflow_navigation_prompt": "Наистина ли искате да излезете без да съхраните промените?",
|
||||
"workflow_summary": "Обобщение за работния процес",
|
||||
"workflow_update_success": "Работният процес е успешно обновен",
|
||||
"workflow_updated": "Работният процес е обновен",
|
||||
"workflows": "Работни процеси",
|
||||
"workflows_help_text": "Работните процеси автоматизират действията с вашите обекти чрез тригери и филтри",
|
||||
"wrong_pin_code": "Грешен PIN код",
|
||||
"year": "Година",
|
||||
"years_ago": "преди {years, plural, one {# година} other {# години}}",
|
||||
"yes": "Да",
|
||||
"you_dont_have_any_shared_links": "Нямате споделени връзки",
|
||||
"your_wifi_name": "Вашата Wi-Fi мрежа",
|
||||
"zero_to_clear_rating": "натиснете 0, за да премахнете рейтинга",
|
||||
"zoom_image": "Увеличаване на изображението",
|
||||
"zoom_to_bounds": "Приближи до събиране в границите"
|
||||
}
|
||||
|
||||
220
i18n/bn.json
220
i18n/bn.json
@@ -5,18 +5,25 @@
|
||||
"acknowledge": "স্বীকৃতি",
|
||||
"action": "কার্য",
|
||||
"action_common_update": "আপডেট",
|
||||
"action_description": "বাছাইকৃত সম্পদসমূহের উপর সম্পাদনযোগ্য কাজের তালিকা",
|
||||
"actions": "কর্ম",
|
||||
"active": "সচল",
|
||||
"active_count": "Active: {count}",
|
||||
"activity": "কার্যকলাপ",
|
||||
"activity_changed": "একটিভিটি এখন {enabled, select, true {চালু} other {বন্ধ}} আছে",
|
||||
"activity_changed": "একটিভিটি এখন {enabled, select, true {enabled} other {disabled}} আছে",
|
||||
"add": "যোগ করুন",
|
||||
"add_a_description": "একটি বিবরণ যোগ করুন",
|
||||
"add_a_location": "একটি অবস্থান যোগ করুন",
|
||||
"add_a_name": "একটি নাম যোগ করুন",
|
||||
"add_a_title": "একটি শিরোনাম যোগ করুন",
|
||||
"add_birthday": "একটি জন্মদিন যোগ করুন",
|
||||
"add_action": "কর্ম যোগ করুন",
|
||||
"add_action_description": "সম্পাদন করার জন্য একটি কাজ যোগ করতে ক্লিক করুন",
|
||||
"add_assets": "সম্পদ যোগ করুন",
|
||||
"add_birthday": "জন্মদিন যোগ করুন",
|
||||
"add_endpoint": "এন্ডপয়েন্ট যোগ করুন",
|
||||
"add_exclusion_pattern": "বহির্ভূতকরণ নমুনা",
|
||||
"add_filter": "ফিল্টার যোগ করুন",
|
||||
"add_filter_description": "একটি ফিল্টার শর্ত যোগ করতে ক্লিক করুন",
|
||||
"add_location": "অবস্থান যুক্ত করুন",
|
||||
"add_more_users": "আরো ব্যবহারকারী যুক্ত করুন",
|
||||
"add_partner": "অংশীদার যোগ করুন",
|
||||
@@ -31,8 +38,11 @@
|
||||
"add_to_album_toggle": "{album} - এর নির্বাচন পরিবর্তন করুন",
|
||||
"add_to_albums": "অ্যালবামে যোগ করুন",
|
||||
"add_to_albums_count": "অ্যালবামে যোগ করুন ({count})",
|
||||
"add_to_bottom_bar": "এ যোগ করুন",
|
||||
"add_to_shared_album": "শেয়ার করা অ্যালবামে যোগ করুন",
|
||||
"add_upload_to_stack": "আপলোড স্ট্যাকে যোগ করুন",
|
||||
"add_url": "লিঙ্ক যোগ করুন",
|
||||
"add_workflow_step": "কাজের ধাপ যোগ করুন",
|
||||
"added_to_archive": "আর্কাইভ এ যোগ করা হয়েছে",
|
||||
"added_to_favorites": "ফেভারিটে যোগ করা হয়েছে",
|
||||
"added_to_favorites_count": "পছন্দের তালিকায় {count, number} যোগ করা হয়েছে",
|
||||
@@ -65,6 +75,7 @@
|
||||
"confirm_reprocess_all_faces": "আপনি কি নিশ্চিত যে আপনি সমস্ত মুখ পুনরায় প্রক্রিয়া করতে চান? এটি নামযুক্ত ব্যক্তিদেরও মুছে ফেলবে।",
|
||||
"confirm_user_password_reset": "আপনি কি নিশ্চিত যে আপনি {user} এর পাসওয়ার্ড রিসেট করতে চান?",
|
||||
"confirm_user_pin_code_reset": "আপনি কি নিশ্চিত যে আপনি {user} এর পিন কোড রিসেট করতে চান?",
|
||||
"copy_config_to_clipboard_description": "বর্তমান সিস্টেম কনফিগারেশন একটি JSON অবজেক্ট হিসেবে ক্লিপবোর্ডে কপি করুন",
|
||||
"create_job": "job তৈরি করুন",
|
||||
"cron_expression": "ক্রোন এক্সপ্রেশন",
|
||||
"cron_expression_description": "ক্রোন ফর্ম্যাট ব্যবহার করে স্ক্যানিং ব্যবধান সেট করুন। আরও তথ্যের জন্য দয়া করে দেখুন যেমন <link>Crontab Guru</link>",
|
||||
@@ -72,6 +83,8 @@
|
||||
"disable_login": "লগইন অক্ষম করুন",
|
||||
"duplicate_detection_job_description": "অনুরূপ ছবি সনাক্ত করতে সম্পদগুলিতে মেশিন লার্নিং চালান। স্মার্ট অনুসন্ধানের উপর নির্ভর করে",
|
||||
"exclusion_pattern_description": "এক্সক্লুশন প্যাটার্ন ব্যবহার করে আপনি আপনার লাইব্রেরি স্ক্যান করার সময় ফাইল এবং ফোল্ডারগুলিকে উপেক্ষা করতে পারবেন। যদি আপনার এমন ফোল্ডার থাকে যেখানে এমন ফাইল থাকে যা আপনি আমদানি করতে চান না, যেমন RAW ফাইল।",
|
||||
"export_config_as_json_description": "বর্তমান সিস্টেম কনফিগারেশন একটি JSON ফাইল হিসেবে ডাউনলোড করুন",
|
||||
"external_libraries_page_description": "অ্যাডমিন external লাইব্রেরি পেজ",
|
||||
"face_detection": "মুখ সনাক্তকরণ",
|
||||
"face_detection_description": "মেশিন লার্নিং ব্যবহার করে অ্যাসেটে থাকা মুখ/চেহারা গুলি সনাক্ত করুন। ভিডিও গুলির জন্য, শুধুমাত্র থাম্বনেইল বিবেচনা করা হয়। \"রিফ্রেশ\" (পুনরায়) সমস্ত অ্যাসেট প্রক্রিয়া করে। \"রিসেট\" করার মাধ্যমে অতিরিক্তভাবে সমস্ত বর্তমান মুখের ডেটা সাফ করে। \"অনুপস্থিত\" অ্যাসেটগুলিকে সারিবদ্ধ করে যা এখনও প্রক্রিয়া করা হয়নি। সনাক্ত করা মুখগুলিকে ফেসিয়াল রিকগনিশনের জন্য সারিবদ্ধ করা হবে, ফেসিয়াল ডিটেকশন সম্পূর্ণ হওয়ার পরে, বিদ্যমান বা নতুন ব্যক্তিদের মধ্যে গোষ্ঠীবদ্ধ করে।",
|
||||
"facial_recognition_job_description": "শনাক্ত করা মুখগুলিকে মানুষের মধ্যে গোষ্ঠীভুক্ত/গ্রুপ করুন। মুখ সনাক্তকরণ সম্পূর্ণ হওয়ার পরে এই ধাপটি চলে। \"রিসেট\" (পুনরায়) সমস্ত মুখকে ক্লাস্টার করে। \"অনুপস্থিত/মিসিং\" মুখগুলিকে সারিতে রাখে যেগুলো কোনও ব্যক্তিকে এসাইন/বরাদ্দ করা হয়নি।",
|
||||
@@ -91,6 +104,8 @@
|
||||
"image_preview_description": "স্ট্রিপড মেটাডেটা সহ মাঝারি আকারের ছবি, একটি একক সম্পদ দেখার সময় এবং মেশিন লার্নিংয়ের জন্য ব্যবহৃত হয়",
|
||||
"image_preview_quality_description": "১-১০০ এর মধ্যে প্রিভিউ কোয়ালিটি। বেশি হলে ভালো, কিন্তু বড় ফাইল তৈরি হয় এবং অ্যাপের প্রতিক্রিয়াশীলতা কমাতে পারে। কম মান সেট করলে মেশিন লার্নিং কোয়ালিটির উপর প্রভাব পড়তে পারে।",
|
||||
"image_preview_title": "প্রিভিউ সেটিংস",
|
||||
"image_progressive": "প্রগ্রেসিভ",
|
||||
"image_progressive_description": "ধীরে ধীরে লোড হওয়ার সুবিধার্থে JPEG ছবিগুলো প্রগ্রেসিভভাবে এনকোড করুন। WebP ছবির ক্ষেত্রে এটি কোনো প্রভাব ফেলবে না",
|
||||
"image_quality": "গুণমান",
|
||||
"image_resolution": "রেজোলিউশন",
|
||||
"image_resolution_description": "উচ্চ রেজোলিউশনের ক্ষেত্রে আরও বিস্তারিত তথ্য সংরক্ষণ করা সম্ভব কিন্তু এনকোড করতে বেশি সময় লাগে, ফাইলের আকার বড় হয় এবং অ্যাপের প্রতিক্রিয়াশীলতা কমাতে পারে।",
|
||||
@@ -99,6 +114,7 @@
|
||||
"image_thumbnail_description": "মেটাডেটা বাদ দেওয়া ছোট থাম্বনেইল, মূল টাইমলাইনের মতো ছবির গ্রুপ দেখার সময় ব্যবহৃত হয়",
|
||||
"image_thumbnail_quality_description": "থাম্বনেইলের মান ১-১০০। বেশি হলে ভালো, কিন্তু বড় ফাইল তৈরি হয় এবং অ্যাপের প্রতিক্রিয়াশীলতা কমাতে পারে।",
|
||||
"image_thumbnail_title": "থাম্বনেল সেটিংস",
|
||||
"import_config_from_json_description": "একটি JSON কনফিগ ফাইল আপলোড করে সিস্টেম কনফিগারেশন ইমপোর্ট করুন।",
|
||||
"job_concurrency": "{job} কনকারেন্সি",
|
||||
"job_created": "Job তৈরি হয়েছে",
|
||||
"job_not_concurrency_safe": "এই কাজটি সমান্তরালভাবে চালানো নিরাপদ নয়",
|
||||
@@ -106,14 +122,20 @@
|
||||
"job_settings_description": "কাজের সমান্তরালতা পরিচালনা করুন",
|
||||
"jobs_delayed": "{jobCount, plural, other {# বিলম্বিত}}",
|
||||
"jobs_failed": "{jobCount, plural, other {# ব্যর্থ}}",
|
||||
"jobs_over_time": "সময় অনুযায়ী কাজসমূহ",
|
||||
"library_created": "লাইব্রেরি তৈরি করা হয়েছেঃ {library}",
|
||||
"library_deleted": "লাইব্রেরি মুছে ফেলা হয়েছে",
|
||||
"library_details": "লাইব্রেরির বিবরণ",
|
||||
"library_folder_description": "ইমপোর্ট করার জন্য একটি ফোল্ডার নির্দিষ্ট করুন। এই ফোল্ডার এবং এর ভেতরের সমস্ত ফোল্ডার ছবি ও ভিডিওর জন্য স্ক্যান করা হবে।",
|
||||
"library_remove_exclusion_pattern_prompt": "আপনি কি নিশ্চিত যে আপনি এই এক্সক্লুশন প্যাটার্নটি মুছে ফেলতে চান?",
|
||||
"library_remove_folder_prompt": "আপনি কি নিশ্চিত যে আপনি এই ইমপোর্ট ফোল্ডারটি মুছে ফেলতে চান?",
|
||||
"library_scanning": "পর্যায়ক্রমিক স্ক্যানিং",
|
||||
"library_scanning_description": "পর্যায়ক্রমিক লাইব্রেরি স্ক্যানিং কনফিগার করুন",
|
||||
"library_scanning_enable_description": "পর্যায়ক্রমিক লাইব্রেরি স্ক্যানিং সক্ষম করুন",
|
||||
"library_settings": "বহিরাগত লাইব্রেরি",
|
||||
"library_settings_description": "বহিরাগত লাইব্রেরি সেটিংস পরিচালনা করুন",
|
||||
"library_tasks_description": "নতুন এবং/অথবা পরিবর্তিত সম্পদের জন্য বহিরাগত লাইব্রেরি স্ক্যান করুন",
|
||||
"library_updated": "আপডেটকৃত লাইব্রেরি।",
|
||||
"library_watching_enable_description": "ফাইল পরিবর্তনের জন্য বহিরাগত লাইব্রেরিগুলি দেখুন",
|
||||
"library_watching_settings": "লাইব্রেরি দেখা (পরীক্ষামূলক)",
|
||||
"library_watching_settings_description": "পরিবর্তিত ফাইলগুলির জন্য স্বয়ংক্রিয়ভাবে নজর রাখুন",
|
||||
@@ -125,9 +147,199 @@
|
||||
"machine_learning_availability_checks_enabled": "প্রাপ্যতা পরীক্ষা সক্ষম করুন",
|
||||
"machine_learning_availability_checks_interval": "চেক ব্যবধান",
|
||||
"machine_learning_availability_checks_interval_description": "প্রাপ্যতা পরীক্ষাগুলির মধ্যে ব্যবধান মিলিসেকেন্ডে",
|
||||
"machine_learning_availability_checks_timeout": "অনুরোধের সময়সীমা শেষ",
|
||||
"machine_learning_availability_checks_timeout_description": "প্রাপ্যতার পরীক্ষার জন্য মিলিসেকেন্ডে সময়সীমা।",
|
||||
"machine_learning_clip_model": "CLIP মডেল",
|
||||
"machine_learning_clip_model_description": "<link>এখানে</link> তালিকাভুক্ত একটি CLIP মডেলের নাম। মনে রাখবেন, মডেল পরিবর্তনের পর সব ছবির জন্য অবশ্যই ‘Smart Search’ কাজটি আবার চালাতে হবে।",
|
||||
"machine_learning_duplicate_detection": "পুনরাবৃত্তি সনাক্তকরণ",
|
||||
"machine_learning_duplicate_detection_enabled": "পুনরাবৃত্তি শনাক্তকরণ চালু করুন"
|
||||
}
|
||||
"machine_learning_duplicate_detection_enabled": "পুনরাবৃত্তি শনাক্তকরণ চালু করুন",
|
||||
"machine_learning_duplicate_detection_enabled_description": "নিষ্ক্রিয় থাকলেও হুবহু একই সম্পদগুলোর ডুপ্লিকেট সরিয়ে ফেলা হবে।",
|
||||
"machine_learning_duplicate_detection_setting_description": "সম্ভাব্য ডুপ্লিকেট খুঁজে বের করতে CLIP এম্বেডিং ব্যবহার করুন।",
|
||||
"machine_learning_enabled": "Machine Learning সক্ষম করুন",
|
||||
"machine_learning_enabled_description": "নিষ্ক্রিয় থাকলে নিচের সেটিংস নির্বিশেষে সমস্ত ML বৈশিষ্ট্য নিষ্ক্রিয় করা হবে।",
|
||||
"machine_learning_facial_recognition": "ফেসিয়াল রিকগনিশন",
|
||||
"machine_learning_facial_recognition_description": "ছবিতে মুখ সনাক্ত করুন, চিনুন এবং গ্রুপ করুন।",
|
||||
"machine_learning_facial_recognition_model": "ফেসিয়াল রিকগনিশন মডেল",
|
||||
"machine_learning_facial_recognition_model_description": "মডেলগুলি আকারের অধঃক্রম অনুযায়ী তালিকাভুক্ত করা হয়েছে। বড় মডেলগুলি ধীরগতির এবং বেশি মেমরি ব্যবহার করে, তবে উন্নত ফলাফল প্রদান করে। মনে রাখবেন যে একটি মডেল পরিবর্তন করার পর আপনাকে সমস্ত ছবির জন্য ফেস ডিটেকশন (Face Detection) কাজটি পুনরায় চালাতে হবে।",
|
||||
"machine_learning_facial_recognition_setting": "ফেসিয়াল রিকগনিশন সক্ষম করুন",
|
||||
"machine_learning_facial_recognition_setting_description": "নিষ্ক্রিয় থাকলে, ফেসিয়াল রিকগনিশনের জন্য ছবিগুলো এনকোড করা হবে না এবং এক্সপ্লোর পেজের পিপল (People) সেকশনটি পূর্ণ হবে না।",
|
||||
"machine_learning_max_detection_distance": "সর্বোচ্চ শনাক্তকরণ দূরত্ব",
|
||||
"machine_learning_max_detection_distance_description": "দুটি ছবিকে ডুপ্লিকেট হিসেবে গণ্য করার জন্য তাদের মধ্যকার সর্বোচ্চ দূরত্ব, যার পরিসীমা ০.০০১-০.১। মান যত বেশি হবে তত বেশি ডুপ্লিকেট শনাক্ত হবে, তবে এতে ভুল শনাক্তকরণের (false positives) সম্ভাবনা থাকতে পারে।",
|
||||
"machine_learning_max_recognition_distance": "সর্বোচ্চ চিহ্নিতকরণ দূরত্ব",
|
||||
"machine_learning_max_recognition_distance_description": "দুটি মুখকে একই ব্যক্তি হিসেবে গণ্য করার জন্য তাদের মধ্যকার সর্বোচ্চ দূরত্ব, যার পরিসীমা ০-২। এই মান কমালে দু’জন ভিন্ন ব্যক্তিকে একই ব্যক্তি হিসেবে চিহ্নিত করার সম্ভাবনা কমে, আর মান বাড়ালে একই ব্যক্তিকে দু’জন ভিন্ন ব্যক্তি হিসেবে চিহ্নিত করার সম্ভাবনা কমে। মনে রাখবেন যে, দু’জন ব্যক্তিকে একত্রিত করা (merge) অপেক্ষাকৃত সহজ কিন্তু একজনকে দু’ভাগে ভাগ করা কঠিন, তাই সম্ভব হলে থ্রেশহোল্ড (threshold) কম রাখাই ভালো।",
|
||||
"machine_learning_min_detection_score": "সর্বনিম্ন শনাক্তকরণ স্কোর",
|
||||
"machine_learning_min_detection_score_description": "ছবিতে মুখ শনাক্ত করার জন্য ০-১ এর মধ্যে সর্বনিম্ন কনফিডেন্স স্কোর। মান যত কম হবে তত বেশি মুখ শনাক্ত হবে, তবে এতে ভুল শনাক্তকরণের (false positives) সম্ভাবনা থাকতে পারে।",
|
||||
"machine_learning_min_recognized_faces": "সর্বনিম্ন স্বীকৃত মুখের সংখ্যা",
|
||||
"machine_learning_min_recognized_faces_description": "একজন ব্যক্তি হিসেবে তৈরি হওয়ার জন্য স্বীকৃত মুখের সর্বনিম্ন সংখ্যা। এটি বাড়ালে ফেসিয়াল রিকগনিশন আরও নিখুঁত হয়, তবে এতে কোনো মুখ কোনো ব্যক্তির সাথে সংযুক্ত না হওয়ার সম্ভাবনাও বৃদ্ধি পায়।",
|
||||
"machine_learning_ocr": "OCR",
|
||||
"machine_learning_ocr_description": "ছবিতে টেক্সট (Text) শনাক্ত করতে মেশিন লার্নিং ব্যবহার করুন।",
|
||||
"machine_learning_ocr_enabled": "OCR সক্ষম করুন",
|
||||
"machine_learning_ocr_enabled_description": "নিষ্ক্রিয় থাকলে, ছবিগুলোতে টেক্সট শনাক্তকরণ করা হবে না।",
|
||||
"machine_learning_ocr_max_resolution": "সর্বোচ্চ রেজোলিউশন(Resolution)",
|
||||
"machine_learning_ocr_max_resolution_description": "এই রেজোলিউশনের উপরের প্রিভিউগুলোর অ্যাসপেক্ট রেশিও (আকার ও অনুপাত) ঠিক রেখে রিসাইজ করা হবে। মান যত বেশি হবে ফলাফল তত বেশি নিখুঁত হবে, তবে এটি প্রসেস করতে সময় বেশি লাগবে এবং মেমরি বেশি ব্যবহার করবে।",
|
||||
"machine_learning_ocr_min_detection_score": "সর্বনিম্ন শনাক্তকরণ স্কোর",
|
||||
"machine_learning_ocr_min_detection_score_description": "টেক্সট শনাক্ত করার জন্য ০-১ এর মধ্যে ন্যূনতম কনফিডেন্স স্কোর। মান যত কম হবে তত বেশি টেক্সট শনাক্ত হবে, তবে এতে ভুল শনাক্তকরণের (false positives) সম্ভাবনা থাকতে পারে।",
|
||||
"machine_learning_ocr_min_recognition_score": "সর্বনিম্ন চিহ্নিতকরণ (Recognition)স্কোর",
|
||||
"machine_learning_ocr_min_score_recognition_description": "শনাক্তকৃত টেক্সট চিহ্নিত করার জন্য ০-১ এর মধ্যে ন্যূনতম কনফিডেন্স স্কোর। মান যত কম হবে তত বেশি টেক্সট চিহ্নিত হবে, তবে এতে ভুল শনাক্তকরণের (false positives) সম্ভাবনা থাকতে পারে।",
|
||||
"machine_learning_ocr_model": "OCR মডেল",
|
||||
"machine_learning_ocr_model_description": "সার্ভার মডেলগুলো মোবাইল মডেলের তুলনায় বেশি নির্ভুল, তবে এগুলো প্রসেস করতে সময় বেশি লাগে এবং মেমরি বেশি ব্যবহার করে।",
|
||||
"machine_learning_settings": "মেশিন লার্নিং সেটিংস (Machine Learning Settings)",
|
||||
"machine_learning_settings_description": "মেশিন লার্নিং বৈশিষ্ট্য এবং সেটিংস পরিচালনা করুন",
|
||||
"machine_learning_smart_search": "স্মার্ট সার্চ (Smart Search)",
|
||||
"machine_learning_smart_search_description": "CLIP এমবেডিং (embeddings) ব্যবহার করে ছবির বিষয়বস্তু অনুযায়ী অনুসন্ধান করুন",
|
||||
"machine_learning_smart_search_enabled": "স্মার্ট সার্চ সক্ষম করুন",
|
||||
"machine_learning_smart_search_enabled_description": "নিষ্ক্রিয় থাকলে, স্মার্ট সার্চের জন্য ছবিগুলো এনকোড (encode) করা হবে না।",
|
||||
"machine_learning_url_description": "মেশিন লার্নিং সার্ভারের URL। যদি একের বেশি URL প্রদান করা হয়, তবে একটি সফলভাবে সাড়া না দেওয়া পর্যন্ত প্রতিটি সার্ভারে এক এক করে চেষ্টা করা হবে (প্রথম থেকে শেষ ক্রমানুসারে)। যে সার্ভারগুলো সাড়া দেবে না, সেগুলো পুনরায় সচল হওয়া পর্যন্ত সাময়িকভাবে উপেক্ষা করা হবে।",
|
||||
"maintenance_delete_backup": "ব্যাকআপ (Backup)মুছুন",
|
||||
"maintenance_delete_backup_description": "এই ফাইলটি চিরতরে মুছে ফেলা হবে।",
|
||||
"maintenance_delete_error": "ব্যাকআপ মুছতে ব্যর্থ হয়েছে।",
|
||||
"maintenance_restore_backup": "ব্যাকআপ পুনরুদ্ধার(Restore) করুন",
|
||||
"maintenance_restore_backup_description": "Immich মুছে ফেলা হবে এবং নির্বাচিত ব্যাকআপ থেকে পুনরুদ্ধার করা হবে। কার্যক্রম চালিয়ে যাওয়ার আগে একটি ব্যাকআপ তৈরি করা হবে।",
|
||||
"maintenance_restore_backup_different_version": "এই ব্যাকআপটি Immich-এর একটি ভিন্ন সংস্করণের মাধ্যমে তৈরি করা হয়েছিল!",
|
||||
"maintenance_restore_backup_unknown_version": "ব্যাকআপ সংস্করণ নির্ধারণ করা সম্ভব হয়নি।",
|
||||
"maintenance_restore_database_backup": "ডেটাবেস ব্যাকআপ পুনরুদ্ধার করুন",
|
||||
"maintenance_restore_database_backup_description": "একটি ব্যাকআপ ফাইল ব্যবহার করে ডেটাবেসকে পূর্ববর্তী অবস্থায় ফিরিয়ে আনুন।",
|
||||
"maintenance_settings": "রক্ষণাবেক্ষণ (Maintenance)",
|
||||
"maintenance_settings_description": "Immich-কে রক্ষণাবেক্ষণ মোডে (maintenance mode) রাখুন।",
|
||||
"maintenance_start": "রক্ষণাবেক্ষণ মোডে পরিবর্তন করুন",
|
||||
"maintenance_start_error": "রক্ষণাবেক্ষণ মোড চালু করতে ব্যর্থ হয়েছে।",
|
||||
"maintenance_upload_backup": "ডেটাবেস ব্যাকআপ ফাইল আপলোড করুন",
|
||||
"maintenance_upload_backup_error": "ব্যাকআপ আপলোড করা যায়নি, এটি কি কোনো .sql/.sql.gz ফাইল?",
|
||||
"manage_concurrency": "কনকারেন্সি পরিচালনা করুন (Manage Concurrency)",
|
||||
"manage_concurrency_description": "জব কনকারেন্সি পরিচালনা করতে 'জবস' (Jobs) পাতায় যান।",
|
||||
"manage_log_settings": "লগ সেটিংস পরিচালনা করুন",
|
||||
"map_dark_style": "ডার্ক স্টাইল (Dark style)",
|
||||
"map_enable_description": "ম্যাপ ফিচারগুলো সক্রিয় করুন (Enable map features)",
|
||||
"map_gps_settings": "ম্যাপ এবং জিপিএস সেটিংস (Map & GPS Settings)",
|
||||
"map_gps_settings_description": "ম্যাপ এবং জিপিএস (রিভার্স জিওকোডিং) সেটিংস পরিচালনা করুন (Manage Map & GPS (Reverse Geocoding) Settings)",
|
||||
"map_implications": "ম্যাপ ফিচারটি একটি এক্সটার্নাল টাইল সার্ভিসের (tiles.immich.cloud) ওপর নির্ভর করে।",
|
||||
"map_light_style": "লাইট স্টাইল (Light style)",
|
||||
"map_manage_reverse_geocoding_settings": "<link>রিভার্স জিওকোডিং</link> সেটিংস পরিচালনা করুন",
|
||||
"map_reverse_geocoding": "রিভার্স জিওকোডিং (Reverse Geocoding)",
|
||||
"map_reverse_geocoding_enable_description": "রিভার্স জিওকোডিং সক্রিয় করুন (Enable reverse geocoding)",
|
||||
"map_reverse_geocoding_settings": "রিভার্স জিওকোডিং সেটিংস (Reverse Geocoding Settings)",
|
||||
"map_settings": "মানচিত্র (Map)",
|
||||
"map_settings_description": "মানচিত্রের সেটিংস পরিচালনা করুন (Manage map settings)",
|
||||
"map_style_description": "একটি style.json ম্যাপ থিমের URL (URL to a style.json map theme)",
|
||||
"memory_cleanup_job": "মেমরি ক্লিনআপ (Memory cleanup)",
|
||||
"memory_generate_job": "স্মৃতি তৈরি করা(Memory generation)",
|
||||
"metadata_extraction_job": "মেটাডেটা এক্সট্র্যাক্ট করুন (Extract metadata)",
|
||||
"metadata_extraction_job_description": "প্রতিটি অ্যাসেট (Asset) থেকে মেটাডেটা তথ্য এক্সট্র্যাক্ট করুন, যেমন: জিপিএস (GPS), চেহারা (faces) এবং রেজোলিউশন (resolution)।",
|
||||
"metadata_faces_import_setting": "ফেস ইম্পোর্ট সক্রিয় করুন (Enable face import)",
|
||||
"metadata_faces_import_setting_description": "ছবির EXIF ডেটা এবং সাইডকার (sidecar) ফাইল থেকে চেহারা (faces) ইম্পোর্ট করুন।",
|
||||
"metadata_settings": "মেটাডেটা সেটিংস (Metadata Settings)",
|
||||
"metadata_settings_description": "মেটাডেটা সেটিংস পরিচালনা করুন (Manage metadata settings)",
|
||||
"migration_job": "মাইগ্রেশন (Migration)",
|
||||
"migration_job_description": "অ্যাসেট এবং ফেস থাম্বনেইলগুলোকে সর্বশেষ ফোল্ডার স্ট্রাকচারে মাইগ্রেট করুন। (Migrate thumbnails for assets and faces to the latest folder structure)",
|
||||
"nightly_tasks_database_cleanup_setting": "ডেটাবেস ক্লিনআপ টাস্কসমূহ (Database cleanup tasks)",
|
||||
"nightly_tasks_database_cleanup_setting_description": "ডেটাবেস থেকে পুরোনো এবং মেয়াদোত্তীর্ণ ডেটা মুছে ফেলুন",
|
||||
"nightly_tasks_generate_memories_setting": "মেমোরিজ তৈরি করুন (Generate memories)",
|
||||
"nightly_tasks_generate_memories_setting_description": "অ্যাসেটগুলো থেকে নতুন মেমোরিজ তৈরি করুন",
|
||||
"nightly_tasks_missing_thumbnails_setting": "হারিয়ে যাওয়া থাম্বনেইলগুলো তৈরি করুন",
|
||||
"nightly_tasks_missing_thumbnails_setting_description": "থাম্বনেইল নেই এমন ফাইলগুলোকে কিউতে (Queue) যোগ করুন",
|
||||
"nightly_tasks_settings": "নাইটলি টাস্ক সেটিংস (Nightly Tasks Settings)",
|
||||
"nightly_tasks_settings_description": "নাইটলি টাস্ক পরিচালনা করুন (Manage nightly tasks)",
|
||||
"nightly_tasks_start_time_setting": "শুরু করার সময় (Start time)",
|
||||
"nightly_tasks_start_time_setting_description": "সার্ভার যখন নাইটলি টাস্ক (nightly tasks) চালানো শুরু করে সেই সময়",
|
||||
"nightly_tasks_sync_quota_usage_setting": "কোটা ব্যবহারের তথ্য সিঙ্ক করুন (Sync quota usage)",
|
||||
"nightly_tasks_sync_quota_usage_setting_description": "বর্তমান ব্যবহারের ওপর ভিত্তি করে ব্যবহারকারীর স্টোরেজ কোটা আপডেট করুন।",
|
||||
"no_paths_added": "কোনো পাথ যোগ করা হয়নি (No paths added)",
|
||||
"no_pattern_added": "কোনো প্যাটার্ন যোগ করা হয়নি (No pattern added)",
|
||||
"note_apply_storage_label_previous_assets": "দ্রষ্টব্য: পূর্বে আপলোড করা অ্যাসেটগুলোতে স্টোরেজ লেবেল (Storage Label) প্রয়োগ করতে নিচের কমান্ডটি রান করুন—",
|
||||
"note_cannot_be_changed_later": "সতর্কবার্তা: এটি পরবর্তীতে পরিবর্তন করা যাবে না!",
|
||||
"notification_email_from_address": "প্রেরকের ঠিকানা (From address)",
|
||||
"notification_email_from_address_description": "প্রেরকের ইমেল ঠিকানা, উদাহরণস্বরূপ: \"Immich Photo Server noreply@example.com\"। নিশ্চিত করুন যে আপনি এমন একটি ঠিকানা ব্যবহার করছেন যা থেকে ইমেল পাঠানোর অনুমতি আপনার আছে।",
|
||||
"notification_email_host_description": "ইমেল সার্ভারের হোস্ট (যেমন: smtp.immich.app)",
|
||||
"notification_email_ignore_certificate_errors": "সার্টিফিকেট ত্রুটিগুলো উপেক্ষা করুন (Ignore certificate errors)",
|
||||
"notification_email_ignore_certificate_errors_description": "TLS সার্টিফিকেট ভ্যালিডেশন ত্রুটিগুলো উপেক্ষা করুন (প্রস্তাবিত নয়)",
|
||||
"notification_email_password_description": "ইমেল সার্ভারে অথেন্টিকেশন বা সত্যতা যাচাইয়ের জন্য ব্যবহৃত পাসওয়ার্ড",
|
||||
"notification_email_port_description": "ইমেল সার্ভারের পোর্ট (যেমন: ২৫, ৪৬৫, অথবা ৫৮৭)",
|
||||
"notification_email_secure": "SMTPS (স্মার্ট মেইল ট্রান্সফার প্রোটোকল সিকিউর)",
|
||||
"notification_email_secure_description": "SMTPS (SMTP over TLS) ব্যবহার করুন",
|
||||
"notification_email_sent_test_email_button": "টেস্ট ইমেল পাঠান এবং সেভ করুন",
|
||||
"oauth_enable_description": "OAuth-এর মাধ্যমে লগইন করুন",
|
||||
"oauth_mobile_redirect_uri": "মোবাইল রিডাইরেক্ট ইউআরআই (URI)",
|
||||
"oauth_mobile_redirect_uri_override": "মোবাইল রিডাইরেক্ট ইউআরআই (URI) ওভাররাইড",
|
||||
"oauth_mobile_redirect_uri_override_description": "যখন OAuth প্রোভাইডার মোবাইল ইউআরআই (URI) অনুমতি দেয় না, যেমন ''{callback}'', তখন এটি সক্রিয় করুন।",
|
||||
"oauth_role_claim": "রোল ক্লেইম (Role Claim)",
|
||||
"oauth_role_claim_description": "এই ক্লেইমটির উপস্থিতির ওপর ভিত্তি করে স্বয়ংক্রিয়ভাবে অ্যাডমিন অ্যাক্সেস প্রদান করুন। ক্লেইমটিতে 'user' অথবা 'admin' যেকোনো একটি থাকতে পারে।",
|
||||
"oauth_settings": "OAuth",
|
||||
"oauth_settings_description": "OAuth লগইন সেটিংস ম্যানেজ করুন",
|
||||
"oauth_settings_more_details": "এই ফিচারের ব্যাপারে আরও বিস্তারিত জানতে, <link>ডকুমেন্টস</link> দেখুন।",
|
||||
"oauth_storage_label_claim": "স্টোরেজ লেবেল ক্লেইম (Storage label claim)",
|
||||
"oauth_storage_label_claim_description": "এই ক্লেইম-এর ভ্যালু অনুযায়ী ব্যবহারকারীর স্টোরেজ লেবেল স্বয়ংক্রিয়ভাবে সেট করুন।",
|
||||
"oauth_storage_quota_claim": "স্টোরেজ কোটা ক্লেইম (Storage quota claim)",
|
||||
"oauth_storage_quota_claim_description": "এই ক্লেইম-এর ভ্যালু অনুযায়ী ব্যবহারকারীর স্টোরেজ কোটা স্বয়ংক্রিয়ভাবে সেট করুন।",
|
||||
"oauth_storage_quota_default": "ডিফল্ট স্টোরেজ কোটা (GiB)",
|
||||
"oauth_storage_quota_default_description": "ক্লেইম না দেওয়া থাকলে যে স্টোরেজ কোটা (GiB-তে) ব্যবহার করা হবে।",
|
||||
"oauth_timeout": "রিকোয়েস্ট টাইম-আউট (Request Timeout)",
|
||||
"oauth_timeout_description": "মিলিসেকেন্ডে রিকোয়েস্টের টাইম-আউট (Timeout for requests in milliseconds)",
|
||||
"ocr_job_description": "ছবি থেকে টেক্সট শনাক্ত করতে মেশিন লার্নিং ব্যবহার করুন",
|
||||
"password_enable_description": "ইমেল এবং পাসওয়ার্ড দিয়ে লগইন করুন",
|
||||
"password_settings": "পাসওয়ার্ড লগইন (Password Login)",
|
||||
"password_settings_description": "পাসওয়ার্ড লগইন সেটিংস ম্যানেজ করুন",
|
||||
"paths_validated_successfully": "সবগুলো পাথ (path) সফলভাবে যাচাই করা হয়েছে",
|
||||
"person_cleanup_job": "পারসন ক্লিনআপ (Person Cleanup)",
|
||||
"queue_details": "কিউ ডিটেইলস (Queue Details)",
|
||||
"queues": "জব কিউ (Job Queues)",
|
||||
"queues_page_description": "অ্যাডমিন জব কিউ (Job Queues) পেজ",
|
||||
"quota_size_gib": "কোটা সাইজ (GiB)",
|
||||
"refreshing_all_libraries": "সবগুলো লাইব্রেরি রিফ্রেশ করা হচ্ছে",
|
||||
"registration": "অ্যাডমিন রেজিস্ট্রেশন (Admin Registration)",
|
||||
"registration_description": "যেহেতু আপনি এই সিস্টেমের প্রথম ব্যবহারকারী, তাই আপনাকে অ্যাডমিন (Admin) হিসেবে নিযুক্ত করা হবে। আপনি সমস্ত প্রশাসনিক কাজের জন্য দায়ী থাকবেন এবং পরবর্তী ব্যবহারকারীরা আপনার মাধ্যমেই তৈরি হবে।",
|
||||
"remove_failed_jobs": "ব্যর্থ হওয়া কাজগুলো মুছে ফেলুন (Remove failed jobs)",
|
||||
"require_password_change_on_login": "প্রথমবার লগইন করার সময় ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করা বাধ্যতামূলক করুন",
|
||||
"reset_settings_to_default": "সেটিংস রিসেট করে ডিফল্ট অবস্থায় ফিরিয়ে আনুন (Reset settings to default)",
|
||||
"reset_settings_to_recent_saved": "সম্প্রতি সেভ করা সেটিংসে রিসেট করুন (Reset settings to the recent saved settings)",
|
||||
"scanning_library": "লাইব্রেরি স্ক্যান করা হচ্ছে (Scanning library)",
|
||||
"search_jobs": "জব সার্চ করুন…",
|
||||
"send_welcome_email": "স্বাগত ইমেল পাঠান",
|
||||
"server_external_domain_settings": "এক্সটার্নাল ডোমেইন (External Domain)",
|
||||
"server_external_domain_settings_description": "পাবলিক শেয়ারিং লিঙ্কের জন্য ডোমেইন (http(s):// সহ)",
|
||||
"server_public_users": "পাবলিক ইউজার (Public Users)",
|
||||
"server_public_users_description": "শেয়ার করা অ্যালবামে কোনো ব্যবহারকারীকে যোগ করার সময় সমস্ত ব্যবহারকারীর (নাম এবং ইমেল) তালিকা দেখানো হয়। এটি নিষ্ক্রিয় (Disabled) করা হলে, ব্যবহারকারীর তালিকা শুধুমাত্র অ্যাডমিনদের জন্য উপলব্ধ হবে।",
|
||||
"server_settings": "সার্ভার সেটিংস (Server Settings)",
|
||||
"server_settings_description": "সার্ভার সেটিংস ম্যানেজ করুন (Manage server settings)",
|
||||
"server_stats_page_description": "অ্যাডমিন সার্ভার স্ট্যাটিস্টিকস (Server Statistics) পেজ",
|
||||
"server_welcome_message": "স্বাগত বার্তা (Welcome message)",
|
||||
"server_welcome_message_description": "লগইন পেজে প্রদর্শিত একটি বার্তা।",
|
||||
"settings_page_description": "অ্যাডমিন সেটিংস পেজ",
|
||||
"sidecar_job": "সাইডকার মেটাডেটা (Sidecar Metadata)",
|
||||
"sidecar_job_description": "ফাইলসিস্টেম থেকে সাইডকার মেটাডেটা অনুসন্ধান বা সিঙ্ক্রোনাইজ করুন",
|
||||
"slideshow_duration_description": "প্রতিটি ছবি দেখানোর সময়কাল (সেকেন্ডে)",
|
||||
"smart_search_job_description": "স্মার্ট সার্চের সুবিধার্থে অ্যাসেটগুলোর ওপর মেশিন লার্নিং পরিচালনা করুন",
|
||||
"storage_template_date_time_description": "অ্যাসেট তৈরির সময়কাল (Timestamp) তারিখ ও সময়ের তথ্যের জন্য ব্যবহৃত হয়",
|
||||
"storage_template_date_time_sample": "নমুনা সময় {date}",
|
||||
"storage_template_enable_description": "স্টোরেজ টেমপ্লেট ইঞ্জিন সক্রিয় করুন",
|
||||
"storage_template_hash_verification_enabled": "হ্যাশ ভেরিফিকেশন (Hash Verification) সক্রিয় করা হয়েছে",
|
||||
"storage_template_hash_verification_enabled_description": "হ্যাশ ভেরিফিকেশন (Hash Verification) সক্রিয় করে; এর প্রভাব সম্পর্কে নিশ্চিত না হয়ে এটি নিষ্ক্রিয় করবেন না",
|
||||
"storage_template_migration": "স্টোরেজ টেমপ্লেট মাইগ্রেশন (Storage Template Migration)",
|
||||
"storage_template_migration_description": "পূর্বে আপলোড করা অ্যাসেটগুলোতে বর্তমান <link>{template}</link> প্রয়োগ করুন",
|
||||
"storage_template_migration_info": "স্টোরেজ টেমপ্লেটটি সমস্ত এক্সটেনশনকে ছোট হাতের অক্ষরে (lowercase) রূপান্তর করবে। টেমপ্লেটের পরিবর্তনগুলো কেবল নতুন অ্যাসেটগুলোর ক্ষেত্রে প্রযোজ্য হবে। পূর্বে আপলোড করা অ্যাসেটগুলোতে এই টেমপ্লেটটি ভূতাপেক্ষভাবে (retroactively) প্রয়োগ করতে <link>{job}</link> রান করুন।",
|
||||
"storage_template_migration_job": "স্টোরেজ টেমপ্লেট মাইগ্রেশন জব",
|
||||
"storage_template_more_details": "এই ফিচারটি সম্পর্কে আরও বিস্তারিত জানতে, <template-link>Storage Template</template-link> এবং এর <implications-link>প্রভাবগুলো (implications)</implications-link> দেখুন।",
|
||||
"storage_template_onboarding_description_v2": "এটি সক্রিয় থাকলে, ফিচারটি ব্যবহারকারীর নির্ধারিত টেমপ্লেট অনুযায়ী ফাইলগুলোকে স্বয়ংক্রিয়ভাবে অর্গানাইজ (Auto-organize) করবে। আরও তথ্যের জন্য অনুগ্রহ করে <link>ডকুমেন্টেশন</link> দেখুন।",
|
||||
"storage_template_path_length": "আনুমানিক পাথ লেন্থ লিমিট (Path length limit): <b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "স্টোরেজ টেমপ্লেট (Storage Template)",
|
||||
"storage_template_settings_description": "আপলোড করা অ্যাসেটের ফোল্ডার স্ট্রাকচার এবং ফাইল নেম ম্যানেজ করুন",
|
||||
"storage_template_user_label": "<code>{label}</code> হলো ব্যবহারকারীর স্টোরেজ লেবেল (Storage Label)",
|
||||
"theme_settings_description": "ইমিচ (Immich) ওয়েব ইন্টারফেসের কাস্টমাইজেশন ম্যানেজ করুন",
|
||||
"thumbnail_generation_job": "থাম্বনেইল তৈরি করুন (Generate Thumbnails)",
|
||||
"thumbnail_generation_job_description": "প্রতিটি অ্যাসেটের জন্য বড়, ছোট এবং ব্লার (অস্পষ্ট) থাম্বনেইল তৈরি করুন, সেই সাথে প্রতিটি ব্যক্তির জন্যও থাম্বনেইল তৈরি করুন।",
|
||||
"transcoding_acceleration_api": "অ্যাক্সিলারেট এপিআই (Acceleration API)",
|
||||
"transcoding_acceleration_api_description": "ট্রানসকোডিং (transcoding) দ্রুত করার জন্য আপনার ডিভাইসের সাথে যে API ইন্টারঅ্যাক্ট করবে। এই সেটিংসটি 'সাধ্যমতো' (best effort) কাজ করবে: ব্যর্থ হলে এটি পুনরায় সফটওয়্যার ট্রানসকোডিংয়ে ফিরে আসবে। হার্ডওয়্যারের ওপর ভিত্তি করে VP9 কাজ করতেও পারে, আবার নাও করতে পারে।",
|
||||
"transcoding_acceleration_nvenc": "NVENC (NVIDIA GPU প্রয়োজন)",
|
||||
"transcoding_acceleration_qsv": "Quick Sync (৭ম প্রজন্মের ইনটেল CPU বা পরবর্তী ভার্সন প্রয়োজন)",
|
||||
"transcoding_acceleration_rkmpp": "RKMPP (শুধুমাত্র Rockchip SOC-এর জন্য)",
|
||||
"transcoding_acceleration_vaapi": "VA-API (ভিডিও অ্যাক্সিলারেশন এপিআই)",
|
||||
"transcoding_accepted_audio_codecs": "গ্রহণযোগ্য অডিও কোডেকসমূহ (Accepted audio codecs)",
|
||||
"transcoding_accepted_audio_codecs_description": "কোন অডিও কোডেকগুলো ট্রানসকোড করার প্রয়োজন নেই তা নির্বাচন করুন। এটি শুধুমাত্র নির্দিষ্ট ট্রানসকোড পলিসির (transcode policies) জন্য ব্যবহৃত হয়।",
|
||||
"transcoding_accepted_containers": "গ্রহণযোগ্য কন্টেইনারসমূহ (Accepted containers)"
|
||||
},
|
||||
"yes": "হ্যাঁ",
|
||||
"you_dont_have_any_shared_links": "আপনার কোনো শেয়ার করা লিঙ্ক নেই (You don't have any shared links)",
|
||||
"your_wifi_name": "আপনার ওয়াই-ফাই এর নাম (Your Wi-Fi name)",
|
||||
"zero_to_clear_rating": "অ্যাসেট রেটিং মুছে ফেলতে ০ চাপুন",
|
||||
"zoom_image": "ছবি জুম করুন (Zoom Image)",
|
||||
"zoom_to_bounds": "বাউন্ডস অনুযায়ী জুম করুন (Zoom to bounds)"
|
||||
}
|
||||
|
||||
212
i18n/ca.json
212
i18n/ca.json
@@ -5,6 +5,7 @@
|
||||
"acknowledge": "Base de coneixement",
|
||||
"action": "Acció",
|
||||
"action_common_update": "Actualitzar",
|
||||
"action_description": "Un conjunt d'accions a realitzar sobre els recursos filtrats",
|
||||
"actions": "Accions",
|
||||
"active": "Actiu",
|
||||
"active_count": "Activat: {count}",
|
||||
@@ -15,9 +16,14 @@
|
||||
"add_a_location": "Afegiu una ubicació",
|
||||
"add_a_name": "Afegir un nom",
|
||||
"add_a_title": "Afegir un títol",
|
||||
"add_action": "Afegir acció",
|
||||
"add_action_description": "Feu clic per afegir una acció a realitzar",
|
||||
"add_assets": "Afegir recursos",
|
||||
"add_birthday": "Afegeix la data de naixement",
|
||||
"add_endpoint": "afegir endpoint",
|
||||
"add_exclusion_pattern": "Afegir un patró d'exclusió",
|
||||
"add_filter": "Afegir filtre",
|
||||
"add_filter_description": "Feu clic per afegir una condició de filtre",
|
||||
"add_location": "Afegir la ubicació",
|
||||
"add_more_users": "Afegir més usuaris",
|
||||
"add_partner": "Afegir company/a",
|
||||
@@ -36,6 +42,7 @@
|
||||
"add_to_shared_album": "Afegir a un àlbum compartit",
|
||||
"add_upload_to_stack": "Afegeix la càrrega a la pila",
|
||||
"add_url": "Afegir URL",
|
||||
"add_workflow_step": "Afegeix un pas del flux de treball",
|
||||
"added_to_archive": "Afegir a l'arxiu",
|
||||
"added_to_favorites": "Afegit als preferits",
|
||||
"added_to_favorites_count": "{count, number} afegits als preferits",
|
||||
@@ -97,6 +104,8 @@
|
||||
"image_preview_description": "Imatge de mida mitjana amb metadades eliminades, que s'utilitza quan es visualitza un sol recurs i per a l'aprenentatge automàtic",
|
||||
"image_preview_quality_description": "Vista prèvia de la qualitat de l'1 al 100. Més alt és millor, però produeix fitxers més grans i pot reduir la capacitat de resposta de l'aplicació. Establir un valor baix pot afectar la qualitat de l'aprenentatge automàtic.",
|
||||
"image_preview_title": "Paràmetres de previsualització",
|
||||
"image_progressive": "Progressiu",
|
||||
"image_progressive_description": "Codifica les imatges JPEG progressivament per a una visualització amb càrrega gradual. Això no té cap efecte sobre les imatges WebP.",
|
||||
"image_quality": "Qualitat",
|
||||
"image_resolution": "Resolució",
|
||||
"image_resolution_description": "Les resolucions més altes poden conservar més detalls però triguen més a codificar-se, tenen mides de fitxer més grans i poden reduir la capacitat de resposta de l'aplicació.",
|
||||
@@ -181,10 +190,21 @@
|
||||
"machine_learning_smart_search_enabled": "Activa la cerca intel·ligent",
|
||||
"machine_learning_smart_search_enabled_description": "Si està desactivada, les imatges no es codificaran per la cerca intel·ligent.",
|
||||
"machine_learning_url_description": "L'URL del servidor d'aprenentatge automàtic. Si es proporciona més d'un URL, s'intentarà accedir a cada servidor en ordre fins que un d'ells respongui correctament.",
|
||||
"maintenance_delete_backup": "Elimina la còpia de seguretat",
|
||||
"maintenance_delete_backup_description": "Aquest fitxer s'eliminarà de forma permanent.",
|
||||
"maintenance_delete_error": "No s'ha pogut suprimir la còpia de seguretat.",
|
||||
"maintenance_restore_backup": "Restaura la còpia de seguretat",
|
||||
"maintenance_restore_backup_description": "Immich s'esborrarà i es restaurarà des de la còpia de seguretat escollida. Es crearà una còpia de seguretat abans de continuar.",
|
||||
"maintenance_restore_backup_different_version": "Aquesta còpia de seguretat s'ha creat amb una versió diferent d'Immich!",
|
||||
"maintenance_restore_backup_unknown_version": "No s'ha pogut determinar la versió de la còpia de seguretat.",
|
||||
"maintenance_restore_database_backup": "Restaurar la còpia de seguretat de la base de dades",
|
||||
"maintenance_restore_database_backup_description": "Reverteix a un estat anterior de la base de dades mitjançant un fitxer de còpia de seguretat",
|
||||
"maintenance_settings": "En manteniment",
|
||||
"maintenance_settings_description": "Posar Immich en mode de manteniment.",
|
||||
"maintenance_start": "Iniciar el mode de manteniment",
|
||||
"maintenance_start": "Canviar al mode de manteniment",
|
||||
"maintenance_start_error": "Error en iniciar el mode de manteniment.",
|
||||
"maintenance_upload_backup": "Puja el fitxer de còpia de seguretat de la base de dades",
|
||||
"maintenance_upload_backup_error": "No s'ha pogut carregar la còpia de seguretat, és un fitxer .sql/.sql.gz?",
|
||||
"manage_concurrency": "Gestiona la concurrència",
|
||||
"manage_concurrency_description": "Ves a la pàgina de tasques per gestionar la concurrència de tasques",
|
||||
"manage_log_settings": "Gestiona la configuració del registre",
|
||||
@@ -252,7 +272,7 @@
|
||||
"oauth_auto_register": "Registre automàtic",
|
||||
"oauth_auto_register_description": "Registra nous usuaris automàticament després d'iniciar sessió amb OAuth",
|
||||
"oauth_button_text": "Text del botó",
|
||||
"oauth_client_secret_description": "Requerit si PKCE (Proof Key for Code Exchange) no està suportat pel proveïdor OAuth",
|
||||
"oauth_client_secret_description": "Requerit per clients confidencials, o si PKCE (Proof Key for Code Exchange) no està suportat pel client públic.",
|
||||
"oauth_enable_description": "Iniciar sessió amb OAuth",
|
||||
"oauth_mobile_redirect_uri": "URI de redirecció mòbil",
|
||||
"oauth_mobile_redirect_uri_override": "Sobreescriu l'URI de redirecció mòbil",
|
||||
@@ -267,7 +287,7 @@
|
||||
"oauth_storage_quota_claim": "Quota d'emmagatzematge reclamada",
|
||||
"oauth_storage_quota_claim_description": "Estableix automàticament la quota d'emmagatzematge de l'usuari al valor d'aquest paràmetre.",
|
||||
"oauth_storage_quota_default": "Quota d'emmagatzematge predeterminada (GiB)",
|
||||
"oauth_storage_quota_default_description": "Quota disponible en GB quan no s'estableixi cap valor (Entreu 0 per a quota il·limitada).",
|
||||
"oauth_storage_quota_default_description": "Quota en GiB que s'utilitzarà quan no es proporcioni cap valor específic.",
|
||||
"oauth_timeout": "Solicitud caducada",
|
||||
"oauth_timeout_description": "Timeout per a sol·licituds en mil·lisegons",
|
||||
"ocr_job_description": "Fes servir machine learning per reconèixer text a les imatges",
|
||||
@@ -431,6 +451,9 @@
|
||||
"admin_password": "Contrasenya de l'administrador",
|
||||
"administration": "Administració",
|
||||
"advanced": "Avançat",
|
||||
"advanced_settings_clear_image_cache": "Esborra la memòria cau de les imatges",
|
||||
"advanced_settings_clear_image_cache_error": "No s'ha pogut esborrar la memòria cau de les imatges",
|
||||
"advanced_settings_clear_image_cache_success": "S'ha esborrat correctament {size}",
|
||||
"advanced_settings_enable_alternate_media_filter_subtitle": "Feu servir aquesta opció per filtrar els continguts multimèdia durant la sincronització segons criteris alternatius. Només proveu-ho si teniu problemes amb l'aplicació per detectar tots els àlbums.",
|
||||
"advanced_settings_enable_alternate_media_filter_title": "Utilitza el filtre de sincronització d'àlbums de dispositius alternatius",
|
||||
"advanced_settings_log_level_title": "Nivell de registre: {level}",
|
||||
@@ -467,10 +490,12 @@
|
||||
"album_remove_user": "Eliminar l'usuari?",
|
||||
"album_remove_user_confirmation": "Esteu segurs que voleu eliminar {user}?",
|
||||
"album_search_not_found": "No s'ha trobat cap àlbum que coincideixi amb la teva cerca",
|
||||
"album_selected": "Àlbum seleccionat",
|
||||
"album_share_no_users": "Sembla que has compartit aquest àlbum amb tots els usuaris o no tens cap usuari amb qui compartir-ho.",
|
||||
"album_summary": "Resum de l'àlbum",
|
||||
"album_updated": "Àlbum actualitzat",
|
||||
"album_updated_setting_description": "Rep una notificació per correu electrònic quan un àlbum compartit tingui recursos nous",
|
||||
"album_upload_assets": "Carrega recursos des del teu ordinador i afegeix-los a l'àlbum",
|
||||
"album_user_left": "Surt de {album}",
|
||||
"album_user_removed": "{user} eliminat",
|
||||
"album_viewer_appbar_delete_confirm": "Confirmes que vols suprimir aquest àlbum del teu compte?",
|
||||
@@ -488,9 +513,11 @@
|
||||
"albums_default_sort_order_description": "Ordre de classificació inicial dels recursos al crear àlbums nous.",
|
||||
"albums_feature_description": "Col·leccions d'actius que es poden compartir amb altres usuaris.",
|
||||
"albums_on_device_count": "Àlbums al dispositiu ({count})",
|
||||
"albums_selected": "{count, plural, one {# àlbum seleccionat} other {# àlbums seleccionats}}",
|
||||
"all": "Tots",
|
||||
"all_albums": "Tots els àlbum",
|
||||
"all_people": "Tota la gent",
|
||||
"all_photos": "Totes les fotografies",
|
||||
"all_videos": "Tots els vídeos",
|
||||
"allow_dark_mode": "Permet el tema fosc",
|
||||
"allow_edits": "Permet editar",
|
||||
@@ -498,6 +525,9 @@
|
||||
"allow_public_user_to_upload": "Permet que l'usuari públic pugui carregar",
|
||||
"allowed": "Permès",
|
||||
"alt_text_qr_code": "Codi QR",
|
||||
"always_keep": "Mantenir sempre",
|
||||
"always_keep_photos_hint": "Allibera espai manté totes les fotos en aquest dispositiu.",
|
||||
"always_keep_videos_hint": "Allibera espai manté tots els vídeos en aquest dispositiu.",
|
||||
"anti_clockwise": "En sentit antihorari",
|
||||
"api_key": "Clau API",
|
||||
"api_key_description": "Aquest valor només es mostrarà una vegada. Assegureu-vos de copiar-lo abans de tancar la finestra.",
|
||||
@@ -507,7 +537,7 @@
|
||||
"app_bar_signout_dialog_content": "Estàs segur que vols tancar la sessió?",
|
||||
"app_bar_signout_dialog_ok": "Sí",
|
||||
"app_bar_signout_dialog_title": "Tanca la sessió",
|
||||
"app_download_links": "App descarrega enllaços",
|
||||
"app_download_links": "Enllaços de descàrrega de l'App",
|
||||
"app_settings": "Configuració de l'app",
|
||||
"app_stores": "Botiga App",
|
||||
"app_update_available": "Actualització App disponible",
|
||||
@@ -524,10 +554,12 @@
|
||||
"archived_count": "{count, plural, one {Arxivat #} other {Arxivats #}}",
|
||||
"are_these_the_same_person": "Són la mateixa persona?",
|
||||
"are_you_sure_to_do_this": "Esteu segurs que voleu fer-ho?",
|
||||
"array_field_not_fully_supported": "Els camps de matriu requereixen edició JSON manual",
|
||||
"asset_action_delete_err_read_only": "No es poden esborrar el fitxer(s) de només lectura, ometent",
|
||||
"asset_action_share_err_offline": "No s'ha pogut obtenir el fitxer(s) sense connexió, ometent",
|
||||
"asset_added_to_album": "Afegit a l'àlbum",
|
||||
"asset_adding_to_album": "Afegint a l'àlbum…",
|
||||
"asset_created": "Recurs creat",
|
||||
"asset_description_updated": "La descripció del recurs s'ha actualitzat",
|
||||
"asset_filename_is_offline": "L'element {filename} està fora de línia",
|
||||
"asset_has_unassigned_faces": "L'element té cares no assignades",
|
||||
@@ -540,6 +572,9 @@
|
||||
"asset_list_layout_sub_title": "Disseny",
|
||||
"asset_list_settings_subtitle": "Configuració del disseny de la graella de fotos",
|
||||
"asset_list_settings_title": "Graella de fotos",
|
||||
"asset_not_found_on_device_android": "No s'ha trobat l'actiu al dispositiu",
|
||||
"asset_not_found_on_device_ios": "No s'ha trobat l'element al dispositiu. Si utilitzes l'iCloud, pot ser que no s'hi pugui accedir perquè el fitxer guardat a l'iCloud és corrupte",
|
||||
"asset_not_found_on_icloud": "No s'ha trobat l'element a l'iCloud. Pot ser que no s'hi pugui accedir perquè el fitxer guardat a l'iCloud és corrupte",
|
||||
"asset_offline": "Element fora de línia",
|
||||
"asset_offline_description": "Aquest recurs extern ja no es troba al disc. Poseu-vos en contacte amb el vostre administrador d'Immich per obtenir ajuda.",
|
||||
"asset_restored_successfully": "Element recuperat correctament",
|
||||
@@ -591,7 +626,7 @@
|
||||
"backup_album_selection_page_select_albums": "Selecciona àlbums",
|
||||
"backup_album_selection_page_selection_info": "Informació de la selecció",
|
||||
"backup_album_selection_page_total_assets": "Total d'elements únics",
|
||||
"backup_albums_sync": "Sincronització d'àlbums de còpia de seguretat",
|
||||
"backup_albums_sync": "Sincronització de la Còpia de Seguretat d'Àlbums",
|
||||
"backup_all": "Tots",
|
||||
"backup_background_service_backup_failed_message": "No s'ha pogut copiar els elements. Tornant a intentar…",
|
||||
"backup_background_service_complete_notification": "Backup completat d'actius",
|
||||
@@ -711,6 +746,8 @@
|
||||
"change_password_form_password_mismatch": "Les contrasenyes no coincideixen",
|
||||
"change_password_form_reenter_new_password": "Torna a introduir la nova contrasenya",
|
||||
"change_pin_code": "Canviar el codi PIN",
|
||||
"change_trigger": "Canvia el desencadenant",
|
||||
"change_trigger_prompt": "Esteu segur que voleu canviar el disparador? Això eliminarà totes les accions i filtres existents.",
|
||||
"change_your_password": "Canvia la teva contrasenya",
|
||||
"changed_visibility_successfully": "Visibilitat canviada amb èxit",
|
||||
"charging": "Carregant",
|
||||
@@ -722,6 +759,18 @@
|
||||
"checksum": "Suma de control",
|
||||
"choose_matching_people_to_merge": "Trieu les persones que coincideixin per combinar-les",
|
||||
"city": "Ciutat",
|
||||
"cleanup_confirm_description": "Immich ha trobat {count} recursos (creats abans del {date}) carregats adequadament al servidor. Eliminar les còpies locals d'aquest dispositiu?",
|
||||
"cleanup_confirm_prompt_title": "Eliminar d'aquest dispositiu?",
|
||||
"cleanup_deleted_assets": "S'han mogut {count} recursos a la paperera del dispositiu",
|
||||
"cleanup_deleting": "Movent a la paperera...",
|
||||
"cleanup_found_assets": "S'han trobat {count} recursos amb còpia",
|
||||
"cleanup_found_assets_with_size": "S'han trobat {count} elements copiats ({size})",
|
||||
"cleanup_icloud_shared_albums_excluded": "Els àlbums compartits d'iCloud s'exclouen de la cerca",
|
||||
"cleanup_no_assets_found": "No s'han trobat recursos que coincideixin amb el criteri de sobre. Allibera Espai només pot esborrar elements que s'hagin copiat al servidor",
|
||||
"cleanup_preview_title": "Recursos a eliminar ({count})",
|
||||
"cleanup_step3_description": "Cerca fotos i vídeos que ja tinguin una còpia al servidor amb la data de tall i manté els filtres seleccionats.",
|
||||
"cleanup_step4_summary": "{count} recursos (creats abans del {date}) esborrats del dispositiu local. Les fotografies estaran disponibles a l'aplicació Immich.",
|
||||
"cleanup_trash_hint": "Per a reclamar l'espai completament, obre la galeria del dispositiu i buida la paperera",
|
||||
"clear": "Buida",
|
||||
"clear_all": "Neteja-ho tot",
|
||||
"clear_all_recent_searches": "Esborra totes les cerques recents",
|
||||
@@ -733,6 +782,8 @@
|
||||
"client_cert_import": "Importar",
|
||||
"client_cert_import_success_msg": "S'ha importat el certificat del client",
|
||||
"client_cert_invalid_msg": "Fitxer de certificat no vàlid o contrasenya incorrecta",
|
||||
"client_cert_password_message": "Introdueix la contrasenya per a aquest certificat",
|
||||
"client_cert_password_title": "Contrasenya del certificat",
|
||||
"client_cert_remove_msg": "S'ha eliminat el certificat del client",
|
||||
"client_cert_subtitle": "Només admet el format PKCS12 (.p12, .pfx). La importació/eliminació de certificats només està disponible abans d'iniciar sessió",
|
||||
"client_cert_title": "Certificat de client SSL",
|
||||
@@ -787,6 +838,7 @@
|
||||
"create_album": "Crear un àlbum",
|
||||
"create_album_page_untitled": "Sense títol",
|
||||
"create_api_key": "Crear clau API",
|
||||
"create_first_workflow": "Crea el primer flux de treball",
|
||||
"create_library": "Crea una llibreria",
|
||||
"create_link": "Crear enllaç",
|
||||
"create_link_to_share": "Crear enllaç per compartir",
|
||||
@@ -801,17 +853,25 @@
|
||||
"create_tag": "Crear etiqueta",
|
||||
"create_tag_description": "Crear una nova etiqueta. Per les etiquetes aniuades, escriu la ruta comperta de l'etiqueta, incloses les barres diagonals.",
|
||||
"create_user": "Crea un usuari",
|
||||
"create_workflow": "Crea un flux de treball",
|
||||
"created": "Creat",
|
||||
"created_at": "Creat",
|
||||
"creating_linked_albums": "Creant àlbums enllaçats...",
|
||||
"crop": "Retalla",
|
||||
"crop_aspect_ratio_fixed": "Fixat",
|
||||
"crop_aspect_ratio_free": "Lliure",
|
||||
"crop_aspect_ratio_original": "Original",
|
||||
"curated_object_page_title": "Coses",
|
||||
"current_device": "Dispositiu actual",
|
||||
"current_pin_code": "Codi PIN actual",
|
||||
"current_server_address": "Adreça actual del servidor",
|
||||
"custom_date": "Data personalitzada",
|
||||
"custom_locale": "Localització personalitzada",
|
||||
"custom_locale_description": "Format de dates i números segons la llengua i regió",
|
||||
"custom_url": "URL personalitzada",
|
||||
"cutoff_date_description": "Manté fotos des de l'últim…",
|
||||
"cutoff_day": "{count, plural, one {dia} other {dies}}",
|
||||
"cutoff_year": "{count, plural, one {any} other {anys}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Fosc",
|
||||
@@ -867,6 +927,7 @@
|
||||
"deselect_all": "Deseleccionar Tots",
|
||||
"details": "Detalls",
|
||||
"direction": "Direcció",
|
||||
"disable": "Desactiva",
|
||||
"disabled": "Desactivat",
|
||||
"disallow_edits": "No permetre les edicions",
|
||||
"discord": "Discord",
|
||||
@@ -892,6 +953,7 @@
|
||||
"download_include_embedded_motion_videos": "Vídeos incrustats",
|
||||
"download_include_embedded_motion_videos_description": "Incloure vídeos incrustats en fotografies en moviment com un arxiu separat",
|
||||
"download_notfound": "No s'ha trobat la descàrrega",
|
||||
"download_original": "Descarregar original",
|
||||
"download_paused": "Descàrrega pausada",
|
||||
"download_settings": "Descarregar",
|
||||
"download_settings_description": "Gestioneu la configuració relacionada amb la descàrrega de recursos",
|
||||
@@ -901,19 +963,20 @@
|
||||
"download_waiting_to_retry": "Esperant per tornar-ho a intentar",
|
||||
"downloading": "Baixant",
|
||||
"downloading_asset_filename": "Descarregant l'element {filename}",
|
||||
"downloading_from_icloud": "Descarregant des d'iCloud",
|
||||
"downloading_media": "Descàrrega multimèdia",
|
||||
"drop_files_to_upload": "Deixeu els fitxers a qualsevol lloc per carregar-los",
|
||||
"drop_files_to_upload": "Deixeu els fitxers a qualsevol lloc per pujar-los",
|
||||
"duplicates": "Duplicats",
|
||||
"duplicates_description": "Resol cada grup indicant quins, si n'hi ha, són duplicats",
|
||||
"duration": "Duració",
|
||||
"duplicates_description": "Resol cada grup indicant, si n'hi ha, quins són duplicats",
|
||||
"duration": "Durada",
|
||||
"edit": "Editar",
|
||||
"edit_album": "Edita l'àlbum",
|
||||
"edit_avatar": "Edita l'avatar",
|
||||
"edit_birthday": "Editar aniversari",
|
||||
"edit_birthday": "Edita l'aniversari",
|
||||
"edit_date": "Edita la data",
|
||||
"edit_date_and_time": "Edita data i hora",
|
||||
"edit_date_and_time": "Edita la data i l'hora",
|
||||
"edit_date_and_time_action_prompt": "{count} dates i hores editades",
|
||||
"edit_date_and_time_by_offset": "Canviar data mitjançant diferència",
|
||||
"edit_date_and_time_by_offset": "Canvia la data mitjançant diferència",
|
||||
"edit_date_and_time_by_offset_interval": "Nou rang de dates: {from}-{to}",
|
||||
"edit_description": "Edita la descripció",
|
||||
"edit_description_prompt": "Si us plau, selecciona una nova descripció:",
|
||||
@@ -929,11 +992,22 @@
|
||||
"edit_tag": "Editar etiqueta",
|
||||
"edit_title": "Edita títol",
|
||||
"edit_user": "Edita l'usuari",
|
||||
"edit_workflow": "Edita el flux de treball",
|
||||
"editor": "Editor",
|
||||
"editor_close_without_save_prompt": "No es desaran els canvis",
|
||||
"editor_close_without_save_title": "Tancar l'editor?",
|
||||
"editor_crop_tool_h2_aspect_ratios": "Relació d'aspecte",
|
||||
"editor_crop_tool_h2_rotation": "Rotació",
|
||||
"editor_confirm_reset_all_changes": "Segur que vols reiniciar tots els canvis?",
|
||||
"editor_discard_edits_confirm": "Descarta les modificacions",
|
||||
"editor_discard_edits_prompt": "Tens modificacions sense desar. Estàs segur que les vols descartar?",
|
||||
"editor_discard_edits_title": "Vols descartar les modificacions?",
|
||||
"editor_edits_applied_error": "No s'han pogut aplicar les modificacions",
|
||||
"editor_edits_applied_success": "Les modificacions s'han aplicat correctament",
|
||||
"editor_flip_horizontal": "Capgira horitzontalment",
|
||||
"editor_flip_vertical": "Capgira verticalment",
|
||||
"editor_orientation": "Orientació",
|
||||
"editor_reset_all_changes": "Reiniciar canvis",
|
||||
"editor_rotate_left": "Rota 90º al contrari de les agulles",
|
||||
"editor_rotate_right": "Rota 90º en el sentit de les agulles",
|
||||
"email": "Correu electrònic",
|
||||
"email_notifications": "Correu electrònic de notificacions",
|
||||
"empty_folder": "Aquesta carpeta és buida",
|
||||
@@ -952,11 +1026,14 @@
|
||||
"error_change_sort_album": "No s'ha pogut canviar l'ordre d'ordenació dels àlbums",
|
||||
"error_delete_face": "Error esborrant cara de les cares reconegudes",
|
||||
"error_getting_places": "S'ha produït un error en obtenir els llocs",
|
||||
"error_loading_albums": "Error en carregar àlbums",
|
||||
"error_loading_image": "Error carregant la imatge",
|
||||
"error_loading_partners": "No s'han pogut carregar les parelles: {error}",
|
||||
"error_retrieving_asset_information": "Error en recuperar la informació de l'actiu",
|
||||
"error_saving_image": "Error: {error}",
|
||||
"error_tag_face_bounding_box": "Error a l'etiquetar la cara - no s'han pogut obtenir les coordenades de l'àrea",
|
||||
"error_title": "Error - Quelcom ha anat malament",
|
||||
"error_while_navigating": "Error en navegar fins a l'actiu",
|
||||
"errors": {
|
||||
"cannot_navigate_next_asset": "No es pot navegar a l'element següent",
|
||||
"cannot_navigate_previous_asset": "No es pot navegar a l'element anterior",
|
||||
@@ -1014,6 +1091,7 @@
|
||||
"unable_to_complete_oauth_login": "No es pot completar l'inici de sessió OAuth",
|
||||
"unable_to_connect": "No pot connectar",
|
||||
"unable_to_copy_to_clipboard": "No es pot copiar al porta-retalls, assegureu-vos que esteu accedint a la pàgina mitjançant https",
|
||||
"unable_to_create": "No s'ha pogut crear el flux de treball",
|
||||
"unable_to_create_admin_account": "No es pot crear un compte d'administrador",
|
||||
"unable_to_create_api_key": "No es pot crear una clau d'API nova",
|
||||
"unable_to_create_library": "No es pot crear la llibreria",
|
||||
@@ -1024,6 +1102,7 @@
|
||||
"unable_to_delete_exclusion_pattern": "No es pot suprimir el patró d'exclusió",
|
||||
"unable_to_delete_shared_link": "No es pot suprimir l'enllaç compartit",
|
||||
"unable_to_delete_user": "No es pot eliminar l'usuari",
|
||||
"unable_to_delete_workflow": "No es pot suprimir el flux de treball",
|
||||
"unable_to_download_files": "No es poden descarregar fitxers",
|
||||
"unable_to_edit_exclusion_pattern": "No es pot editar el patró d'exclusió",
|
||||
"unable_to_empty_trash": "No es pot buidar la paperera",
|
||||
@@ -1063,6 +1142,7 @@
|
||||
"unable_to_scan_library": "No es pot escanejar la biblioteca",
|
||||
"unable_to_set_feature_photo": "No s'ha pogut configurar la foto destacada",
|
||||
"unable_to_set_profile_picture": "No es pot configurar la foto de perfil",
|
||||
"unable_to_set_rating": "No s'ha pogut establir la valoració",
|
||||
"unable_to_submit_job": "No es pot enviar la tasca",
|
||||
"unable_to_trash_asset": "No es pot eliminar el recurs a la paperera",
|
||||
"unable_to_unlink_account": "No es pot desenllaçar el compte",
|
||||
@@ -1074,10 +1154,12 @@
|
||||
"unable_to_update_settings": "No es pot actualitzar la configuració",
|
||||
"unable_to_update_timeline_display_status": "No es pot actualitzar l'estat de visualització de la cronologia",
|
||||
"unable_to_update_user": "No es pot actualitzar l'usuari",
|
||||
"unable_to_update_workflow": "No es pot actualitzar el flux de treball",
|
||||
"unable_to_upload_file": "No es pot carregar el fitxer"
|
||||
},
|
||||
"errors_text": "Errors",
|
||||
"exclusion_pattern": "Patró d'exclusió",
|
||||
"exif": "EXIF",
|
||||
"exif": "Exif",
|
||||
"exif_bottom_sheet_description": "Afegeix descripció...",
|
||||
"exif_bottom_sheet_description_error": "No s'ha pogut actualitzar la descripció",
|
||||
"exif_bottom_sheet_details": "DETALLS",
|
||||
@@ -1120,14 +1202,17 @@
|
||||
"features": "Característiques",
|
||||
"features_in_development": "Funcions en desenvolupament",
|
||||
"features_setting_description": "Administrar les funcions de l'aplicació",
|
||||
"file_name": "Nom de l'arxiu",
|
||||
"file_name_or_extension": "Nom de l'arxiu o extensió",
|
||||
"file_name_text": "Nom del fitxer",
|
||||
"file_name_with_value": "Nom del fitxer: {file_name}",
|
||||
"file_size": "Mida del fitxer",
|
||||
"filename": "Nom del fitxer",
|
||||
"filetype": "Tipus d'arxiu",
|
||||
"filter": "Filtrar",
|
||||
"filter_description": "Condicions per filtrar els actius de destinació",
|
||||
"filter_people": "Filtra persones",
|
||||
"filter_places": "Filtrar per llocs",
|
||||
"filters": "Filtres",
|
||||
"find_them_fast": "Trobeu-los ràpidament pel nom amb la cerca",
|
||||
"first": "Primer",
|
||||
"fix_incorrect_match": "Corregiu la coincidència incorrecta",
|
||||
@@ -1137,12 +1222,16 @@
|
||||
"folders_feature_description": "Explorar la vista de carpetes per les fotos i vídeos del sistema d'arxius",
|
||||
"forgot_pin_code_question": "Has oblidat el teu PIN?",
|
||||
"forward": "Endavant",
|
||||
"free_up_space": "Alliberar Espai",
|
||||
"free_up_space_description": "Mou fotos i videos que ja tinguen còpia al servidor a la paperera del teu dispositiu per alliberar espai. Les còpies del servidor no es modificaran.",
|
||||
"free_up_space_settings_subtitle": "Alliberar espai del dispositiu",
|
||||
"full_path": "Ruta completa: {path}",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Aquesta funció carrega recursos externs de Google per funcionar.",
|
||||
"general": "General",
|
||||
"geolocation_instruction_location": "Fes click en un element amb coordinades GPS per utilitzar la seva ubicació o selecciona una ubicació des del mapa",
|
||||
"get_help": "Aconseguir ajuda",
|
||||
"get_people_error": "S'ha produït un error en aconseguir persones",
|
||||
"get_wifiname_error": "No s'ha pogut obtenir el nom de la Wi-Fi. Assegureu-vos que heu concedit els permisos necessaris i que esteu connectat a una xarxa Wi-Fi",
|
||||
"getting_started": "Començant",
|
||||
"go_back": "Torna",
|
||||
@@ -1175,6 +1264,7 @@
|
||||
"hide_named_person": "Amaga la persona {name}",
|
||||
"hide_password": "Amaga la contrasenya",
|
||||
"hide_person": "Amaga la persona",
|
||||
"hide_schema": "Amaga l'esquema",
|
||||
"hide_text_recognition": "Oculta el reconeixement de text",
|
||||
"hide_unnamed_people": "Amaga persones sense nom",
|
||||
"home_page_add_to_album_conflicts": "S'han afegit {added} elements a l'àlbum {album}. {failed} elements ja existeixen a l'àlbum.",
|
||||
@@ -1247,9 +1337,18 @@
|
||||
"ios_debug_info_processing_ran_at": "El processament s'ha executat {dateTime}",
|
||||
"items_count": "{count, plural, one {# element} other {# elements}}",
|
||||
"jobs": "Tasques",
|
||||
"json_editor": "Editor JSON",
|
||||
"json_error": "Error en el JSON",
|
||||
"keep": "Mantenir",
|
||||
"keep_albums": "Conserva els àlbums",
|
||||
"keep_albums_count": "Conservant {count} {count, plural, one {àlbum} other {àlbums}}",
|
||||
"keep_all": "Mantenir-ho tot",
|
||||
"keep_description": "Tria què es conserva al dispositiu quan s'allibera espai.",
|
||||
"keep_favorites": "Mantindre els preferits",
|
||||
"keep_on_device": "Mantén al dispositiu",
|
||||
"keep_on_device_hint": "Selecciona els elements que vulguis conservar en aquest dispositiu",
|
||||
"keep_this_delete_others": "Conserveu-ho, suprimiu-ne els altres",
|
||||
"keeping": "Mantenint: {items}",
|
||||
"kept_this_deleted_others": "S'ha conservat aquest element i s'han suprimit {count, plural, one {# asset} other {# assets}}",
|
||||
"keyboard_shortcuts": "Dreceres de teclat",
|
||||
"language": "Idioma",
|
||||
@@ -1343,10 +1442,28 @@
|
||||
"loop_videos_description": "Habilita la reproducció en bucle del vídeo en els detalls.",
|
||||
"main_branch_warning": "Esteu utilitzant una versió en desenvolupament; Recomanem fer servir una versió publicada!",
|
||||
"main_menu": "Menú principal",
|
||||
"maintenance_action_restore": "Restaurant la base de dades",
|
||||
"maintenance_description": "Immich ha estat posat en <link>mode de manteniment</link>.",
|
||||
"maintenance_end": "Finalitzar el mode de manteniment",
|
||||
"maintenance_end_error": "Error al finalitzar el mode de manteniment.",
|
||||
"maintenance_logged_in_as": "Actualment la sessió esta iniciada per {user}",
|
||||
"maintenance_restore_from_backup": "Restaurar des d'una còpia de seguretat",
|
||||
"maintenance_restore_library": "Restaura la teva biblioteca",
|
||||
"maintenance_restore_library_confirm": "Si això sembla correcte, continua restaurant una còpia de seguretat!",
|
||||
"maintenance_restore_library_description": "Restaurant la còpia de seguretat",
|
||||
"maintenance_restore_library_folder_has_files": "{folder} conté {count} carpeta/es",
|
||||
"maintenance_restore_library_folder_no_files": "A {folder} li falten fitxers!",
|
||||
"maintenance_restore_library_folder_pass": "llegible i escrivible",
|
||||
"maintenance_restore_library_folder_read_fail": "no llegible",
|
||||
"maintenance_restore_library_folder_write_fail": "no escrivible",
|
||||
"maintenance_restore_library_hint_missing_files": "Potser et falten fitxers importants",
|
||||
"maintenance_restore_library_hint_regenerate_later": "Pots regenerar-los més tard a la configuració",
|
||||
"maintenance_restore_library_hint_storage_template_missing_files": "Fas servir una plantilla d'emmagatzematge? Potser et falten fitxers",
|
||||
"maintenance_restore_library_loading": "S'estan carregant les comprovacions d'integritat i heurístiques…",
|
||||
"maintenance_task_backup": "Creant una còpia de seguretat de la base de dades existent…",
|
||||
"maintenance_task_migrations": "Executant migracions de bases de dades…",
|
||||
"maintenance_task_restore": "Restaurant la còpia de seguretat escollida…",
|
||||
"maintenance_task_rollback": "La restauració ha fallat, s'està tornant al punt de restauració…",
|
||||
"maintenance_title": "Temporalment inaccessible",
|
||||
"make": "Fabricant",
|
||||
"manage_geolocation": "Gestioneu la vostra ubicació",
|
||||
@@ -1408,6 +1525,8 @@
|
||||
"minimize": "Minimitza",
|
||||
"minute": "Minut",
|
||||
"minutes": "Minuts",
|
||||
"mirror_horizontal": "Horitzontal",
|
||||
"mirror_vertical": "Vertical",
|
||||
"missing": "Restants",
|
||||
"mobile_app": "Aplicació mòbil",
|
||||
"mobile_app_download_onboarding_note": "Descarregar la App de mòbil fent servir les seguents opcions",
|
||||
@@ -1416,11 +1535,14 @@
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Més",
|
||||
"move": "Moure",
|
||||
"move_down": "Moure cap avall",
|
||||
"move_off_locked_folder": "Moure fora de la carpeta bloquejada",
|
||||
"move_to": "Moure a",
|
||||
"move_to_device_trash": "Mou a la paperera del dispositiu",
|
||||
"move_to_lock_folder_action_prompt": "{count} afegides a la carpeta protegida",
|
||||
"move_to_locked_folder": "Moure a la carpeta bloquejada",
|
||||
"move_to_locked_folder_confirmation": "Aquestes fotos i vídeos seran eliminades de tots els àlbums, i només podran ser vistes des de la carpeta bloquejada",
|
||||
"move_up": "Puja",
|
||||
"moved_to_archive": "S'han mogut {count, plural, one {# asset} other {# assets}} a l'arxiu",
|
||||
"moved_to_library": "S'ha mogut {count, plural, one {# asset} other {# assets}} a la llibreria",
|
||||
"moved_to_trash": "S'ha mogut a la paperera",
|
||||
@@ -1430,6 +1552,7 @@
|
||||
"my_albums": "Els meus àlbums",
|
||||
"name": "Nom",
|
||||
"name_or_nickname": "Nom o sobrenom",
|
||||
"name_required": "El nom és obligatori",
|
||||
"navigate": "Navegar",
|
||||
"navigate_to_time": "Navegar a un punt en el temps",
|
||||
"network_requirement_photos_upload": "Fes servir dades mòbils per a còpies de seguretat de fotos",
|
||||
@@ -1454,20 +1577,24 @@
|
||||
"next": "Següent",
|
||||
"next_memory": "Següent record",
|
||||
"no": "No",
|
||||
"no_actions_added": "Encara no s'han afegit accions",
|
||||
"no_albums_found": "No s'han trobat àlbums",
|
||||
"no_albums_message": "Creeu un àlbum per organitzar les vostres fotos i vídeos",
|
||||
"no_albums_with_name_yet": "Sembla que encara no tens cap àlbum amb aquest nom.",
|
||||
"no_albums_yet": "Sembla que encara no tens cap àlbum.",
|
||||
"no_archived_assets_message": "Arxiveu fotos i vídeos per ocultar-los de Fotos",
|
||||
"no_assets_message": "FEU CLIC PER PUJAR LA VOSTRA PRIMERA FOTO",
|
||||
"no_assets_message": "Fes clic per pujar la teva primera foto",
|
||||
"no_assets_to_show": "No hi ha elements per mostrar",
|
||||
"no_cast_devices_found": "No s'han trobat dispositius per transmetre",
|
||||
"no_checksum_local": "Cap checksum disponible - no s'han pogut carregar els recursos locals",
|
||||
"no_checksum_remote": "Cap checksum disponible - no s'ha pogut obtenir el recurs remot",
|
||||
"no_configuration_needed": "No cal configuració",
|
||||
"no_devices": "No hi ha dispositius autoritzats",
|
||||
"no_duplicates_found": "No s'han trobat duplicats.",
|
||||
"no_exif_info_available": "No hi ha informació d'exif disponible",
|
||||
"no_explore_results_message": "Penja més fotos per explorar la teva col·lecció.",
|
||||
"no_favorites_message": "Afegiu preferits per trobar les millors fotos i vídeos a l'instant",
|
||||
"no_filters_added": "Encara no s'han afegit filtres",
|
||||
"no_libraries_message": "Creeu una llibreria externa per veure les vostres fotos i vídeos",
|
||||
"no_local_assets_found": "No s'ha trobat cap recurs local amb aquest checksum",
|
||||
"no_location_set": "No s'ha definit cap ubicació",
|
||||
@@ -1481,6 +1608,7 @@
|
||||
"no_results_description": "Proveu un sinònim o una paraula clau més general",
|
||||
"no_shared_albums_message": "Creeu un àlbum per compartir fotos i vídeos amb persones a la vostra xarxa",
|
||||
"no_uploads_in_progress": "Cap pujada en progrés",
|
||||
"none": "Cap",
|
||||
"not_allowed": "No permès",
|
||||
"not_available": "N/A",
|
||||
"not_in_any_album": "En cap àlbum",
|
||||
@@ -1563,6 +1691,7 @@
|
||||
"people": "Persones",
|
||||
"people_edits_count": "{count, plural, one {# persona editada} other {# persones editades}}",
|
||||
"people_feature_description": "Explorar fotos i vídeos agrupades per persona",
|
||||
"people_selected": "{count, plural, one {# persona seleccionada} other {# persones seleccionades}}",
|
||||
"people_sidebar_description": "Mostrar un enllaç a Persones a la barra lateral",
|
||||
"permanent_deletion_warning": "Avís d'eliminació permanent",
|
||||
"permanent_deletion_warning_setting_description": "Mostrar un avís quan s'eliminin els elements permanentment",
|
||||
@@ -1587,11 +1716,14 @@
|
||||
"person_age_years": "{years, plural, other {# anys}} d'antiguitat",
|
||||
"person_birthdate": "Nascut a {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (ocultat)} other {}}",
|
||||
"person_recognized": "Persona reconeguda",
|
||||
"person_selected": "Persona seleccionada",
|
||||
"photo_shared_all_users": "Sembla que has compartit les teves fotos amb tots els usuaris o no tens cap usuari amb qui compartir-les.",
|
||||
"photos": "Fotos",
|
||||
"photos_and_videos": "Fotos i vídeos",
|
||||
"photos_count": "{count, plural, one {{count, number} Foto} other {{count, number} Fotos}}",
|
||||
"photos_from_previous_years": "Fotos d'anys anteriors",
|
||||
"photos_only": "Només fotos",
|
||||
"pick_a_location": "Triar una ubicació",
|
||||
"pick_custom_range": "Rang personalitzat",
|
||||
"pick_date_range": "Seleccioni un rang de dates",
|
||||
@@ -1667,10 +1799,12 @@
|
||||
"purchase_settings_server_activated": "La clau de producte del servidor la gestiona l'administrador",
|
||||
"query_asset_id": "Consulta d'identificació d'actius",
|
||||
"queue_status": "En cua {count}/{total}",
|
||||
"rate_asset": "Valorar Recurs",
|
||||
"rating": "Valoració",
|
||||
"rating_clear": "Esborrar valoració",
|
||||
"rating_count": "{count, plural, one {# estrella} other {# estrelles}}",
|
||||
"rating_description": "Mostrar la valoració EXIF al panell d'informació",
|
||||
"rating_set": "Valoració establerta a {rating, plural, one {# estrella} other {# estrelles}}",
|
||||
"reaction_options": "Opcions de reacció",
|
||||
"read_changelog": "Llegeix el registre de canvis",
|
||||
"readonly_mode_disabled": "Mode de només lectura desactivat",
|
||||
@@ -1770,9 +1904,11 @@
|
||||
"saved_settings": "Configuració guardada",
|
||||
"say_something": "Digues quelcom",
|
||||
"scaffold_body_error_occurred": "S'ha produït un error",
|
||||
"scan": "Escaneja",
|
||||
"scan_all_libraries": "Escanejar totes les llibreries",
|
||||
"scan_library": "Escaneja",
|
||||
"scan_settings": "Configuració d'escaneig",
|
||||
"scanning": "Escanejant",
|
||||
"scanning_for_album": "S'està buscant l'àlbum...",
|
||||
"search": "Cerca",
|
||||
"search_albums": "Buscar àlbums",
|
||||
@@ -1802,6 +1938,7 @@
|
||||
"search_filter_media_type_title": "Selecciona tipus de multimèdia",
|
||||
"search_filter_ocr": "Buscar per OCR",
|
||||
"search_filter_people_title": "Selecciona persones",
|
||||
"search_filter_star_rating": "Classificació per estrelles",
|
||||
"search_for": "Cercar",
|
||||
"search_for_existing_person": "Busca una persona existent",
|
||||
"search_no_more_result": "No més resultats",
|
||||
@@ -1836,17 +1973,23 @@
|
||||
"second": "Segon",
|
||||
"see_all_people": "Veure totes les persones",
|
||||
"select": "Selecciona",
|
||||
"select_album": "Seleccionar àlbum",
|
||||
"select_album_cover": "Seleccionar la portada de l'àlbum",
|
||||
"select_albums": "Seleccionar àlbums",
|
||||
"select_all": "Selecciona-ho tot",
|
||||
"select_all_duplicates": "Seleccioneu tots els duplicats",
|
||||
"select_all_in": "Selecciona tot en {group}",
|
||||
"select_avatar_color": "Tria color de l'avatar",
|
||||
"select_count": "{count, plural, one {Selecciona #} other {Selecciona #}}",
|
||||
"select_cutoff_date": "Seleccionar data de tall",
|
||||
"select_face": "Selecciona cara",
|
||||
"select_featured_photo": "Selecciona foto principal",
|
||||
"select_from_computer": "Seleccionar des de l'ordinador",
|
||||
"select_keep_all": "Mantén tota la selecció",
|
||||
"select_library_owner": "Selecciona el propietari de la bilbioteca",
|
||||
"select_new_face": "Selecciona nova cara",
|
||||
"select_people": "Seleccionar persones",
|
||||
"select_person": "Seleccionar persona",
|
||||
"select_person_to_tag": "Selecciona una persona per etiquetar",
|
||||
"select_photos": "Tria fotografies",
|
||||
"select_trash_all": "Envia la selecció a la paperera",
|
||||
@@ -1982,6 +2125,7 @@
|
||||
"show_password": "Mostra contrasenya",
|
||||
"show_person_options": "Mostra opcions de la persona",
|
||||
"show_progress_bar": "Mostra barra de progrés",
|
||||
"show_schema": "Mostrar esquema",
|
||||
"show_search_options": "Mostra opcions de cerca",
|
||||
"show_shared_links": "Mostra els enllaços compartits",
|
||||
"show_slideshow_transition": "Mostra la transició de la presentació de diapositives",
|
||||
@@ -1999,6 +2143,8 @@
|
||||
"skip_to_folders": "Anar a carpetes",
|
||||
"skip_to_tags": "Anar a etiquetes",
|
||||
"slideshow": "Diapositives",
|
||||
"slideshow_repeat": "Repeteix la presentació de diapositives",
|
||||
"slideshow_repeat_description": "Torna al principi quan acaba la presentació de diapositives",
|
||||
"slideshow_settings": "Configuració de diapositives",
|
||||
"sort_albums_by": "Ordena àlbums per...",
|
||||
"sort_created": "Data de creació",
|
||||
@@ -2075,6 +2221,7 @@
|
||||
"theme_setting_theme_subtitle": "Trieu la configuració del tema de l'aplicació",
|
||||
"theme_setting_three_stage_loading_subtitle": "La càrrega en tres etapes podria augmentar el rendiment de càrrega, però causa un consum de xarxa significativament més alt",
|
||||
"theme_setting_three_stage_loading_title": "Activa la càrrega en tres etapes",
|
||||
"then": "Aleshores",
|
||||
"they_will_be_merged_together": "Es combinaran",
|
||||
"third_party_resources": "Recursos de tercers",
|
||||
"time": "Temps",
|
||||
@@ -2109,6 +2256,13 @@
|
||||
"trash_page_select_assets_btn": "Selecciona elements",
|
||||
"trash_page_title": "Paperera ({count})",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Els elements que s'enviïn a la paperera s'eliminaran permanentment després de {days, plural, one {# dia} other {# dies}}.",
|
||||
"trigger": "Disparador",
|
||||
"trigger_asset_uploaded": "Mitjà Carregat",
|
||||
"trigger_asset_uploaded_description": "Es dispara quan un nou mitjà es puge al servidor",
|
||||
"trigger_description": "L'esdeveniment que inicia l'automatització",
|
||||
"trigger_person_recognized": "Persona identificada",
|
||||
"trigger_person_recognized_description": "Es dispara quan es detecta una persona",
|
||||
"trigger_type": "Tipus de disparador",
|
||||
"troubleshoot": "Solució de problemes",
|
||||
"type": "Tipus",
|
||||
"unable_to_change_pin_code": "No es pot canviar el codi PIN",
|
||||
@@ -2123,6 +2277,7 @@
|
||||
"unhide_person": "Mostra persona",
|
||||
"unknown": "Desconegut",
|
||||
"unknown_country": "País Desconegut",
|
||||
"unknown_date": "Data desconeguda",
|
||||
"unknown_year": "Any desconegut",
|
||||
"unlimited": "Il·limitat",
|
||||
"unlink_motion_video": "Desvincular vídeo en moviment",
|
||||
@@ -2139,17 +2294,19 @@
|
||||
"unstack": "Desapila",
|
||||
"unstack_action_prompt": "{count} sense apilar",
|
||||
"unstacked_assets_count": "No apilat {count, plural, one {# recurs} other {# recursos}}",
|
||||
"unsupported_field_type": "Tipus de camp no suportat",
|
||||
"untagged": "Sense etiqueta",
|
||||
"untitled_workflow": "Automatització sense títol",
|
||||
"up_next": "Pròxim",
|
||||
"update_location_action_prompt": "Actualitza la ubicació de {count} elements seleccionats amb:",
|
||||
"updated_at": "Actualitzat",
|
||||
"updated_password": "Contrasenya actualitzada",
|
||||
"upload": "Pujar",
|
||||
"upload_action_prompt": "{count} a la cua per a pujar",
|
||||
"upload_concurrency": "Concurrència de pujades",
|
||||
"upload_details": "Detalls de la Pujada",
|
||||
"upload_dialog_info": "Vols fer còpia de seguretat dels elements seleccionats al servidor?",
|
||||
"upload_dialog_title": "Puja elements",
|
||||
"upload_error_with_count": "Error en la càrrega de {count, plural, one {# actiu} other {# actius}}",
|
||||
"upload_errors": "Càrrega completada amb {count, plural, one {# error} other {# errors}}, actualitzeu la pàgina per veure els nous elements carregats.",
|
||||
"upload_finished": "Pujada finalitzada",
|
||||
"upload_progress": "Restant {remaining, number} - Processat {processed, number}/{total, number}",
|
||||
@@ -2164,7 +2321,7 @@
|
||||
"url": "URL",
|
||||
"usage": "Ús",
|
||||
"use_biometric": "Empra biometria",
|
||||
"use_current_connection": "utilitzar la connexió actual",
|
||||
"use_current_connection": "Utilitza la connexió actual",
|
||||
"use_custom_date_range": "Fes servir un rang de dates personalitzat",
|
||||
"user": "Usuari",
|
||||
"user_has_been_deleted": "Aquest usuari ha sigut eliminat.",
|
||||
@@ -2185,6 +2342,7 @@
|
||||
"utilities": "Utilitats",
|
||||
"validate": "Valida",
|
||||
"validate_endpoint_error": "Per favor introdueix un URL vàlid",
|
||||
"validation_error": "Error de validació",
|
||||
"variables": "Variables",
|
||||
"version": "Versió",
|
||||
"version_announcement_closing": "El teu amic Alex",
|
||||
@@ -2196,6 +2354,7 @@
|
||||
"video_hover_setting_description": "Reprodueix la miniatura quan el ratolí plana sobre l'element. Fins i tot quan estigui deshabilitat, la reproducció s'iniciarà planant sobre el botó de reproducció.",
|
||||
"videos": "Vídeos",
|
||||
"videos_count": "{count, plural, one {# vídeo} other {# vídeos}}",
|
||||
"videos_only": "Només videos",
|
||||
"view": "Veure",
|
||||
"view_album": "Veure l'àlbum",
|
||||
"view_all": "Veure tot",
|
||||
@@ -2216,6 +2375,8 @@
|
||||
"viewer_stack_use_as_main_asset": "Fes servir com a element principal",
|
||||
"viewer_unstack": "Desapila",
|
||||
"visibility_changed": "La visibilitat ha canviat per {count, plural, one {# persona} other {# persones}}",
|
||||
"visual": "Visual",
|
||||
"visual_builder": "Constructor visual",
|
||||
"waiting": "Esperant",
|
||||
"waiting_count": "Esperant: {count}",
|
||||
"warning": "Avís",
|
||||
@@ -2224,13 +2385,26 @@
|
||||
"welcome_to_immich": "Benvingut a immich",
|
||||
"width": "Amplada",
|
||||
"wifi_name": "Nom Wi-Fi",
|
||||
"workflow": "Flux de treball",
|
||||
"workflow_delete_prompt": "Segur que vols eliminar aquesta automatització?",
|
||||
"workflow_deleted": "Automatització eliminada",
|
||||
"workflow_description": "Descripció de l'automatització",
|
||||
"workflow_info": "Informació de l'automatització",
|
||||
"workflow_json": "JSON de l'automatització",
|
||||
"workflow_json_help": "Edita la configuració de l'automatització en format JSON. Els canvis es sincronitzaran amb el constructor visual.",
|
||||
"workflow_name": "Nom de l'automatització",
|
||||
"workflow_navigation_prompt": "Segur que vols sortir sense desar els canvis?",
|
||||
"workflow_summary": "Resum de l'automatització",
|
||||
"workflow_update_success": "Automatització actualitzada amb èxit",
|
||||
"workflow_updated": "Automatització actualitzada",
|
||||
"workflows": "Automatitzacions",
|
||||
"workflows_help_text": "Les automatitzacions realitzen accions automàticament sobre els teus mitjans basant-se en disparadors i filtres",
|
||||
"wrong_pin_code": "Codi PIN incorrecte",
|
||||
"year": "Any",
|
||||
"years_ago": "Fa {years, plural, one {# any} other {# anys}}",
|
||||
"yes": "Sí",
|
||||
"you_dont_have_any_shared_links": "No tens cap enllaç compartit",
|
||||
"your_wifi_name": "Nom del teu Wi-Fi",
|
||||
"zero_to_clear_rating": "prem 0 per a buidar la valoració",
|
||||
"zoom_image": "Ampliar Imatge",
|
||||
"zoom_to_bounds": "Amplia als límits"
|
||||
}
|
||||
|
||||
192
i18n/cs.json
192
i18n/cs.json
@@ -5,6 +5,7 @@
|
||||
"acknowledge": "Rozumím",
|
||||
"action": "Akce",
|
||||
"action_common_update": "Aktualizovat",
|
||||
"action_description": "Sada akcí, které se mají provést na filtrovaných položkách",
|
||||
"actions": "Akce",
|
||||
"active": "Aktivní",
|
||||
"active_count": "Aktivní: {count}",
|
||||
@@ -15,9 +16,14 @@
|
||||
"add_a_location": "Přidat polohu",
|
||||
"add_a_name": "Přidat jméno",
|
||||
"add_a_title": "Přidat název",
|
||||
"add_action": "Přidat akci",
|
||||
"add_action_description": "Kliknutím přidejte akci, kterou chcete provést",
|
||||
"add_assets": "Přidat položky",
|
||||
"add_birthday": "Přidat datum narození",
|
||||
"add_endpoint": "Přidat koncový bod",
|
||||
"add_exclusion_pattern": "Přidat vzor vyloučení",
|
||||
"add_filter": "Přidat filtr",
|
||||
"add_filter_description": "Kliknutím přidejte podmínku filtru",
|
||||
"add_location": "Přidat polohu",
|
||||
"add_more_users": "Přidat další uživatele",
|
||||
"add_partner": "Přidat partnera",
|
||||
@@ -36,6 +42,7 @@
|
||||
"add_to_shared_album": "Přidat do sdíleného alba",
|
||||
"add_upload_to_stack": "Přidat nahrané do zásobníku",
|
||||
"add_url": "Přidat URL",
|
||||
"add_workflow_step": "Přidat krok pracovního postupu",
|
||||
"added_to_archive": "Přidáno do archivu",
|
||||
"added_to_favorites": "Přidáno do oblíbených",
|
||||
"added_to_favorites_count": "Přidáno {count, number} do oblíbených",
|
||||
@@ -97,6 +104,8 @@
|
||||
"image_preview_description": "Středně velký obrázek se zbavenými metadaty, který se používá při prohlížení jedné položky a pro strojové učení",
|
||||
"image_preview_quality_description": "Kvalita náhledu od 1 do 100. Vyšší je lepší, ale vytváří větší soubory a může snížit responzivitu aplikace. Nastavení nízké hodnoty může ovlivnit kvalitu strojového učení.",
|
||||
"image_preview_title": "Náhledy",
|
||||
"image_progressive": "Progresivní",
|
||||
"image_progressive_description": "Kódujte JPEG obrázky progresivně pro postupné načítání zobrazení. Na WebP obrázky to nemá žádný vliv.",
|
||||
"image_quality": "Kvalita",
|
||||
"image_resolution": "Rozlišení",
|
||||
"image_resolution_description": "Vyšší rozlišení mohou zachovat více detailů, ale jejich kódování trvá déle, mají větší velikost souboru a mohou snížit odezvu aplikace.",
|
||||
@@ -181,10 +190,21 @@
|
||||
"machine_learning_smart_search_enabled": "Povolit chytré vyhledávání",
|
||||
"machine_learning_smart_search_enabled_description": "Pokud je vypnuto, obrázky nebudou kódovány pro inteligentní vyhledávání.",
|
||||
"machine_learning_url_description": "URL serveru strojového učení. Pokud je zadáno více URL adres, budou jednotlivé servery zkoušeny postupně, dokud jeden z nich neodpoví úspěšně, a to v pořadí od prvního k poslednímu. Servery, které neodpoví, budou dočasně ignorovány, dokud nebudou opět online.",
|
||||
"maintenance_delete_backup": "Smazat zálohu",
|
||||
"maintenance_delete_backup_description": "Tento soubor bude trvale smazán.",
|
||||
"maintenance_delete_error": "Nepodařilo se smazat zálohu.",
|
||||
"maintenance_restore_backup": "Obnovit zálohu",
|
||||
"maintenance_restore_backup_description": "Immich bude vymazán a obnoven z vybrané zálohy. Před pokračováním bude vytvořena záloha.",
|
||||
"maintenance_restore_backup_different_version": "Tato záloha byla vytvořena pomocí jiné verze aplikace Immich!",
|
||||
"maintenance_restore_backup_unknown_version": "Nelze určit verzi zálohy.",
|
||||
"maintenance_restore_database_backup": "Obnovit zálohu databáze",
|
||||
"maintenance_restore_database_backup_description": "Obnovení předchozího stavu databáze pomocí záložního souboru",
|
||||
"maintenance_settings": "Údržba",
|
||||
"maintenance_settings_description": "Přepnout Immich do režimu údržby.",
|
||||
"maintenance_start": "Zahájit režim údržby",
|
||||
"maintenance_start": "Přepnout do režimu údržby",
|
||||
"maintenance_start_error": "Nepodařilo se zahájit režim údržby.",
|
||||
"maintenance_upload_backup": "Nahrát záložní soubor databáze",
|
||||
"maintenance_upload_backup_error": "Nelze nahrát zálohu, jedná se o soubor .sql/.sql.gz?",
|
||||
"manage_concurrency": "Správa souběžnosti",
|
||||
"manage_concurrency_description": "Přejděte na stránku úloh a spravujte souběžnost úloh",
|
||||
"manage_log_settings": "Správa nastavení protokolu",
|
||||
@@ -252,7 +272,7 @@
|
||||
"oauth_auto_register": "Automatická registrace",
|
||||
"oauth_auto_register_description": "Automaticky registrovat nové uživatele po přihlášení pomocí OAuth",
|
||||
"oauth_button_text": "Text tlačítka",
|
||||
"oauth_client_secret_description": "Vyžaduje se, pokud poskytovatel OAuth nepodporuje PKCE (Proof Key for Code Exchange)",
|
||||
"oauth_client_secret_description": "Vyžadováno pro důvěrné klienty nebo pokud PKCE (Proof Key for Code Exchange) není podporováno pro veřejné klienty.",
|
||||
"oauth_enable_description": "Přihlásit pomocí OAuth",
|
||||
"oauth_mobile_redirect_uri": "Mobilní přesměrování URI",
|
||||
"oauth_mobile_redirect_uri_override": "Přepsat mobilní přesměrování URI",
|
||||
@@ -431,6 +451,9 @@
|
||||
"admin_password": "Heslo správce",
|
||||
"administration": "Administrace",
|
||||
"advanced": "Pokročilé",
|
||||
"advanced_settings_clear_image_cache": "Vyčistit mezipaměť obrázků",
|
||||
"advanced_settings_clear_image_cache_error": "Chyba při čištění mezipaměti obrázků",
|
||||
"advanced_settings_clear_image_cache_success": "Úspěšně vyčištěno {size}",
|
||||
"advanced_settings_enable_alternate_media_filter_subtitle": "Tuto možnost použijte k filtrování médií během synchronizace na základě alternativních kritérií. Tuto možnost vyzkoušejte pouze v případě, že máte problémy s detekcí všech alb v aplikaci.",
|
||||
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTÁLNÍ] Použít alternativní filtr pro synchronizaci alb zařízení",
|
||||
"advanced_settings_log_level_title": "Úroveň protokolování: {level}",
|
||||
@@ -467,10 +490,12 @@
|
||||
"album_remove_user": "Odebrat uživatele?",
|
||||
"album_remove_user_confirmation": "Opravdu chcete odebrat uživatele {user}?",
|
||||
"album_search_not_found": "Nebyla nalezena žádná alba odpovídající vašemu hledání",
|
||||
"album_selected": "Album vybráno",
|
||||
"album_share_no_users": "Zřejmě jste toto album sdíleli se všemi uživateli, nebo nemáte žádného uživatele, se kterým byste ho mohli sdílet.",
|
||||
"album_summary": "Souhrn alba",
|
||||
"album_updated": "Album aktualizováno",
|
||||
"album_updated_setting_description": "Dostávat e-mailová oznámení o nových položkách sdíleného alba",
|
||||
"album_upload_assets": "Nahrajte soubory z počítače a přidejte je do alba",
|
||||
"album_user_left": "Opustil {album}",
|
||||
"album_user_removed": "Uživatel {user} odebrán",
|
||||
"album_viewer_appbar_delete_confirm": "Opravdu chcete toto album odstranit ze svého účtu?",
|
||||
@@ -488,9 +513,11 @@
|
||||
"albums_default_sort_order_description": "Výchozí řazení položek při vytváření nových alb.",
|
||||
"albums_feature_description": "Sbírky položek, které lze sdílet s ostatními uživateli.",
|
||||
"albums_on_device_count": "Alba v zařízení ({count})",
|
||||
"albums_selected": "{count, plural, one {# album vybráno} few {# alba vybrány} other {# alb vybráno}}",
|
||||
"all": "Vše",
|
||||
"all_albums": "Všechna alba",
|
||||
"all_people": "Všichni lidé",
|
||||
"all_photos": "Všechny fotky",
|
||||
"all_videos": "Všechna videa",
|
||||
"allow_dark_mode": "Povolit tmavý režim",
|
||||
"allow_edits": "Povolit úpravy",
|
||||
@@ -498,6 +525,9 @@
|
||||
"allow_public_user_to_upload": "Povolit veřejnosti nahrávat",
|
||||
"allowed": "Povoleno",
|
||||
"alt_text_qr_code": "Obrázek QR kódu",
|
||||
"always_keep": "Pokaždé ponechat",
|
||||
"always_keep_photos_hint": "Uvolnění místa ponechá všechny fotky na tomto zařízení.",
|
||||
"always_keep_videos_hint": "Uvolnění místa ponechá všechny videa na tomto zařízení.",
|
||||
"anti_clockwise": "Proti směru hodinových ručiček",
|
||||
"api_key": "API klíč",
|
||||
"api_key_description": "Tato hodnota se zobrazí pouze jednou. Před zavřením okna ji nezapomeňte zkopírovat.",
|
||||
@@ -524,10 +554,12 @@
|
||||
"archived_count": "{count, plural, other {Archivováno #}}",
|
||||
"are_these_the_same_person": "Jedná se o stejnou osobu?",
|
||||
"are_you_sure_to_do_this": "Opravdu to chcete udělat?",
|
||||
"array_field_not_fully_supported": "Prvky pole vyžadují ruční úpravy JSON",
|
||||
"asset_action_delete_err_read_only": "Nelze odstranit položky pouze pro čtení, přeskakuji",
|
||||
"asset_action_share_err_offline": "Nelze načíst offline položky, přeskakuji",
|
||||
"asset_added_to_album": "Přidáno do alba",
|
||||
"asset_adding_to_album": "Přidávání do alba…",
|
||||
"asset_created": "Položka vytvořena",
|
||||
"asset_description_updated": "Popis položky byl aktualizován",
|
||||
"asset_filename_is_offline": "Položka {filename} je offline",
|
||||
"asset_has_unassigned_faces": "Položka má nepřiřazené obličeje",
|
||||
@@ -540,6 +572,9 @@
|
||||
"asset_list_layout_sub_title": "Rozložení",
|
||||
"asset_list_settings_subtitle": "Nastavení rozložení mřížky fotografií",
|
||||
"asset_list_settings_title": "Mřížka fotografií",
|
||||
"asset_not_found_on_device_android": "Položka nebyla nalezena na zařízení",
|
||||
"asset_not_found_on_device_ios": "Položka nebyla nalezena na zařízení. Pokud používáte iCloud, položka může být nepřístupná kvůli poškozenému souboru uloženému na iCloudu",
|
||||
"asset_not_found_on_icloud": "Položka nebyla nalezena na iCloudu. Položka může být nepřístupná kvůli poškozenému souboru uloženému na iCloudu",
|
||||
"asset_offline": "Offline položka",
|
||||
"asset_offline_description": "Toto externí položka se již na disku nenachází. Obraťte se na správce Immich a požádejte o pomoc.",
|
||||
"asset_restored_successfully": "Položka úspěšně obnovena",
|
||||
@@ -711,6 +746,8 @@
|
||||
"change_password_form_password_mismatch": "Hesla se neshodují",
|
||||
"change_password_form_reenter_new_password": "Znovu zadejte nové heslo",
|
||||
"change_pin_code": "Změnit PIN kód",
|
||||
"change_trigger": "Spouštěč změny",
|
||||
"change_trigger_prompt": "Opravdu chcete změnit spouštěč? Tím se odstraní všechny existující akce a filtry.",
|
||||
"change_your_password": "Změna vašeho hesla",
|
||||
"changed_visibility_successfully": "Změna viditelnosti proběhla úspěšně",
|
||||
"charging": "Nabíjení",
|
||||
@@ -722,6 +759,18 @@
|
||||
"checksum": "Kontrolní součet",
|
||||
"choose_matching_people_to_merge": "Zvolte odpovídající osoby ke sloučení",
|
||||
"city": "Město",
|
||||
"cleanup_confirm_description": "Immich našel {count} položek (vytvořených před {date}), které jsou bezpečně zálohovány na serveru. Chcete odstranit místní kopie z tohoto zařízení?",
|
||||
"cleanup_confirm_prompt_title": "Odstranit z tohoto zařízení?",
|
||||
"cleanup_deleted_assets": "Přesunuto {count} položek do koše zařízení",
|
||||
"cleanup_deleting": "Přesun do koše...",
|
||||
"cleanup_found_assets": "Nalezeno {count} zálohovaných položek",
|
||||
"cleanup_found_assets_with_size": "Nalezeno {count} založeno {size} položek",
|
||||
"cleanup_icloud_shared_albums_excluded": "Sdílená iCloud alba jsou vyloučena z prohledávání",
|
||||
"cleanup_no_assets_found": "Nebyly nalezeny žádné položky odpovídající výše uvedeným kritériím. Funkce Uvolnit místo může odstranit pouze položky, které byly zálohovány na server",
|
||||
"cleanup_preview_title": "Položky k odstranění ({count})",
|
||||
"cleanup_step3_description": "Vyhledat zálohované položky odpovídající vašemu datu a zachovat nastavení.",
|
||||
"cleanup_step4_summary": "{count} položek (vytvořených před {date}) je zařazeno do fronty k odstranění ze zařízení. Fotky zůstanou přístupné z aplikace Immich.",
|
||||
"cleanup_trash_hint": "Pro úplné uvolnění úložného prostoru otevřete aplikaci systémové galerie a vyprázdněte koš",
|
||||
"clear": "Vymazat",
|
||||
"clear_all": "Vymazat vše",
|
||||
"clear_all_recent_searches": "Vymazat všechna nedávná vyhledávání",
|
||||
@@ -733,6 +782,8 @@
|
||||
"client_cert_import": "Importovat",
|
||||
"client_cert_import_success_msg": "Klientský certifikát je importován",
|
||||
"client_cert_invalid_msg": "Neplatný soubor certifikátu nebo špatné heslo",
|
||||
"client_cert_password_message": "Zadejte heslo pro tento certifikát",
|
||||
"client_cert_password_title": "Heslo certifikátu",
|
||||
"client_cert_remove_msg": "Klientský certifikát je odstraněn",
|
||||
"client_cert_subtitle": "Podporuje pouze formát PKCS12 (.p12, .pfx). Import/odstranění certifikátu je možné pouze před přihlášením",
|
||||
"client_cert_title": "Klientský SSL certifikát [EXPERIMENTÁLNÍ]",
|
||||
@@ -787,6 +838,7 @@
|
||||
"create_album": "Vytvořit album",
|
||||
"create_album_page_untitled": "Bez názvu",
|
||||
"create_api_key": "Vytvořit API klíč",
|
||||
"create_first_workflow": "Vytvořte první pracovní postup",
|
||||
"create_library": "Vytvořit knihovnu",
|
||||
"create_link": "Vytvořit odkaz",
|
||||
"create_link_to_share": "Vytvořit odkaz pro sdílení",
|
||||
@@ -801,17 +853,25 @@
|
||||
"create_tag": "Vytvořit značku",
|
||||
"create_tag_description": "Vytvoření nové značky. U vnořených značek zadejte celou cestu ke značce včetně dopředných lomítek.",
|
||||
"create_user": "Vytvořit uživatele",
|
||||
"create_workflow": "Vytvořit pracovní postup",
|
||||
"created": "Vytvořeno",
|
||||
"created_at": "Vytvořeno",
|
||||
"creating_linked_albums": "Vytváření propojených alb...",
|
||||
"crop": "Oříznout",
|
||||
"crop_aspect_ratio_fixed": "Pevný",
|
||||
"crop_aspect_ratio_free": "Volný",
|
||||
"crop_aspect_ratio_original": "Původní",
|
||||
"curated_object_page_title": "Věci",
|
||||
"current_device": "Současné zařízení",
|
||||
"current_pin_code": "Aktuální PIN kód",
|
||||
"current_server_address": "Aktuální adresa serveru",
|
||||
"custom_date": "Vlastní datum",
|
||||
"custom_locale": "Vlastní lokalizace",
|
||||
"custom_locale_description": "Formátovat datumy a čísla podle jazyka a oblasti",
|
||||
"custom_url": "Vlastní URL",
|
||||
"cutoff_date_description": "Zanechat fotografie a videa z posledních…",
|
||||
"cutoff_day": "{count, plural, one {den} few {dny} other {dnů}}",
|
||||
"cutoff_year": "{count, plural, one {rok} few {roky} other {let}}",
|
||||
"daily_title_text_date": "EEEE, d. MMMM",
|
||||
"daily_title_text_date_year": "EEEE, d. MMMM y",
|
||||
"dark": "Tmavý",
|
||||
@@ -867,6 +927,7 @@
|
||||
"deselect_all": "Zrušit výběr všech",
|
||||
"details": "Podrobnosti",
|
||||
"direction": "Směr",
|
||||
"disable": "Zakázat",
|
||||
"disabled": "Zakázáno",
|
||||
"disallow_edits": "Zakázat úpravy",
|
||||
"discord": "Discord",
|
||||
@@ -892,6 +953,7 @@
|
||||
"download_include_embedded_motion_videos": "Vložená videa",
|
||||
"download_include_embedded_motion_videos_description": "Zahrnout videa vložená do pohyblivých fotografií jako samostatný soubor",
|
||||
"download_notfound": "Stahování nebylo nalezeno",
|
||||
"download_original": "Stáhnout originál",
|
||||
"download_paused": "Stahování pozastaveno",
|
||||
"download_settings": "Stahování",
|
||||
"download_settings_description": "Správa nastavení souvisejících se stahováním",
|
||||
@@ -901,6 +963,7 @@
|
||||
"download_waiting_to_retry": "Čekání na opakovaný pokus",
|
||||
"downloading": "Stahování",
|
||||
"downloading_asset_filename": "Stahování položky {filename}",
|
||||
"downloading_from_icloud": "Stahování z iCloudu",
|
||||
"downloading_media": "Stahování média",
|
||||
"drop_files_to_upload": "Pro nahrání sem přetáhněte soubory",
|
||||
"duplicates": "Duplicity",
|
||||
@@ -929,11 +992,22 @@
|
||||
"edit_tag": "Upravit značku",
|
||||
"edit_title": "Upravit název",
|
||||
"edit_user": "Upravit uživatele",
|
||||
"edit_workflow": "Upravit pracovní postup",
|
||||
"editor": "Editor",
|
||||
"editor_close_without_save_prompt": "Změny nebudou uloženy",
|
||||
"editor_close_without_save_title": "Zavřít editor?",
|
||||
"editor_crop_tool_h2_aspect_ratios": "Poměr stran",
|
||||
"editor_crop_tool_h2_rotation": "Otočení",
|
||||
"editor_confirm_reset_all_changes": "Opravdu chcete zrušit všechny změny?",
|
||||
"editor_discard_edits_confirm": "Zrušit úpravy",
|
||||
"editor_discard_edits_prompt": "Máte neuložené úpravy. Opravdu je chcete smazat?",
|
||||
"editor_discard_edits_title": "Zrušit úpravy?",
|
||||
"editor_edits_applied_error": "Nepodařilo se použít úpravy",
|
||||
"editor_edits_applied_success": "Úpravy byly úspěšně provedeny",
|
||||
"editor_flip_horizontal": "Otočit vodorovně",
|
||||
"editor_flip_vertical": "Otočit svisle",
|
||||
"editor_orientation": "Orientace",
|
||||
"editor_reset_all_changes": "Zrušit změny",
|
||||
"editor_rotate_left": "Otočit o 90° doleva",
|
||||
"editor_rotate_right": "Otočit o 90° doprava",
|
||||
"email": "E-mail",
|
||||
"email_notifications": "E-mailová oznámení",
|
||||
"empty_folder": "Tato složka je prázdná",
|
||||
@@ -952,11 +1026,14 @@
|
||||
"error_change_sort_album": "Nepodařilo se změnit pořadí alba",
|
||||
"error_delete_face": "Chyba při odstraňování obličeje z položky",
|
||||
"error_getting_places": "Chyba při zjišťování míst",
|
||||
"error_loading_albums": "Chyba načítaní alb",
|
||||
"error_loading_image": "Chyba při načítání obrázku",
|
||||
"error_loading_partners": "Chyba při načítání partnerů: {error}",
|
||||
"error_retrieving_asset_information": "Chyba při získávání informací o položce",
|
||||
"error_saving_image": "Chyba: {error}",
|
||||
"error_tag_face_bounding_box": "Chyba při označování obličeje - nelze získat souřadnice ohraničujícího rámečku",
|
||||
"error_title": "Chyba - Něco se pokazilo",
|
||||
"error_while_navigating": "Chyba při načítání položky",
|
||||
"errors": {
|
||||
"cannot_navigate_next_asset": "Nelze přejít na další položku",
|
||||
"cannot_navigate_previous_asset": "Nelze přejít na předchozí položku",
|
||||
@@ -1014,6 +1091,7 @@
|
||||
"unable_to_complete_oauth_login": "Nelze dokončit OAuth přihlášení",
|
||||
"unable_to_connect": "Nelze se připojit",
|
||||
"unable_to_copy_to_clipboard": "Nelze zkopírovat do schránky, ujistěte se, že na stránku přistupujete přes https",
|
||||
"unable_to_create": "Nelze vytvořit pracovní postup",
|
||||
"unable_to_create_admin_account": "Nelze vytvořit účet správce",
|
||||
"unable_to_create_api_key": "Nelze vytvořit nový API klíč",
|
||||
"unable_to_create_library": "Nelze vytvořit knihovnu",
|
||||
@@ -1024,6 +1102,7 @@
|
||||
"unable_to_delete_exclusion_pattern": "Nelze odstranit vzor vyloučení",
|
||||
"unable_to_delete_shared_link": "Nepodařilo se odstranit sdílený odkaz",
|
||||
"unable_to_delete_user": "Nelze odstranit uživatele",
|
||||
"unable_to_delete_workflow": "Nelze odstranit pracovní postup",
|
||||
"unable_to_download_files": "Nelze stáhnout soubory",
|
||||
"unable_to_edit_exclusion_pattern": "Nelze upravit vzor vyloučení",
|
||||
"unable_to_empty_trash": "Nelze vyprázdnit koš",
|
||||
@@ -1063,6 +1142,7 @@
|
||||
"unable_to_scan_library": "Nelze prohledat knihovnu",
|
||||
"unable_to_set_feature_photo": "Nelze nastavit hlavní fotografii",
|
||||
"unable_to_set_profile_picture": "Nelze nastavit profilový obrázek",
|
||||
"unable_to_set_rating": "Nelze nastavit hodnocení",
|
||||
"unable_to_submit_job": "Nelze odeslat úlohu",
|
||||
"unable_to_trash_asset": "Nelze vyhodit položku do koše",
|
||||
"unable_to_unlink_account": "Nelze zrušit propojení účtu",
|
||||
@@ -1074,8 +1154,10 @@
|
||||
"unable_to_update_settings": "Nelze aktualizovat nastavení",
|
||||
"unable_to_update_timeline_display_status": "Nelze aktualizovat stav zobrazení časové osy",
|
||||
"unable_to_update_user": "Nelze aktualizovat uživatele",
|
||||
"unable_to_update_workflow": "Nelze aktualizovat pracovní postup",
|
||||
"unable_to_upload_file": "Nepodařilo se nahrát soubor"
|
||||
},
|
||||
"errors_text": "Chyby",
|
||||
"exclusion_pattern": "Vzor vyloučení",
|
||||
"exif": "Exif",
|
||||
"exif_bottom_sheet_description": "Přidat popis...",
|
||||
@@ -1120,14 +1202,17 @@
|
||||
"features": "Funkce",
|
||||
"features_in_development": "Funkce ve vývoji",
|
||||
"features_setting_description": "Správa funkcí aplikace",
|
||||
"file_name": "Název souboru",
|
||||
"file_name_or_extension": "Název nebo přípona souboru",
|
||||
"file_name_text": "Název souboru",
|
||||
"file_name_with_value": "Název souboru: {file_name}",
|
||||
"file_size": "Velikost souboru",
|
||||
"filename": "Název souboru",
|
||||
"filetype": "Typ souboru",
|
||||
"filter": "Filtr",
|
||||
"filter_description": "Podmínky pro filtrování cílových položek",
|
||||
"filter_people": "Filtrovat lidi",
|
||||
"filter_places": "Filtrovat místa",
|
||||
"filters": "Filtry",
|
||||
"find_them_fast": "Najděte je rychle vyhledáním jejich jména",
|
||||
"first": "První",
|
||||
"fix_incorrect_match": "Opravit nesprávnou shodu",
|
||||
@@ -1137,12 +1222,16 @@
|
||||
"folders_feature_description": "Procházení zobrazení složek s fotografiemi a videi v souborovém systému",
|
||||
"forgot_pin_code_question": "Zapomněli jste PIN?",
|
||||
"forward": "Dopředu",
|
||||
"free_up_space": "Uvolnit místo",
|
||||
"free_up_space_description": "Přesunout zálohované fotografie a videa do koše zařízení, abyste uvolnili místo. Vaše kopie na serveru zůstanou v bezpečí.",
|
||||
"free_up_space_settings_subtitle": "Uvolnit úložiště zařízení",
|
||||
"full_path": "Úplná cesta: {path}",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Tato funkce načítá externí zdroje z Googlu, aby mohla fungovat.",
|
||||
"general": "Obecné",
|
||||
"geolocation_instruction_location": "Klikněte na položku s GPS souřadnicemi, abyste mohli použít její polohu, nebo vyberte polohu přímo z mapy",
|
||||
"get_help": "Získat pomoc",
|
||||
"get_people_error": "Chyba při načítání lidí",
|
||||
"get_wifiname_error": "Nepodařilo se získat název Wi-Fi. Zkontrolujte, zda jste udělili potřebná oprávnění a zda jste připojeni k Wi-Fi síti",
|
||||
"getting_started": "Začínáme",
|
||||
"go_back": "Přejít zpět",
|
||||
@@ -1175,6 +1264,7 @@
|
||||
"hide_named_person": "Skrýt osobu {name}",
|
||||
"hide_password": "Skrýt heslo",
|
||||
"hide_person": "Skrýt osobu",
|
||||
"hide_schema": "Skrýt schéma",
|
||||
"hide_text_recognition": "Skrýt rozpoznávání textu",
|
||||
"hide_unnamed_people": "Skrýt nejmenované lidi",
|
||||
"home_page_add_to_album_conflicts": "Přidáno {added} položek do alba {album}. {failed} položek je již v albu.",
|
||||
@@ -1247,9 +1337,18 @@
|
||||
"ios_debug_info_processing_ran_at": "Zpracování spuštěno {dateTime}",
|
||||
"items_count": "{count, plural, one {# položka} few {# položky} other {# položek}}",
|
||||
"jobs": "Úlohy",
|
||||
"json_editor": "JSON editor",
|
||||
"json_error": "Chyba JSON",
|
||||
"keep": "Ponechat",
|
||||
"keep_albums": "Ponechat alba",
|
||||
"keep_albums_count": "Ponechání {count} {count, plural, one {alba} other {alb}}",
|
||||
"keep_all": "Ponechat vše",
|
||||
"keep_description": "Vyberte co po uvolnění místa zůstane na vašem zařízení.",
|
||||
"keep_favorites": "Zachovat oblíbené",
|
||||
"keep_on_device": "Ponechat na zařízení",
|
||||
"keep_on_device_hint": "Vyberte položky které chcete zachovat na tomto zařízení",
|
||||
"keep_this_delete_others": "Ponechat tuto, odstranit ostatní",
|
||||
"keeping": "Ponechat: {items}",
|
||||
"kept_this_deleted_others": "Ponechána tato položka a {count, plural, one {odstraněna # položka} few {odstraněny # položky} other {odstraněno # položek}}",
|
||||
"keyboard_shortcuts": "Klávesové zkratky",
|
||||
"language": "Jazyk",
|
||||
@@ -1343,10 +1442,28 @@
|
||||
"loop_videos_description": "Povolit automatickou smyčku videa v prohlížeči.",
|
||||
"main_branch_warning": "Používáte vývojovou verzi; důrazně doporučujeme používat verzi z vydání!",
|
||||
"main_menu": "Hlavní nabídka",
|
||||
"maintenance_action_restore": "Obnovení databáze",
|
||||
"maintenance_description": "Immich byl přepnut do <link>režimu údržby</link>.",
|
||||
"maintenance_end": "Ukončit režim údržby",
|
||||
"maintenance_end_error": "Nepodařilo se ukončit režim údržby.",
|
||||
"maintenance_logged_in_as": "Aktuálně přihlášen jako {user}",
|
||||
"maintenance_restore_from_backup": "Obnovit ze zálohy",
|
||||
"maintenance_restore_library": "Obnovte svou knihovnu",
|
||||
"maintenance_restore_library_confirm": "Pokud vše vypadá správně, pokračujte v obnovení zálohy!",
|
||||
"maintenance_restore_library_description": "Obnovení databáze",
|
||||
"maintenance_restore_library_folder_has_files": "{folder} obsahuje {count} složek",
|
||||
"maintenance_restore_library_folder_no_files": "V složce {folder} chybí soubory!",
|
||||
"maintenance_restore_library_folder_pass": "čitelné a zapisovatelné",
|
||||
"maintenance_restore_library_folder_read_fail": "nečitelné",
|
||||
"maintenance_restore_library_folder_write_fail": "nezapisovatelné",
|
||||
"maintenance_restore_library_hint_missing_files": "Mohou vám chybět důležité soubory",
|
||||
"maintenance_restore_library_hint_regenerate_later": "Tyto můžete později obnovit v nastavení",
|
||||
"maintenance_restore_library_hint_storage_template_missing_files": "Používáte šablonu úložiště? Mohou vám chybět soubory",
|
||||
"maintenance_restore_library_loading": "Načítání kontrol integrity a heuristiky…",
|
||||
"maintenance_task_backup": "Vytváření zálohy existující databáze…",
|
||||
"maintenance_task_migrations": "Probíhá migrace databáze…",
|
||||
"maintenance_task_restore": "Obnovení vybrané zálohy…",
|
||||
"maintenance_task_rollback": "Obnova se nezdařila, návrat k bodu obnovení…",
|
||||
"maintenance_title": "Dočasně nedostupné",
|
||||
"make": "Výrobce",
|
||||
"manage_geolocation": "Spravovat polohu",
|
||||
@@ -1408,6 +1525,8 @@
|
||||
"minimize": "Minimalizovat",
|
||||
"minute": "Minuta",
|
||||
"minutes": "Minut",
|
||||
"mirror_horizontal": "Vodorovně",
|
||||
"mirror_vertical": "Svisle",
|
||||
"missing": "Chybějící",
|
||||
"mobile_app": "Mobilní aplikace",
|
||||
"mobile_app_download_onboarding_note": "Stáhněte si doprovodnou mobilní aplikaci pomocí následujících možností",
|
||||
@@ -1416,11 +1535,14 @@
|
||||
"monthly_title_text_date_format": "LLLL y",
|
||||
"more": "Více",
|
||||
"move": "Přesunout",
|
||||
"move_down": "Přesunout dolů",
|
||||
"move_off_locked_folder": "Přesunout z uzamčené složky",
|
||||
"move_to": "Přesunout do",
|
||||
"move_to_device_trash": "Přesunout do koše zařízení",
|
||||
"move_to_lock_folder_action_prompt": "{count} přidaných do uzamčené složky",
|
||||
"move_to_locked_folder": "Přesunout do uzamčené složky",
|
||||
"move_to_locked_folder_confirmation": "Tyto fotky a videa budou odstraněny ze všech alb a bude je možné zobrazit pouze v uzamčené složce",
|
||||
"move_up": "Přesunout nahoru",
|
||||
"moved_to_archive": "{count, plural, one {# položka přesunuta} few {# položky přesunuty} other {# položek přesunuto}} do archivu",
|
||||
"moved_to_library": "{count, plural, one {# položka přesunuta} few {# položky přesunuty} other {# položek přesunuto}} do knihovny",
|
||||
"moved_to_trash": "Přesunuto do koše",
|
||||
@@ -1430,6 +1552,7 @@
|
||||
"my_albums": "Moje alba",
|
||||
"name": "Jméno",
|
||||
"name_or_nickname": "Jméno nebo přezdívka",
|
||||
"name_required": "Jméno je povinné",
|
||||
"navigate": "Navigovat",
|
||||
"navigate_to_time": "Navigovat na čas",
|
||||
"network_requirement_photos_upload": "Pro zálohování fotografií používat mobilní data",
|
||||
@@ -1454,20 +1577,24 @@
|
||||
"next": "Další",
|
||||
"next_memory": "Další vzpomínka",
|
||||
"no": "Ne",
|
||||
"no_actions_added": "Zatím nebyly přidány žádné akce",
|
||||
"no_albums_found": "Žádná alba nenalezena",
|
||||
"no_albums_message": "Vytvořte si album pro uspořádání fotografií a videí",
|
||||
"no_albums_with_name_yet": "Vypadá to, že zatím nemáte žádná alba s tímto názvem.",
|
||||
"no_albums_yet": "Vypadá to, že ještě nemáte žádná alba.",
|
||||
"no_archived_assets_message": "Archivujte fotografie a videa a skryjte je ze zobrazení v sekci Fotky",
|
||||
"no_assets_message": "KLIKNĚTE PRO NAHRÁNÍ PRVNÍ FOTOGRAFIE",
|
||||
"no_assets_message": "Klikněte pro nahrání první fotografie",
|
||||
"no_assets_to_show": "Žádné položky k zobrazení",
|
||||
"no_cast_devices_found": "Nebyla nalezena žádná zařízení",
|
||||
"no_checksum_local": "Není k dispozici kontrolní součet - nelze načíst místní položky",
|
||||
"no_checksum_remote": "Není k dispozici kontrolní součet - nelze načíst vzdálenou položku",
|
||||
"no_configuration_needed": "Není nutná žádná konfigurace",
|
||||
"no_devices": "Žádná autorizovaná zařízení",
|
||||
"no_duplicates_found": "Nebyly nalezeny žádné duplicity.",
|
||||
"no_exif_info_available": "Exif není k dispozici",
|
||||
"no_explore_results_message": "Nahrajte další fotografie a prozkoumejte svou sbírku.",
|
||||
"no_favorites_message": "Přidejte si oblíbené položky a rychle najděte své nejlepší obrázky a videa",
|
||||
"no_filters_added": "Zatím nebyly přidány žádné filtry",
|
||||
"no_libraries_message": "Vytvořte si externí knihovnu pro zobrazení fotografií a videí",
|
||||
"no_local_assets_found": "Nebyly nalezeny žádné místní položky s tímto kontrolním součtem",
|
||||
"no_location_set": "Není nastavena poloha",
|
||||
@@ -1481,6 +1608,7 @@
|
||||
"no_results_description": "Zkuste použít synonymum nebo obecnější klíčové slovo",
|
||||
"no_shared_albums_message": "Vytvořte si album a sdílejte fotografie a videa s lidmi ve své síti",
|
||||
"no_uploads_in_progress": "Neprobíhá žádné nahrávání",
|
||||
"none": "Žádné",
|
||||
"not_allowed": "Nepovoleno",
|
||||
"not_available": "Není k dispozici",
|
||||
"not_in_any_album": "Bez alba",
|
||||
@@ -1563,6 +1691,7 @@
|
||||
"people": "Lidé",
|
||||
"people_edits_count": "Upraveno {count, plural, one {# osoba} few {# osoby} other {# lidí}}",
|
||||
"people_feature_description": "Procházení fotografií a videí seskupených podle osob",
|
||||
"people_selected": "{count, plural, one {# osoba vybrána} few {# osob vybráno} other {# lidí vybráno}}",
|
||||
"people_sidebar_description": "Zobrazit sekci Lidé v postranním panelu",
|
||||
"permanent_deletion_warning": "Upozornění na trvalé smazání",
|
||||
"permanent_deletion_warning_setting_description": "Zobrazit varování při trvalém odstranění položek",
|
||||
@@ -1587,11 +1716,14 @@
|
||||
"person_age_years": "{years, plural, one {# rok} few {# roky} other {# let}}",
|
||||
"person_birthdate": "Narozen(a) {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (skryto)} other {}}",
|
||||
"person_recognized": "Osoba rozpoznána",
|
||||
"person_selected": "Osoba vybrána",
|
||||
"photo_shared_all_users": "Vypadá to, že jste fotky sdíleli se všemi uživateli, nebo nemáte žádného uživatele, se kterým byste je mohli sdílet.",
|
||||
"photos": "Fotky",
|
||||
"photos_and_videos": "Fotky a videa",
|
||||
"photos_count": "{count, plural, one {{count, number} fotka} few {{count, number} fotky} other {{count, number} fotek}}",
|
||||
"photos_from_previous_years": "Fotky z předchozích let",
|
||||
"photos_only": "Pouze fotografie",
|
||||
"pick_a_location": "Vyberte polohu",
|
||||
"pick_custom_range": "Vlastní rozsah",
|
||||
"pick_date_range": "Vyberte rozsah dat",
|
||||
@@ -1667,10 +1799,12 @@
|
||||
"purchase_settings_server_activated": "Produktový klíč serveru spravuje správce",
|
||||
"query_asset_id": "ID položky dotazu",
|
||||
"queue_status": "Ve frontě {count}/{total}",
|
||||
"rate_asset": "Hodnotit položku",
|
||||
"rating": "Hodnocení hvězdičkami",
|
||||
"rating_clear": "Vyčistit hodnocení",
|
||||
"rating_count": "{count, plural, one {# hvězdička} few {# hvězdičky} other {# hvězdček}}",
|
||||
"rating_description": "Zobrazit EXIF hodnocení v informačním panelu",
|
||||
"rating_set": "Hodnocení nastaveno na {rating, plural, one {# hvězdičku} few {# hvězdičky} other {# hvězdiček}}",
|
||||
"reaction_options": "Možnosti reakce",
|
||||
"read_changelog": "Přečtěte si seznam změn",
|
||||
"readonly_mode_disabled": "Režim pouze pro čtení je deaktivován",
|
||||
@@ -1770,9 +1904,11 @@
|
||||
"saved_settings": "Nastavení uloženo",
|
||||
"say_something": "Napište něco",
|
||||
"scaffold_body_error_occurred": "Došlo k chybě",
|
||||
"scan": "Prohledat",
|
||||
"scan_all_libraries": "Prohledat všechny knihovny",
|
||||
"scan_library": "Prohledat",
|
||||
"scan_settings": "Nastavení prohledávání",
|
||||
"scanning": "Prohládává se",
|
||||
"scanning_for_album": "Prohledávání alba...",
|
||||
"search": "Hledat",
|
||||
"search_albums": "Vyhledávejte alba",
|
||||
@@ -1802,6 +1938,7 @@
|
||||
"search_filter_media_type_title": "Výběr typu média",
|
||||
"search_filter_ocr": "Hledat pomocí OCR",
|
||||
"search_filter_people_title": "Výběr lidí",
|
||||
"search_filter_star_rating": "Hodnocení hvězdičkami",
|
||||
"search_for": "Vyhledat",
|
||||
"search_for_existing_person": "Vyhledat existující osobu",
|
||||
"search_no_more_result": "Žádné další výsledky",
|
||||
@@ -1836,17 +1973,23 @@
|
||||
"second": "Sekunda",
|
||||
"see_all_people": "Zobrazit všechny lidi",
|
||||
"select": "Vybrat",
|
||||
"select_album": "Vybrat album",
|
||||
"select_album_cover": "Vybrat obal alba",
|
||||
"select_albums": "Vybrat alba",
|
||||
"select_all": "Vybrat vše",
|
||||
"select_all_duplicates": "Vybrat všechny duplicity",
|
||||
"select_all_in": "Vybrat vše ve skupině {group}",
|
||||
"select_avatar_color": "Vyberte barvu avatara",
|
||||
"select_count": "{count, plural, one {Vybrat #} other {Vybrat #}}",
|
||||
"select_cutoff_date": "Vybrat mezní datum",
|
||||
"select_face": "Vybrat obličej",
|
||||
"select_featured_photo": "Vybrat hlavní fotografii",
|
||||
"select_from_computer": "Vybrat z počítače",
|
||||
"select_keep_all": "Vybrat ponechat vše",
|
||||
"select_library_owner": "Vyberte vlastníka knihovny",
|
||||
"select_new_face": "Výběr nového obličeje",
|
||||
"select_people": "Vybrat lidi",
|
||||
"select_person": "Vybrat osobu",
|
||||
"select_person_to_tag": "Vyberte osobu, kterou chcete označit",
|
||||
"select_photos": "Vybrat fotky",
|
||||
"select_trash_all": "Vybrat vyhodit vše",
|
||||
@@ -1982,6 +2125,7 @@
|
||||
"show_password": "Zobrazit heslo",
|
||||
"show_person_options": "Zobrazit možnosti osoby",
|
||||
"show_progress_bar": "Zobrazit ukazatel průběhu",
|
||||
"show_schema": "Zobrazit schéma",
|
||||
"show_search_options": "Zobrazit možnosti vyhledávání",
|
||||
"show_shared_links": "Zobrazit sdílené odkazy",
|
||||
"show_slideshow_transition": "Zobrazit přechod prezentace",
|
||||
@@ -1999,6 +2143,8 @@
|
||||
"skip_to_folders": "Přeskočit na složky",
|
||||
"skip_to_tags": "Přeskočit na značky",
|
||||
"slideshow": "Prezentace",
|
||||
"slideshow_repeat": "Opakovat prezentaci",
|
||||
"slideshow_repeat_description": "Po skončení prezentace se vrátit na začátek",
|
||||
"slideshow_settings": "Nastavení prezentace",
|
||||
"sort_albums_by": "Seřadit alba podle...",
|
||||
"sort_created": "Datum vytvoření",
|
||||
@@ -2075,6 +2221,7 @@
|
||||
"theme_setting_theme_subtitle": "Vyberte nastavení tématu aplikace",
|
||||
"theme_setting_three_stage_loading_subtitle": "Třístupňové načítání může zvýšit výkonnost načítání, ale vede k výrazně vyššímu zatížení sítě",
|
||||
"theme_setting_three_stage_loading_title": "Povolení třístupňového načítání",
|
||||
"then": "Pak",
|
||||
"they_will_be_merged_together": "Budou sloučeny dohromady",
|
||||
"third_party_resources": "Zdroje třetích stran",
|
||||
"time": "Čas",
|
||||
@@ -2109,6 +2256,13 @@
|
||||
"trash_page_select_assets_btn": "Vybrat položky",
|
||||
"trash_page_title": "Koš ({count})",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Smazané položky budou trvale odstraněny po {days, plural, one {# dni} other {# dnech}}.",
|
||||
"trigger": "Spouštěč",
|
||||
"trigger_asset_uploaded": "Položka nahrána",
|
||||
"trigger_asset_uploaded_description": "Spustí se při nahrání nového souboru",
|
||||
"trigger_description": "Událost, která spustí pracovní postup",
|
||||
"trigger_person_recognized": "Osoba rozpoznána",
|
||||
"trigger_person_recognized_description": "Spustí se, když je objevena osoba",
|
||||
"trigger_type": "Typ spouštěče",
|
||||
"troubleshoot": "Diagnostika",
|
||||
"type": "Typ",
|
||||
"unable_to_change_pin_code": "Nelze změnit PIN kód",
|
||||
@@ -2123,6 +2277,7 @@
|
||||
"unhide_person": "Zrušit skrytí osoby",
|
||||
"unknown": "Neznámý",
|
||||
"unknown_country": "Neznámá země",
|
||||
"unknown_date": "Neznámé datum",
|
||||
"unknown_year": "Neznámý rok",
|
||||
"unlimited": "Neomezeně",
|
||||
"unlink_motion_video": "Odpojit pohyblivé video",
|
||||
@@ -2139,17 +2294,19 @@
|
||||
"unstack": "Zrušit seskupení",
|
||||
"unstack_action_prompt": "{count} seskupených zrušeno",
|
||||
"unstacked_assets_count": "{count, plural, one {Rozložená # položka} few {Rozložené # položky} other {Rozložených # položek}}",
|
||||
"unsupported_field_type": "Nepodporovaný typ pole",
|
||||
"untagged": "Neoznačeno",
|
||||
"untitled_workflow": "Pracovní postup bez názvu",
|
||||
"up_next": "To je prozatím vše",
|
||||
"update_location_action_prompt": "Aktualizovat polohu {count} vybraných položek pomocí:",
|
||||
"updated_at": "Aktualizováno",
|
||||
"updated_password": "Heslo aktualizováno",
|
||||
"upload": "Nahrát",
|
||||
"upload_action_prompt": "{count} ve frontě pro nahrání",
|
||||
"upload_concurrency": "Souběžnost nahrávání",
|
||||
"upload_details": "Detaily nahrávání",
|
||||
"upload_dialog_info": "Chcete zálohovat vybrané položky na server?",
|
||||
"upload_dialog_title": "Nahrát položku",
|
||||
"upload_error_with_count": "Chyba při nahrávání {count, plural, one {# položky} other {# položek}}",
|
||||
"upload_errors": "Nahrávání bylo dokončeno s {count, plural, one {# chybou} other {# chybami}}, obnovte stránku pro zobrazení nových položek.",
|
||||
"upload_finished": "Nahrávání dokončeno",
|
||||
"upload_progress": "Zbývá {remaining, number} - Zpracováno {processed, number}/{total, number}",
|
||||
@@ -2164,7 +2321,7 @@
|
||||
"url": "URL",
|
||||
"usage": "Využití",
|
||||
"use_biometric": "Použít biometrické údaje",
|
||||
"use_current_connection": "použít aktuální připojení",
|
||||
"use_current_connection": "Použít aktuální připojení",
|
||||
"use_custom_date_range": "Použít vlastní rozsah dat",
|
||||
"user": "Uživatel",
|
||||
"user_has_been_deleted": "Tento uživatel byl smazán.",
|
||||
@@ -2185,6 +2342,7 @@
|
||||
"utilities": "Nástroje",
|
||||
"validate": "Ověřit",
|
||||
"validate_endpoint_error": "Zadejte platné URL",
|
||||
"validation_error": "Chyba ověření",
|
||||
"variables": "Proměnné",
|
||||
"version": "Verze",
|
||||
"version_announcement_closing": "Váš přítel Alex",
|
||||
@@ -2196,6 +2354,7 @@
|
||||
"video_hover_setting_description": "Přehrát miniaturu videa při najetí myší na položku. I když je přehrávání vypnuto, lze jej spustit najetím na ikonu přehrávání.",
|
||||
"videos": "Videa",
|
||||
"videos_count": "{count, plural, one {# video} few {# videa} other {# videí}}",
|
||||
"videos_only": "Pouze videa",
|
||||
"view": "Zobrazit",
|
||||
"view_album": "Zobrazit album",
|
||||
"view_all": "Zobrazit vše",
|
||||
@@ -2216,6 +2375,8 @@
|
||||
"viewer_stack_use_as_main_asset": "Použít jako hlavní položku",
|
||||
"viewer_unstack": "Zrušit zásobník",
|
||||
"visibility_changed": "Viditelnost změněna u {count, plural, one {# osoby} few {# osob} other {# lidí}}",
|
||||
"visual": "Vizuální",
|
||||
"visual_builder": "Vizuální návrhář",
|
||||
"waiting": "Čekající",
|
||||
"waiting_count": "Čekající: {count}",
|
||||
"warning": "Upozornění",
|
||||
@@ -2224,13 +2385,26 @@
|
||||
"welcome_to_immich": "Vítejte v Immichi",
|
||||
"width": "Šířka",
|
||||
"wifi_name": "Název Wi-Fi",
|
||||
"workflow": "Pracovní postup",
|
||||
"workflow_delete_prompt": "Opravdu chcete tento pracovní postup smazat?",
|
||||
"workflow_deleted": "Pracovní postup smazán",
|
||||
"workflow_description": "Popis pracovního postupu",
|
||||
"workflow_info": "Informace o pracovním postupu",
|
||||
"workflow_json": "JSON pracovního postupu",
|
||||
"workflow_json_help": "Upravte konfiguraci pracovního postupu ve formátu JSON. Změny se synchronizují s vizuálním návrhářem.",
|
||||
"workflow_name": "Název pracovního postupu",
|
||||
"workflow_navigation_prompt": "Opravdu chcete odejít bez uložení změn?",
|
||||
"workflow_summary": "Shrnutí pracovního postupu",
|
||||
"workflow_update_success": "Pracovní postup byl úspěšně aktualizován",
|
||||
"workflow_updated": "Pracovní postup aktualizován",
|
||||
"workflows": "Pracovní postupy",
|
||||
"workflows_help_text": "Pracovní postupy automatizují akce týkající se vašich položek na základě spouštěčů a filtrů",
|
||||
"wrong_pin_code": "Chybný PIN kód",
|
||||
"year": "Rok",
|
||||
"years_ago": "Před {years, plural, one {rokem} other {# lety}}",
|
||||
"yes": "Ano",
|
||||
"you_dont_have_any_shared_links": "Nemáte žádné sdílené odkazy",
|
||||
"your_wifi_name": "Název vaší Wi-Fi",
|
||||
"zero_to_clear_rating": "stiskněte 0 pro vymazání hodnocení položky",
|
||||
"zoom_image": "Zvětšit obrázek",
|
||||
"zoom_to_bounds": "Přiblížit na okraje"
|
||||
}
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
"map_settings": "Карттӑ ĕнерленĕвĕ",
|
||||
"no_explore_results_message": "Хӑвӑр коллекципе киленмешкӗн сӑнӳкерчӗксем ытларах тийӗр.",
|
||||
"open_in_openstreetmap": "OpenStreetMap-па уҫ",
|
||||
"organize_your_library": "Хӑвӑн вулавӑшна йӗркеле",
|
||||
"partner_sharing": "Партнер пайланӑвӗ",
|
||||
"people": "Ҫынсем",
|
||||
"photos": "Сӑнӳкерчӗксем",
|
||||
@@ -90,5 +91,6 @@
|
||||
"sharing": "Пайлани",
|
||||
"sharing_enter_password": "Ку питне курма пароль кӗртӗр.",
|
||||
"user_usage_stats": "Шута ҫырни усӑ курмалли статистика",
|
||||
"user_usage_stats_description": "Шута ҫырни усӑ курмалли статистикӑна пӑхасси"
|
||||
"user_usage_stats_description": "Шута ҫырни усӑ курмалли статистикӑна пӑхасси",
|
||||
"utilities": "Пулӑшакансем"
|
||||
}
|
||||
|
||||
260
i18n/da.json
260
i18n/da.json
@@ -5,6 +5,7 @@
|
||||
"acknowledge": "Accepter",
|
||||
"action": "Handling",
|
||||
"action_common_update": "Opdater",
|
||||
"action_description": "Et sæt handlinger, der skal udføres på de filtrerede mediefiler",
|
||||
"actions": "Handlinger",
|
||||
"active": "Aktiv",
|
||||
"active_count": "Aktiv: {count}",
|
||||
@@ -15,9 +16,14 @@
|
||||
"add_a_location": "Tilføj en placering",
|
||||
"add_a_name": "Tilføj et navn",
|
||||
"add_a_title": "Tilføj en titel",
|
||||
"add_action": "Tilføj handling",
|
||||
"add_action_description": "Klik for at tilføje en handling, der skal udføres",
|
||||
"add_assets": "Tilføj ressourcer",
|
||||
"add_birthday": "Tilføj en fødselsdag",
|
||||
"add_endpoint": "Tilføj endepunkt",
|
||||
"add_exclusion_pattern": "Tilføj udelukkelsesmønster",
|
||||
"add_filter": "Tilføj filter",
|
||||
"add_filter_description": "Klik for at tilføje en filterbetingelse",
|
||||
"add_location": "Tilføj placering",
|
||||
"add_more_users": "Tilføj flere brugere",
|
||||
"add_partner": "Tilføj partner",
|
||||
@@ -36,6 +42,7 @@
|
||||
"add_to_shared_album": "Tilføj til delt album",
|
||||
"add_upload_to_stack": "Tilføj upload til stack",
|
||||
"add_url": "Tilføj URL",
|
||||
"add_workflow_step": "Tilføj workflow-trin",
|
||||
"added_to_archive": "Tilføjet til arkiv",
|
||||
"added_to_favorites": "Tilføjet til favoritter",
|
||||
"added_to_favorites_count": "Tilføjede {count, number} til favoritter",
|
||||
@@ -97,6 +104,8 @@
|
||||
"image_preview_description": "Mellemstørrelse billede med fjernet metadata, der bruges, når du ser en enkelt mediefil og til machine learning",
|
||||
"image_preview_quality_description": "Kvalitet af forhåndsvisning fra 1-100. Højere er bedre, men producerer større filer og kan reducere apprespons. Valg af en lav værdi kan påvirke kvaliteten af maskin læring.",
|
||||
"image_preview_title": "Indstillinger for forhåndsvisning",
|
||||
"image_progressive": "Progressivt",
|
||||
"image_progressive_description": "Indkod JPEG-billeder progressivt for gradvis indlæsning. Dette har ingen effekt på WebP-billeder.",
|
||||
"image_quality": "Kvalitet",
|
||||
"image_resolution": "Opløsning",
|
||||
"image_resolution_description": "Højere opløsning indeholder flere detaljer, men tager længere tid at processerer, giver større filer og sænker svartiderne i applikationen.",
|
||||
@@ -181,10 +190,21 @@
|
||||
"machine_learning_smart_search_enabled": "Aktiver smart søgning",
|
||||
"machine_learning_smart_search_enabled_description": "Hvis deaktiveret, vil billeder ikke blive kodet til smart søgning.",
|
||||
"machine_learning_url_description": "URL’en for maskinlæringsserveren. Hvis mere end én URL angives, vil hver server blive forsøgt én ad gangen, indtil en svarer succesfuldt, i rækkefølge fra første til sidste. Servere, der ikke svarer, vil midlertidigt blive ignoreret, indtil de kommer online igen.",
|
||||
"maintenance_delete_backup": "Slet Backup",
|
||||
"maintenance_delete_backup_description": "Denne fil vil blive slettet permanent.",
|
||||
"maintenance_delete_error": "Sletning af backup fejlede.",
|
||||
"maintenance_restore_backup": "Genskab backup",
|
||||
"maintenance_restore_backup_description": "Immich bliver slettet og genskabt fra den valgte backup. Der vil blive taget en backup før du fortsætter.",
|
||||
"maintenance_restore_backup_different_version": "Denne backup blev lavet med en anden version af Immich!",
|
||||
"maintenance_restore_backup_unknown_version": "Kunne ikke bestemme versionen af backup'en.",
|
||||
"maintenance_restore_database_backup": "Genskab databasebackup",
|
||||
"maintenance_restore_database_backup_description": "Gendan en tidligere databasetilstand ved hjælp af en sikkerhedskopifil",
|
||||
"maintenance_settings": "Vedligeholdelse",
|
||||
"maintenance_settings_description": "Sæt Immich i vedligeholdelsestilstand.",
|
||||
"maintenance_start": "Start vedligeholdelsestilstand",
|
||||
"maintenance_start": "Skift til vedligeholdelsestilstand",
|
||||
"maintenance_start_error": "Vedligeholdelsestilstand kunne ikke startes.",
|
||||
"maintenance_upload_backup": "Upload databasebackupfil",
|
||||
"maintenance_upload_backup_error": "Kunne ikke uploade backup, er det en .sql/.sql.gz fil?",
|
||||
"manage_concurrency": "Administrer antallet af samtidige opgaver",
|
||||
"manage_concurrency_description": "Naviger til jobsiden for at administrere jobsamtidighed",
|
||||
"manage_log_settings": "Administrer logindstillinger",
|
||||
@@ -252,7 +272,7 @@
|
||||
"oauth_auto_register": "Autoregistrér",
|
||||
"oauth_auto_register_description": "Registrér automatisk nye brugere efter at have logget ind med OAuth",
|
||||
"oauth_button_text": "Knaptekst",
|
||||
"oauth_client_secret_description": "Påkrævet hvis PKCE (Proof Key for Code Exchange) ikke er supporteret af OAuth-udbyderen",
|
||||
"oauth_client_secret_description": "Påkrævet for en fortrolig klient eller hvis PKCE (Proof Key for Code Exchange) ikke understøttes for en offentlig klient.",
|
||||
"oauth_enable_description": "Log ind med OAuth",
|
||||
"oauth_mobile_redirect_uri": "Mobilomdiregerings-URL",
|
||||
"oauth_mobile_redirect_uri_override": "Tilsidesættelse af mobil omdiregerings-URL",
|
||||
@@ -363,7 +383,7 @@
|
||||
"transcoding_hardware_acceleration": "Hardwareacceleration",
|
||||
"transcoding_hardware_acceleration_description": "Eksperimentel: hurtigere transkodning men kan sænke kvaliteten ved samme bitrate",
|
||||
"transcoding_hardware_decoding": "Hardware-afkodning",
|
||||
"transcoding_hardware_decoding_setting_description": "Gælder kun NVENC, QSV og RKMPP. Slår ende-til-ende acceleration til i stedet for kun at accelerere indkodning. Virker måske ikke på alle videoer.",
|
||||
"transcoding_hardware_decoding_setting_description": "Slår ende‑til‑ende‑acceleration til i stedet for kun at accelerere indkodning. Virker muligvis ikke på alle videoer.",
|
||||
"transcoding_max_b_frames": "Maksimum B-frames",
|
||||
"transcoding_max_b_frames_description": "Højere værdier forbedrer kompressionseffektivitet, men kan gøre indkodning langsommere. Er måske ikke kompatibelt med hardware-acceleration på ældre enheder. 0 slår B-frames fra, mens -1 sætter denne værdi automatisk.",
|
||||
"transcoding_max_bitrate": "Maksimal bitrate",
|
||||
@@ -431,6 +451,9 @@
|
||||
"admin_password": "Administratoradgangskode",
|
||||
"administration": "Administration",
|
||||
"advanced": "Avanceret",
|
||||
"advanced_settings_clear_image_cache": "Ryd billedcache",
|
||||
"advanced_settings_clear_image_cache_error": "Billedcachen kunne ikke ryddes",
|
||||
"advanced_settings_clear_image_cache_success": "Ryddet {size}",
|
||||
"advanced_settings_enable_alternate_media_filter_subtitle": "Brug denne valgmulighed for at filtrere media under synkronisering baseret på alternative kriterier. Prøv kun denne, hvis du har problemer med, at appen ikke opdager alle albums.",
|
||||
"advanced_settings_enable_alternate_media_filter_title": "[EKSPERIMENTEL] Brug alternativ enheds album synkroniserings filter",
|
||||
"advanced_settings_log_level_title": "Logniveau: {level}",
|
||||
@@ -447,9 +470,9 @@
|
||||
"advanced_settings_tile_subtitle": "Avancerede brugerindstillinger",
|
||||
"advanced_settings_troubleshooting_subtitle": "Slå ekstra funktioner for fejlsøgning til",
|
||||
"advanced_settings_troubleshooting_title": "Fejlsøgning",
|
||||
"age_months": "Alder {months, plural, one {# måned} other {# måneder}}",
|
||||
"age_year_months": "Alder 1 år, {months, plural, one {# måned} other {# måneder}}",
|
||||
"age_years": "{years, plural, other {Alder #}}",
|
||||
"age_months": "{months, plural, one {# måned} other {# måneder}} gammel",
|
||||
"age_year_months": "1 år, {months, plural, one {# måned} other {# måneder}} gammel",
|
||||
"age_years": "{years, plural, other {# år}}",
|
||||
"album": "Album",
|
||||
"album_added": "Album tilføjet",
|
||||
"album_added_notification_setting_description": "Modtag en emailnotifikation når du bliver tilføjet til en delt album",
|
||||
@@ -467,10 +490,12 @@
|
||||
"album_remove_user": "Fjern bruger?",
|
||||
"album_remove_user_confirmation": "Er du sikker på at du vil fjerne {user}?",
|
||||
"album_search_not_found": "Ingen album fundet som matcher din søgning",
|
||||
"album_selected": "Album valgt",
|
||||
"album_share_no_users": "Det ser ud til at du har delt denne album med alle brugere, eller du har ikke nogen brugere til at dele med.",
|
||||
"album_summary": "Albumoversigt",
|
||||
"album_updated": "Album opdateret",
|
||||
"album_updated_setting_description": "Modtag en emailnotifikation når et delt album får nye mediefiler",
|
||||
"album_upload_assets": "Upload filer fra din computer og tilføj dem til album",
|
||||
"album_user_left": "Forlod {album}",
|
||||
"album_user_removed": "Fjernede {user}",
|
||||
"album_viewer_appbar_delete_confirm": "Er du sikker på, du vil slette dette album fra din bruger?",
|
||||
@@ -488,9 +513,11 @@
|
||||
"albums_default_sort_order_description": "Grundlæggende sortering ved oprettelse af nyt album.",
|
||||
"albums_feature_description": "Samling af billeder der kan deles med andre brugere.",
|
||||
"albums_on_device_count": "Albummer på enheden ({count})",
|
||||
"albums_selected": "{count, plural, one {# album valgt} other {# valgte albummer}}",
|
||||
"all": "Alt",
|
||||
"all_albums": "Alle albummer",
|
||||
"all_people": "Alle personer",
|
||||
"all_photos": "Alle billeder",
|
||||
"all_videos": "Alle videoer",
|
||||
"allow_dark_mode": "Tillad mørk tilstand",
|
||||
"allow_edits": "Tillad redigeringer",
|
||||
@@ -498,6 +525,9 @@
|
||||
"allow_public_user_to_upload": "Tillad offentlige brugere til at uploade",
|
||||
"allowed": "Tilladt",
|
||||
"alt_text_qr_code": "QR-kode billede",
|
||||
"always_keep": "Opbevar altid",
|
||||
"always_keep_photos_hint": "Frigør plads vil bevare alle billeder på denne enhed.",
|
||||
"always_keep_videos_hint": "Frigør plads vil bevare alle videoer på denne enhed.",
|
||||
"anti_clockwise": "Mod uret",
|
||||
"api_key": "API-nøgle",
|
||||
"api_key_description": "Denne værdi vises kun én gang. Venligst kopiér den før du lukker vinduet.",
|
||||
@@ -507,7 +537,7 @@
|
||||
"app_bar_signout_dialog_content": "Er du sikker på, du vil logge ud?",
|
||||
"app_bar_signout_dialog_ok": "Ja",
|
||||
"app_bar_signout_dialog_title": "Log ud",
|
||||
"app_download_links": "App Download Links",
|
||||
"app_download_links": "Links til app download",
|
||||
"app_settings": "Appindstillinger",
|
||||
"app_stores": "App Butikker",
|
||||
"app_update_available": "App opdatering er tilgængelig",
|
||||
@@ -515,19 +545,21 @@
|
||||
"apply_count": "Brug ({count, number})",
|
||||
"archive": "Arkiv",
|
||||
"archive_action_prompt": "{count} føjet til arkiv",
|
||||
"archive_or_unarchive_photo": "Arkivér eller dearkivér billede",
|
||||
"archive_or_unarchive_photo": "Arkivér eller fjern billede fra arkiv",
|
||||
"archive_page_no_archived_assets": "Ingen arkiverede elementer blev fundet",
|
||||
"archive_page_title": "Arkivér ({count})",
|
||||
"archive_size": "Arkiv størelse",
|
||||
"archive_size": "Arkivstørrelse",
|
||||
"archive_size_description": "Konfigurer arkivstørrelsen for downloads (i GiB)",
|
||||
"archived": "Arkiveret",
|
||||
"archived_count": "{count, plural, other {Arkiveret #}}",
|
||||
"archived_count": "{count, plural, other {# arkiveret}}",
|
||||
"are_these_the_same_person": "Er disse den samme person?",
|
||||
"are_you_sure_to_do_this": "Er du sikker på, at du vil gøre det her?",
|
||||
"array_field_not_fully_supported": "Arrayfelter kræver manuel JSON-redigering",
|
||||
"asset_action_delete_err_read_only": "Kan ikke slette kun læselige elementer. Springer over",
|
||||
"asset_action_share_err_offline": "Kan ikke hente offline element(er). Springer over",
|
||||
"asset_added_to_album": "Tilføjet til album",
|
||||
"asset_adding_to_album": "Tilføjer til album…",
|
||||
"asset_created": "Mediefil oprettet",
|
||||
"asset_description_updated": "Mediefilsbeskrivelse er blevet opdateret",
|
||||
"asset_filename_is_offline": "Mediefil {filename} er offline",
|
||||
"asset_has_unassigned_faces": "Aktivet har ikke-tildelte ansigter",
|
||||
@@ -540,6 +572,9 @@
|
||||
"asset_list_layout_sub_title": "Udseende",
|
||||
"asset_list_settings_subtitle": "Indstillinger for billedgitterlayout",
|
||||
"asset_list_settings_title": "Billedgitter",
|
||||
"asset_not_found_on_device_android": "Kan ikke finde elementet på enheden",
|
||||
"asset_not_found_on_device_ios": "Mediet blev ikke fundet på enheden. Hvis du bruger iCloud, kan mediet være utilgængeligt, hvis en fejlagtig fil ligger på iCloud",
|
||||
"asset_not_found_on_icloud": "Mediet blev ikke fundet på iCloud. Det kan være utilgængeligt, hvis det er en fejlagtig fil, der ligger på iCloud",
|
||||
"asset_offline": "Mediefil offline",
|
||||
"asset_offline_description": "Denne eksterne mediefil kan ikke længere findes på drevet. Kontakt venligst din Immich-administrator for hjælp.",
|
||||
"asset_restored_successfully": "Elementet blev gendannet succesfuldt",
|
||||
@@ -659,7 +694,7 @@
|
||||
"biometric_no_options": "Ingen biometrisk adgangskontrol tilgængelig",
|
||||
"biometric_not_available": "Biometrisk adgangskontrol er ikke tilgængelig på denne enhed",
|
||||
"birthdate_saved": "Fødselsdatoen blev gemt",
|
||||
"birthdate_set_description": "Fødselsdato bruges til at beregne alderen på denne person på tidspunktet for et billede.",
|
||||
"birthdate_set_description": "Fødselsdato bruges til at beregne denne persons alder på det tidspunkt, et billede er taget.",
|
||||
"blurred_background": "Sløret baggrund",
|
||||
"bugs_and_feature_requests": "Fejl & forbedringsønsker",
|
||||
"build": "Byg",
|
||||
@@ -711,6 +746,8 @@
|
||||
"change_password_form_password_mismatch": "Kodeord er ikke ens",
|
||||
"change_password_form_reenter_new_password": "Gentag nyt kodeord",
|
||||
"change_pin_code": "Skift PIN kode",
|
||||
"change_trigger": "Skift udløser",
|
||||
"change_trigger_prompt": "Er du sikker på, at du vil ændre udløseren? Dette vil fjerne alle eksisterende handlinger og filtre.",
|
||||
"change_your_password": "Skift dit kodeord",
|
||||
"changed_visibility_successfully": "Synlighed blev ændret",
|
||||
"charging": "Lader",
|
||||
@@ -722,6 +759,18 @@
|
||||
"checksum": "Checksum",
|
||||
"choose_matching_people_to_merge": "Vælg matchende personer til sammenfletning",
|
||||
"city": "By",
|
||||
"cleanup_confirm_description": "Immich fandt {count} assets (oprettet før {date}) sikkert sikkerhedskopieret til serveren. Fjern de lokale kopier fra denne enhed?",
|
||||
"cleanup_confirm_prompt_title": "Fjern fra denne enhed?",
|
||||
"cleanup_deleted_assets": "Flyttede {count} filer til enhedens skraldespand",
|
||||
"cleanup_deleting": "Flytter til skraldespand...",
|
||||
"cleanup_found_assets": "Fandt {count} sikkerhedskopierede filer",
|
||||
"cleanup_found_assets_with_size": "Fundet {count} sikkerhedskopierede objekter ({size})",
|
||||
"cleanup_icloud_shared_albums_excluded": "iCloud delte albummer er udelukket fra scanningen",
|
||||
"cleanup_no_assets_found": "Ingen elementer matcher kriterierne ovenfor. Frigiv plads kan kun fjerne elementer, der er sikkerhedskopieret til serveren",
|
||||
"cleanup_preview_title": "Filer at fjerne ({count})",
|
||||
"cleanup_step3_description": "Skan efter sikkerhedskopierede elementer, som matcher dine dato- og indstillingsvalg.",
|
||||
"cleanup_step4_summary": "{count, plural, one {element} other {elementer}} oprettet før {date} står til at blive fjernet fra denne enhed. Billeder vil stadig være tilgængelige i Immich‑appen.",
|
||||
"cleanup_trash_hint": "For at genvinde lagringsplads helt, skal du åbne din indbyggede galleriapp og tømme papirkurven",
|
||||
"clear": "Ryd",
|
||||
"clear_all": "Ryd alle",
|
||||
"clear_all_recent_searches": "Ryd alle seneste søgninger",
|
||||
@@ -733,6 +782,8 @@
|
||||
"client_cert_import": "Importer",
|
||||
"client_cert_import_success_msg": "Klient certifikat er importeret",
|
||||
"client_cert_invalid_msg": "Invalid certifikat fil eller forkert adgangskode",
|
||||
"client_cert_password_message": "Skriv kodeord til dette certifikat",
|
||||
"client_cert_password_title": "Kodeord til certifikat",
|
||||
"client_cert_remove_msg": "Klient certifikat er fjernet",
|
||||
"client_cert_subtitle": "Supportere kun PKCS12 (.p12, .pfx) format. Certifikat importering/fjernelse er kun tilgængeligt før login",
|
||||
"client_cert_title": "SSL Klient Certifikat [EKSPERIMENTAL]",
|
||||
@@ -787,6 +838,7 @@
|
||||
"create_album": "Opret album",
|
||||
"create_album_page_untitled": "Uden titel",
|
||||
"create_api_key": "Opret API nøgle",
|
||||
"create_first_workflow": "Opret første workflow",
|
||||
"create_library": "Opret bibliotek",
|
||||
"create_link": "Opret link",
|
||||
"create_link_to_share": "Opret link for at dele",
|
||||
@@ -801,17 +853,25 @@
|
||||
"create_tag": "Opret tag",
|
||||
"create_tag_description": "Opret et nyt tag. For indlejrede tags skal du indtaste den fulde sti til tagget inklusive skråstreger.",
|
||||
"create_user": "Opret bruger",
|
||||
"create_workflow": "Opret workflow",
|
||||
"created": "Oprettet",
|
||||
"created_at": "Oprettet",
|
||||
"creating_linked_albums": "Opretter sammenkædede albums...",
|
||||
"crop": "Beskær",
|
||||
"crop_aspect_ratio_fixed": "Fikset",
|
||||
"crop_aspect_ratio_free": "Gratis",
|
||||
"crop_aspect_ratio_original": "Original",
|
||||
"curated_object_page_title": "Ting",
|
||||
"current_device": "Nuværende enhed",
|
||||
"current_pin_code": "Nuværende PIN kode",
|
||||
"current_server_address": "Nuværende serveraddresse",
|
||||
"custom_date": "Brugerdefineret dato",
|
||||
"custom_locale": "Brugerdefineret lokale",
|
||||
"custom_locale_description": "Formatér datoer og tal baseret på sproget og regionen",
|
||||
"custom_url": "Tilpasset URL",
|
||||
"cutoff_date_description": "Behold fotos fra den sidste…",
|
||||
"cutoff_day": "{count, plural, one {dag} other {dage}}",
|
||||
"cutoff_year": "{count, plural, one {år} other {år}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Mørk",
|
||||
@@ -865,8 +925,9 @@
|
||||
"description_input_hint_text": "Tilføj en beskrivelse...",
|
||||
"description_input_submit_error": "Fejl med at opdatere beskrivelsen. Tjek loggen for flere detaljer",
|
||||
"deselect_all": "Afmarkér alt",
|
||||
"details": "DETALJER",
|
||||
"details": "Detaljer",
|
||||
"direction": "Retning",
|
||||
"disable": "Deaktiver",
|
||||
"disabled": "Deaktiveret",
|
||||
"disallow_edits": "Deaktivér redigeringer",
|
||||
"discord": "Discord",
|
||||
@@ -892,6 +953,7 @@
|
||||
"download_include_embedded_motion_videos": "Indlejrede videoer",
|
||||
"download_include_embedded_motion_videos_description": "Inkluder videoer indlejret i levende billeder som en separat fil",
|
||||
"download_notfound": "Download ikke fundet",
|
||||
"download_original": "Download original",
|
||||
"download_paused": "Download pauset",
|
||||
"download_settings": "Download",
|
||||
"download_settings_description": "Administrer indstillinger relateret til mediefil-downloads",
|
||||
@@ -901,6 +963,7 @@
|
||||
"download_waiting_to_retry": "Afventer at prøve igen",
|
||||
"downloading": "Downloader",
|
||||
"downloading_asset_filename": "Downloader mediefil {filename}",
|
||||
"downloading_from_icloud": "Downloading fra iCloud",
|
||||
"downloading_media": "Download medier",
|
||||
"drop_files_to_upload": "Slip filer hvor som helst for at uploade dem",
|
||||
"duplicates": "Duplikater",
|
||||
@@ -929,11 +992,22 @@
|
||||
"edit_tag": "Rediger tag",
|
||||
"edit_title": "Redigér titel",
|
||||
"edit_user": "Redigér bruger",
|
||||
"edit_workflow": "Rediger workflow",
|
||||
"editor": "Redaktør",
|
||||
"editor_close_without_save_prompt": "Ændringerne vil ikke blive gemt",
|
||||
"editor_close_without_save_title": "Luk editor?",
|
||||
"editor_crop_tool_h2_aspect_ratios": "Størrelsesforhold",
|
||||
"editor_crop_tool_h2_rotation": "Rotere",
|
||||
"editor_confirm_reset_all_changes": "Er du sikker på, at du vil nulstille alle ændringer?",
|
||||
"editor_discard_edits_confirm": "Kassér redigeringer",
|
||||
"editor_discard_edits_prompt": "Du har ikke‑gemte redigeringer. Er du sikker på, at du vil kassere dem?",
|
||||
"editor_discard_edits_title": "Kassér ændringer?",
|
||||
"editor_edits_applied_error": "Kunne ikke gemme redigeringer",
|
||||
"editor_edits_applied_success": "Redigeringer gemt",
|
||||
"editor_flip_horizontal": "Vend horisontalt",
|
||||
"editor_flip_vertical": "Flip vertikal",
|
||||
"editor_orientation": "Orientering",
|
||||
"editor_reset_all_changes": "Nulstil ændringer",
|
||||
"editor_rotate_left": "Rotér 90° mod uret",
|
||||
"editor_rotate_right": "Rotér 90° med uret",
|
||||
"email": "E-mail",
|
||||
"email_notifications": "Email notifikationer",
|
||||
"empty_folder": "Denne mappe er tom",
|
||||
@@ -952,11 +1026,14 @@
|
||||
"error_change_sort_album": "Ændring af sorteringsrækkefølgen mislykkedes",
|
||||
"error_delete_face": "Fejl ved sletning af ansigt fra mediefil",
|
||||
"error_getting_places": "Fejl ved hentning af steder",
|
||||
"error_loading_albums": "Fejl ved indlæsning af album",
|
||||
"error_loading_image": "Fejl ved indlæsning af billede",
|
||||
"error_loading_partners": "Fejl ved indlæsning af partnere: {error}",
|
||||
"error_retrieving_asset_information": "Fejl ved hentning af objekt-data",
|
||||
"error_saving_image": "Fejl: {error}",
|
||||
"error_tag_face_bounding_box": "Fejl ved tagging af ansigt - kan ikke finde koordinator for afgrænsningskasse",
|
||||
"error_title": "Fejl - Noget gik galt",
|
||||
"error_while_navigating": "Fejl ved navigering til objekt",
|
||||
"errors": {
|
||||
"cannot_navigate_next_asset": "Kan ikke navigere til næste mediefil",
|
||||
"cannot_navigate_previous_asset": "Kan ikke navigere til forrige mediefil",
|
||||
@@ -1001,7 +1078,7 @@
|
||||
"unable_to_add_comment": "Ikke i stand til at tilføje kommentar",
|
||||
"unable_to_add_exclusion_pattern": "Kunne ikke tilføje udelukkelsesmønster",
|
||||
"unable_to_add_partners": "Ikke i stand til at tilføje partnere",
|
||||
"unable_to_add_remove_archive": "Kan Ikke {archived, select, true {fjerne aktiv fra} other {tilføje aktiv til}} Arkiv",
|
||||
"unable_to_add_remove_archive": "Kan ikke {archived, select, true {fjerne aktiv fra} other {tilføje aktiv til}} Arkiv",
|
||||
"unable_to_add_remove_favorites": "Kan ikke {favorite, select, true {tilføje aktiv til} other {fjerne aktiv fra}} favoritter",
|
||||
"unable_to_archive_unarchive": "Ude af stand til at {archived, select, true {arkivere} other {fjerne fra arkiv}}",
|
||||
"unable_to_change_album_user_role": "Ikke i stand til at ændre albumbrugerens rolle",
|
||||
@@ -1014,6 +1091,7 @@
|
||||
"unable_to_complete_oauth_login": "Kan ikke fuldføre OAuth-login",
|
||||
"unable_to_connect": "Kan ikke oprette forbindelse",
|
||||
"unable_to_copy_to_clipboard": "Kan ikke kopiere til udklipsholder, sørg for at du tilgår siden gennem https",
|
||||
"unable_to_create": "Kan ikke oprette workflow",
|
||||
"unable_to_create_admin_account": "Kan ikke oprette en administratorkonto",
|
||||
"unable_to_create_api_key": "Kunne ikke oprette ny API-nøgle",
|
||||
"unable_to_create_library": "Ikke i stand til at oprette bibliotek",
|
||||
@@ -1024,6 +1102,7 @@
|
||||
"unable_to_delete_exclusion_pattern": "Kunne ikke slette udelukkelsesmønster",
|
||||
"unable_to_delete_shared_link": "Kunne ikke slette delt link",
|
||||
"unable_to_delete_user": "Ikke i stand til at slette bruger",
|
||||
"unable_to_delete_workflow": "Kan ikke slette workflow",
|
||||
"unable_to_download_files": "Kan ikke downloade filer",
|
||||
"unable_to_edit_exclusion_pattern": "Kunne ikke redigere udelukkelsesmønster",
|
||||
"unable_to_empty_trash": "Ikke i stand til at tømme papirkurv",
|
||||
@@ -1063,6 +1142,7 @@
|
||||
"unable_to_scan_library": "Ikke i stand til at skanne bibliotek",
|
||||
"unable_to_set_feature_photo": "Det var ikke muligt at indstille et fremhævet billede",
|
||||
"unable_to_set_profile_picture": "Ikke i stand til at sætte profilbillede",
|
||||
"unable_to_set_rating": "Ikke i stand til at angive vurdering",
|
||||
"unable_to_submit_job": "Ikke i stand til at indsende opgave",
|
||||
"unable_to_trash_asset": "Kunne ikke slette medie",
|
||||
"unable_to_unlink_account": "Ikke i stand til at frakoble konto",
|
||||
@@ -1074,8 +1154,10 @@
|
||||
"unable_to_update_settings": "Ikke i stand til at opdatere indstillinger",
|
||||
"unable_to_update_timeline_display_status": "Kunne ikke opdate status for tidslinjevisning",
|
||||
"unable_to_update_user": "Ikke i stand til at opdatere bruger",
|
||||
"unable_to_update_workflow": "Kan ikke opdatere workflow",
|
||||
"unable_to_upload_file": "Filen kunne ikke uploades"
|
||||
},
|
||||
"errors_text": "Fejl",
|
||||
"exclusion_pattern": "Udelukkelsesmønster",
|
||||
"exif": "Exif",
|
||||
"exif_bottom_sheet_description": "Tilføj beskrivelse...",
|
||||
@@ -1120,14 +1202,17 @@
|
||||
"features": "Funktioner",
|
||||
"features_in_development": "Funktioner under udvikling",
|
||||
"features_setting_description": "Administrer app-funktioner",
|
||||
"file_name": "Filnavn",
|
||||
"file_name_or_extension": "Filnavn eller filtype",
|
||||
"file_name_text": "Filnavn",
|
||||
"file_name_with_value": "Filnavn: {file_name}",
|
||||
"file_size": "Fil størrelse",
|
||||
"filename": "Filnavn",
|
||||
"filetype": "Filtype",
|
||||
"filter": "Filter",
|
||||
"filter_description": "Betingelser for filtrering af valgte mediefiler",
|
||||
"filter_people": "Filtrér personer",
|
||||
"filter_places": "Filtrer steder",
|
||||
"filters": "Filtre",
|
||||
"find_them_fast": "Find dem hurtigt med søgning via navn",
|
||||
"first": "Første",
|
||||
"fix_incorrect_match": "Fix forkert match",
|
||||
@@ -1137,12 +1222,16 @@
|
||||
"folders_feature_description": "Gennemse mappevisningen efter fotos og videoer på filsystemet",
|
||||
"forgot_pin_code_question": "Har du glemt PIN-koden?",
|
||||
"forward": "Fremad",
|
||||
"free_up_space": "Frigør plads",
|
||||
"free_up_space_description": "Flyt sikkerhedskopierede fotos og videoer til din enheds skraldespand for at frigøre plads. Dine kopier på serveren forbliver sikre.",
|
||||
"free_up_space_settings_subtitle": "Frigør enhedslagerplads",
|
||||
"full_path": "Fuld sti: {path}",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Denne funktion indlæser eksterne ressourcer fra Google for at virke.",
|
||||
"general": "Generel",
|
||||
"geolocation_instruction_location": "Klik på et objekt med GPS-koordinater for at bruge dettes position, eller vælg position direkte på kortet",
|
||||
"get_help": "Få hjælp",
|
||||
"get_people_error": "Fejl ved indhentning af personer",
|
||||
"get_wifiname_error": "Kunne ikke hente Wi-Fi-navn. Sørg for, at du har givet de nødvendige tilladelser og er forbundet til et Wi-Fi-netværk",
|
||||
"getting_started": "Kom godt i gang",
|
||||
"go_back": "Gå tilbage",
|
||||
@@ -1175,13 +1264,14 @@
|
||||
"hide_named_person": "Skjul person {name}",
|
||||
"hide_password": "Skjul adgangskode",
|
||||
"hide_person": "Skjul person",
|
||||
"hide_schema": "Skjul skema",
|
||||
"hide_text_recognition": "Skjul tekstgenkendelse",
|
||||
"hide_unnamed_people": "Skjul unavngivne personer",
|
||||
"home_page_add_to_album_conflicts": "Tilføjede {added} elementer til album {album}. {failed} elementer er allerede i albummet.",
|
||||
"home_page_add_to_album_err_local": "Kan endnu ikke tilføje lokale elementer til album. Springer over",
|
||||
"home_page_add_to_album_success": "Tilføjede {added} elementer til album {album}.",
|
||||
"home_page_album_err_partner": "Kan endnu ikke tilføje partners elementer til album. Springer over",
|
||||
"home_page_archive_err_local": "Kan ikke arkivere lokalt element endnu.. Springer over",
|
||||
"home_page_archive_err_local": "Kan ikke arkivere lokalt element endnu. Springer over",
|
||||
"home_page_archive_err_partner": "Kan endnu ikke arkivere partners elementer. Springer over",
|
||||
"home_page_building_timeline": "Bygger tidslinjen",
|
||||
"home_page_delete_err_partner": "Kan endnu ikke slette partners elementer. Springer over",
|
||||
@@ -1223,7 +1313,7 @@
|
||||
"in_archive": "I arkiv",
|
||||
"in_year": "I {year}",
|
||||
"in_year_selector": "I",
|
||||
"include_archived": "Inkluder arkiveret",
|
||||
"include_archived": "Inkluder arkiverede",
|
||||
"include_shared_albums": "Inkludér delte albummer",
|
||||
"include_shared_partner_assets": "Inkludér delte partnermedier",
|
||||
"individual_share": "Individuel andel",
|
||||
@@ -1247,9 +1337,18 @@
|
||||
"ios_debug_info_processing_ran_at": "Behandlingen kørte {dateTime}",
|
||||
"items_count": "{count, plural, one {# element} other {# elementer}}",
|
||||
"jobs": "Opgaver",
|
||||
"json_editor": "JSON editor",
|
||||
"json_error": "JSON fejl",
|
||||
"keep": "Behold",
|
||||
"keep_albums": "Behold albums",
|
||||
"keep_albums_count": "Beholder {count} {count, plural, one {album} other {albums}}",
|
||||
"keep_all": "Behold alle",
|
||||
"keep_description": "Vælg hvad der skal forblive på din enhed efter oprydning af plads.",
|
||||
"keep_favorites": "Behold favoritter",
|
||||
"keep_on_device": "Behold på enheden",
|
||||
"keep_on_device_hint": "Vælg elementer, der skal beholdes på denne enhed",
|
||||
"keep_this_delete_others": "Behold dette, slet andre",
|
||||
"keeping": "Beholder: {items}",
|
||||
"kept_this_deleted_others": "Beholdt denne mediefil og slettede {count, plural, one {# aktiv} other {# aktiver}}",
|
||||
"keyboard_shortcuts": "Tastaturgenveje",
|
||||
"language": "Sprog",
|
||||
@@ -1343,10 +1442,28 @@
|
||||
"loop_videos_description": "Aktivér for at genafspille videoer automatisk i detaljeret visning.",
|
||||
"main_branch_warning": "Du bruger en udviklingsversion; vi anbefaler kraftigt at bruge en udgivelsesversion!",
|
||||
"main_menu": "Hovedmenu",
|
||||
"maintenance_action_restore": "Genopretter database",
|
||||
"maintenance_description": "Immich er blevet sat i <link>vedligeholdelsestilstand</link>.",
|
||||
"maintenance_end": "Afslut vedligeholdelsestilstand",
|
||||
"maintenance_end_error": "Vedligeholdelsestilstand kunne ikke afsluttes.",
|
||||
"maintenance_logged_in_as": "Aktuelt logget ind som {user}",
|
||||
"maintenance_restore_from_backup": "Genskab fra sikkerhedskopi",
|
||||
"maintenance_restore_library": "Genskab dit bibliotek",
|
||||
"maintenance_restore_library_confirm": "Hvis dette ser korrekt ud, så fortsæt for at genoprette fra en sikkerhedskopi!",
|
||||
"maintenance_restore_library_description": "Genopretter database",
|
||||
"maintenance_restore_library_folder_has_files": "{folder} har {count, plural, one {mappe} other {mapper}}",
|
||||
"maintenance_restore_library_folder_no_files": "{folder} mangler filer!",
|
||||
"maintenance_restore_library_folder_pass": "læs- og skrivbar",
|
||||
"maintenance_restore_library_folder_read_fail": "ikke læsbar",
|
||||
"maintenance_restore_library_folder_write_fail": "ikke skrivbar",
|
||||
"maintenance_restore_library_hint_missing_files": "Du mangler måske vigtige filer",
|
||||
"maintenance_restore_library_hint_regenerate_later": "Du kan genindstille disse senere, i indstillinger",
|
||||
"maintenance_restore_library_hint_storage_template_missing_files": "Bruger du en lagringsskabelon? Du mangler måske nogle filer",
|
||||
"maintenance_restore_library_loading": "Indlæser integritetskontroller og heuristikker …",
|
||||
"maintenance_task_backup": "Laver en backup af den eksisterende database …",
|
||||
"maintenance_task_migrations": "Kører migration af database…",
|
||||
"maintenance_task_restore": "Genskaber den valgte backup…",
|
||||
"maintenance_task_rollback": "Genoprettelse slog fejl, ruller tilbage til genoprettelsespunkt…",
|
||||
"maintenance_title": "Midlertidigt Utilgængelig",
|
||||
"make": "Producent",
|
||||
"manage_geolocation": "Administrer placering",
|
||||
@@ -1379,7 +1496,7 @@
|
||||
"map_settings_date_range_option_year": "Sidste år",
|
||||
"map_settings_date_range_option_years": "Sidste {years} år",
|
||||
"map_settings_dialog_title": "Kortindstillinger",
|
||||
"map_settings_include_show_archived": "Inkluder arkiveret",
|
||||
"map_settings_include_show_archived": "Inkluder arkiverede",
|
||||
"map_settings_include_show_partners": "Inkluder partnere",
|
||||
"map_settings_only_show_favorites": "Vis kun favoritter",
|
||||
"map_settings_theme_settings": "Korttema",
|
||||
@@ -1408,6 +1525,8 @@
|
||||
"minimize": "Minimér",
|
||||
"minute": "Minut",
|
||||
"minutes": "Minutter",
|
||||
"mirror_horizontal": "Horisontalt",
|
||||
"mirror_vertical": "Vertikal",
|
||||
"missing": "Mangler",
|
||||
"mobile_app": "Mobil App",
|
||||
"mobile_app_download_onboarding_note": "Hent den tilhørende mobilapp via en af følgende muligheder",
|
||||
@@ -1416,11 +1535,14 @@
|
||||
"monthly_title_text_date_format": "MMMM å",
|
||||
"more": "Mere",
|
||||
"move": "Flyt",
|
||||
"move_down": "Flyt ned",
|
||||
"move_off_locked_folder": "Flyt ud af låst mappe",
|
||||
"move_to": "Flyt til",
|
||||
"move_to_device_trash": "Flyt til enheds skraldespand",
|
||||
"move_to_lock_folder_action_prompt": "{count} føjet til den låste mappe",
|
||||
"move_to_locked_folder": "Flyt til låst mappe",
|
||||
"move_to_locked_folder_confirmation": "Disse billeder og videoer vil blive fjernet fra alle albums, og vil kun være synlig fra den låste mappe",
|
||||
"move_up": "Flyt op",
|
||||
"moved_to_archive": "Flyttede {count, plural, one {# mediefil} other {# mediefiler}} til arkivet",
|
||||
"moved_to_library": "Flyttede {count, plural, one {# mediefil} other {# mediefiler}} til biblioteket",
|
||||
"moved_to_trash": "Flyttet til papirkurv",
|
||||
@@ -1430,6 +1552,7 @@
|
||||
"my_albums": "Mine albummer",
|
||||
"name": "Navn",
|
||||
"name_or_nickname": "Navn eller kaldenavn",
|
||||
"name_required": "Navn er påkrævet",
|
||||
"navigate": "Naviger",
|
||||
"navigate_to_time": "Naviger til tid",
|
||||
"network_requirement_photos_upload": "Benyt mobildatanettet for at sikkerhedskopiere dine fotos",
|
||||
@@ -1454,20 +1577,24 @@
|
||||
"next": "Næste",
|
||||
"next_memory": "Næste minde",
|
||||
"no": "Nej",
|
||||
"no_actions_added": "Ingen handlinger tilføjet endnu",
|
||||
"no_albums_found": "Ingen album fundet",
|
||||
"no_albums_message": "Opret et album for at organisere dine billeder og videoer",
|
||||
"no_albums_with_name_yet": "Det ser ud til, at du ikke har noget album med dette navn endnu.",
|
||||
"no_albums_yet": "Det ser ud til, at du ikke har nogen album endnu.",
|
||||
"no_archived_assets_message": "Arkivér billeder og videoer for at gemme dem væk fra din billedoversigt",
|
||||
"no_assets_message": "KLIK FOR AT UPLOADE DIT FØRSTE BILLEDE",
|
||||
"no_assets_message": "Klik for at uploade dit første foto",
|
||||
"no_assets_to_show": "Ingen elementer at vise",
|
||||
"no_cast_devices_found": "Ingen Cast-enheder fundet",
|
||||
"no_checksum_local": "Ingen checksum tilgængelig – kan ikke hente lokale objekter",
|
||||
"no_checksum_remote": "Ingen checksum tilgængelig – kan ikke hente eksterne objekter",
|
||||
"no_configuration_needed": "Ingen konfiguration nødvendig",
|
||||
"no_devices": "Ingen godkendte enheder",
|
||||
"no_duplicates_found": "Ingen duplikater fundet.",
|
||||
"no_exif_info_available": "Ingen tilgængelig exif information",
|
||||
"no_explore_results_message": "Upload flere billeder for at udforske din samling.",
|
||||
"no_favorites_message": "Tilføj favoritter for hurtigt at finde dine bedst billeder og videoer",
|
||||
"no_filters_added": "Ingen filtre tilføjet endnu",
|
||||
"no_libraries_message": "Opret et eksternt bibliotek for at se dine billeder og videoer",
|
||||
"no_local_assets_found": "Ingen lokale objekter fundet med denne checksum",
|
||||
"no_location_set": "Ingen placering sat",
|
||||
@@ -1481,11 +1608,12 @@
|
||||
"no_results_description": "Prøv et synonym eller et mere generelt søgeord",
|
||||
"no_shared_albums_message": "Opret et album for at dele billeder og videoer med personer i dit netværk",
|
||||
"no_uploads_in_progress": "Ingen upload i gang",
|
||||
"none": "Ingen",
|
||||
"not_allowed": "Ikke tilladt",
|
||||
"not_available": "ikke tilgængelig",
|
||||
"not_in_any_album": "Ikke i noget album",
|
||||
"not_selected": "Ikke valgt",
|
||||
"note_apply_storage_label_to_previously_uploaded assets": "Bemærk: For at anvende Lagringsmærkat på tidligere uploadede medier, kør",
|
||||
"note_apply_storage_label_to_previously_uploaded assets": "Bemærk: For at anvende Lagringsmærkat på tidligere uploadede medier, kør opgaven igen",
|
||||
"notes": "Noter",
|
||||
"nothing_here_yet": "Intet her endnu",
|
||||
"notification_permission_dialog_content": "Gå til indstillinger for at slå notifikationer til.",
|
||||
@@ -1531,9 +1659,9 @@
|
||||
"owned": "Egne",
|
||||
"owner": "Ejer",
|
||||
"page": "Side",
|
||||
"partner": "Partnerpartner",
|
||||
"partner": "Partner",
|
||||
"partner_can_access": "{partner} kan tilgå",
|
||||
"partner_can_access_assets": "Alle dine billeder og videoer, bortset fra dem i Arkivet og Slettet",
|
||||
"partner_can_access_assets": "Alle dine billeder og videoer, bortset fra dem i Arkiv og Slettet",
|
||||
"partner_can_access_location": "Stedet, hvor dine billeder blev taget",
|
||||
"partner_list_user_photos": "{user}s billeder",
|
||||
"partner_list_view_all": "Se alle",
|
||||
@@ -1563,6 +1691,7 @@
|
||||
"people": "Personer",
|
||||
"people_edits_count": "Redigeret {count, plural, one {# person} other {# people}}",
|
||||
"people_feature_description": "Gennemse billeder og videoer grupperet efter personer",
|
||||
"people_selected": "{count, plural, one {# person vagt} other {# personer valgt}}",
|
||||
"people_sidebar_description": "Vis et link til Personer i sidepanelet",
|
||||
"permanent_deletion_warning": "Advarsel om permanent sletning",
|
||||
"permanent_deletion_warning_setting_description": "Vis en advarsel, når medier slettes permanent",
|
||||
@@ -1580,24 +1709,27 @@
|
||||
"permission_onboarding_permission_denied": "Tilladelse afvist. For at bruge Immich, skal der gives tilladelse til at se billeder og videoer i indstillinger.",
|
||||
"permission_onboarding_permission_granted": "Tilladelse givet! Du er nu klar.",
|
||||
"permission_onboarding_permission_limited": "Tilladelse begrænset. For at lade Immich lave sikkerhedskopi og styre hele dit galleri, skal der gives tilladelse til billeder og videoer i indstillinger.",
|
||||
"permission_onboarding_request": "Immich kræver tilliadelse til at se dine billeder og videoer.",
|
||||
"person": "Personperson",
|
||||
"permission_onboarding_request": "Immich kræver tilladelse til at se dine billeder og videoer.",
|
||||
"person": "Person",
|
||||
"person_age_months": "{months, plural, one {# month} other {# months}} gammel",
|
||||
"person_age_year_months": "1 år, {months, plural, one {# month} other {# months}} gammel",
|
||||
"person_age_years": "{years, plural, other {# years}} gammel",
|
||||
"person_birthdate": "Født den {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
|
||||
"person_recognized": "Person genkendt",
|
||||
"person_selected": "Person valgt",
|
||||
"photo_shared_all_users": "Det ser ud til, at du har delt dine billeder med alle brugere, eller også har du ikke nogen bruger at dele med.",
|
||||
"photos": "Billeder",
|
||||
"photos_and_videos": "Billeder og videoer",
|
||||
"photos_count": "{count, plural, one {{count, number} Billede} other {{count, number} Billeder}}",
|
||||
"photos_from_previous_years": "Billeder fra tidligere år",
|
||||
"photos_only": "Kun fotos",
|
||||
"pick_a_location": "Vælg et sted",
|
||||
"pick_custom_range": "Brugerdefineret periode",
|
||||
"pick_custom_range": "Brugerdefineret interval",
|
||||
"pick_date_range": "Vælg et datointerval",
|
||||
"pin_code_changed_successfully": "Ændring af PIN kode vellykket",
|
||||
"pin_code_reset_successfully": "Nulstilling af PIN kode vellykket",
|
||||
"pin_code_setup_successfully": "Opsætning af PIN kode vellykket",
|
||||
"pin_code_changed_successfully": "Ændring af PIN kode lykkedes",
|
||||
"pin_code_reset_successfully": "Nulstilling af PIN kode lykkedes",
|
||||
"pin_code_setup_successfully": "Opsætning af PIN kode var vellykket",
|
||||
"pin_verification": "PIN kode verifikation",
|
||||
"place": "Sted",
|
||||
"places": "Steder",
|
||||
@@ -1611,7 +1743,7 @@
|
||||
"play_transcoded_video": "Afspil transkodet video",
|
||||
"please_auth_to_access": "Log venligst ind for at tilgå",
|
||||
"port": "Port",
|
||||
"preferences_settings_subtitle": "Administrer app-præferencer",
|
||||
"preferences_settings_subtitle": "Administrer appens indstillinger",
|
||||
"preferences_settings_title": "Præferencer",
|
||||
"preparing": "Forberedelse",
|
||||
"preset": "Forudindstilling",
|
||||
@@ -1652,7 +1784,7 @@
|
||||
"purchase_license_subtitle": "Køb Immich for at understøtte den fortsatte udvikling af tjenesten",
|
||||
"purchase_lifetime_description": "Livsvarigt køb",
|
||||
"purchase_option_title": "KØBSMULIGHEDER",
|
||||
"purchase_panel_info_1": "At bygge Immich tager meget tid og kræfter, og vi har fuldtidsingeniører, der arbejder på det for at gøre det så godt, som vi overhovedet kan. Vores mission er, at open source-software og etisk forretningspraksis bliver en bæredygtig indtægtskilde for udviklere og at skabe et privatlivsrespekterende økosystem med reelle alternativer til udnyttende cloud-tjenester.",
|
||||
"purchase_panel_info_1": "At bygge Immich tager meget tid og kræfter, og vi har fuldtidsudviklere, der arbejder på det for at gøre det så godt, som vi overhovedet kan. Vores mission er, at open source-software og etisk forretningspraksis bliver en bæredygtig indtægtskilde for udviklere og at skabe et privatlivsrespekterende økosystem med reelle alternativer til udnyttende cloud-tjenester.",
|
||||
"purchase_panel_info_2": "Da vi er forpligtet til ikke at tilføje betalingsvægge, vil dette køb ikke give dig yderligere funktioner i Immich. Vi er afhængige af, at brugere som dig støtter Immichs løbende udvikling.",
|
||||
"purchase_panel_title": "Støt projektet",
|
||||
"purchase_per_server": "Pr. server",
|
||||
@@ -1667,10 +1799,12 @@
|
||||
"purchase_settings_server_activated": "Serverens produktnøgle administreres af administratoren",
|
||||
"query_asset_id": "Forespørgsels Asset ID",
|
||||
"queue_status": "Kø {count}/{total}",
|
||||
"rate_asset": "Vurder filer",
|
||||
"rating": "Stjernebedømmelse",
|
||||
"rating_clear": "Nulstil vurdering",
|
||||
"rating_count": "{count, plural, one {# stjerne} other {# stjerner}}",
|
||||
"rating_description": "Vis EXIF-klassificeringen i infopanelet",
|
||||
"rating_set": "Vurdering sat til {rating, plural, one {# stjerne} other {# stjerner}}",
|
||||
"reaction_options": "Reaktionsindstillinger",
|
||||
"read_changelog": "Læs ændringslog",
|
||||
"readonly_mode_disabled": "Skrivebeskyttet tilstand deaktiveret",
|
||||
@@ -1685,8 +1819,8 @@
|
||||
"recent_searches": "Seneste søgninger",
|
||||
"recently_added": "Senest tilføjet",
|
||||
"recently_added_page_title": "Nyligt tilføjet",
|
||||
"recently_taken": "For nylig taget",
|
||||
"recently_taken_page_title": "For nylig taget",
|
||||
"recently_taken": "Taget for nylig",
|
||||
"recently_taken_page_title": "Taget For nylig",
|
||||
"refresh": "Opdatér",
|
||||
"refresh_encoded_videos": "Opdater kodede videoer",
|
||||
"refresh_faces": "Opdater ansigter",
|
||||
@@ -1738,8 +1872,8 @@
|
||||
"reset_password": "Nulstil adgangskode",
|
||||
"reset_people_visibility": "Nulstil personsynlighed",
|
||||
"reset_pin_code": "Nulstil PIN kode",
|
||||
"reset_pin_code_description": "Hvis du har glemt din PIN-kode, kan du kontakte serveradministratoren for at få den stillet tilbage",
|
||||
"reset_pin_code_success": "PIN-koden er stillet tilbage",
|
||||
"reset_pin_code_description": "Hvis du har glemt din PIN-kode, kan du kontakte serveradministratoren for at få den nulstillet",
|
||||
"reset_pin_code_success": "PIN-koden er Nulstillet",
|
||||
"reset_pin_code_with_password": "Du kan altid nulstille din PIN-kode med dit password",
|
||||
"reset_sqlite": "Reset SQLite Databasen",
|
||||
"reset_sqlite_confirmation": "Er du sikker på, at du vil nulstille SQLite databasen? Du er nødt til at logge ud og ind igen for at gensynkronisere dine data",
|
||||
@@ -1770,9 +1904,11 @@
|
||||
"saved_settings": "Gemte indstillinger",
|
||||
"say_something": "Skriv noget",
|
||||
"scaffold_body_error_occurred": "Der opstod en fejl",
|
||||
"scan": "Skan",
|
||||
"scan_all_libraries": "Skan alle biblioteker",
|
||||
"scan_library": "Skan",
|
||||
"scan_settings": "Skanningsindstillinger",
|
||||
"scanning": "Skanner",
|
||||
"scanning_for_album": "Skanner efter albummer...",
|
||||
"search": "Søg",
|
||||
"search_albums": "Søg i albummer",
|
||||
@@ -1802,6 +1938,7 @@
|
||||
"search_filter_media_type_title": "Vælg medietype",
|
||||
"search_filter_ocr": "Søg via OCR",
|
||||
"search_filter_people_title": "Vælg personer",
|
||||
"search_filter_star_rating": "Stjerne Vurdering",
|
||||
"search_for": "Søg efter",
|
||||
"search_for_existing_person": "Søg efter eksisterende person",
|
||||
"search_no_more_result": "Ikke flere resultater",
|
||||
@@ -1836,17 +1973,23 @@
|
||||
"second": "Sekund",
|
||||
"see_all_people": "Se alle personer",
|
||||
"select": "Vælg",
|
||||
"select_album": "Vælg album",
|
||||
"select_album_cover": "Vælg albumcover",
|
||||
"select_albums": "Vælg albummer",
|
||||
"select_all": "Vælg alle",
|
||||
"select_all_duplicates": "Vælg alle dubletter",
|
||||
"select_all_in": "Vælg alt i {group}",
|
||||
"select_avatar_color": "Vælg avatarfarve",
|
||||
"select_count": "{count, plural, one {Vælg #} other {Vælg #}}",
|
||||
"select_cutoff_date": "Vælg stop-dato",
|
||||
"select_face": "Vælg ansigt",
|
||||
"select_featured_photo": "Vælg forsidebillede",
|
||||
"select_from_computer": "Vælg fra computer",
|
||||
"select_keep_all": "Vælg gem alle",
|
||||
"select_library_owner": "Vælg biblioteksejer",
|
||||
"select_new_face": "Vælg nyt ansigt",
|
||||
"select_people": "Vælg personer",
|
||||
"select_person": "Vælg person",
|
||||
"select_person_to_tag": "Vælg en person at tagge",
|
||||
"select_photos": "Vælg billeder",
|
||||
"select_trash_all": "Vælg smid alle ud",
|
||||
@@ -1902,7 +2045,7 @@
|
||||
"settings": "Indstillinger",
|
||||
"settings_require_restart": "Genstart venligst Immich for at anvende denne ændring",
|
||||
"settings_saved": "Indstillinger er gemt",
|
||||
"setup_pin_code": "Sæt in PIN kode",
|
||||
"setup_pin_code": "Indstil en PIN kode",
|
||||
"share": "Del",
|
||||
"share_action_prompt": "Delte {count} objekter",
|
||||
"share_add_photos": "Tilføj billeder",
|
||||
@@ -1938,7 +2081,7 @@
|
||||
"shared_link_edit_expire_after_option_year": "{count} år",
|
||||
"shared_link_edit_password_hint": "Indtast kodeordet",
|
||||
"shared_link_edit_submit_button": "Opdater link",
|
||||
"shared_link_error_server_url_fetch": "Kan ikke finde server URL",
|
||||
"shared_link_error_server_url_fetch": "Kan ikke hente server URL",
|
||||
"shared_link_expires_day": "Udløber om {count} dag",
|
||||
"shared_link_expires_days": "Udløber om {count} dage",
|
||||
"shared_link_expires_hour": "Udløber om {count} time",
|
||||
@@ -1982,6 +2125,7 @@
|
||||
"show_password": "Vis adgangskode",
|
||||
"show_person_options": "Vis personindstillinger",
|
||||
"show_progress_bar": "Vis statuslinje",
|
||||
"show_schema": "Vis skema",
|
||||
"show_search_options": "Vis søgeindstillinger",
|
||||
"show_shared_links": "Vis delte links",
|
||||
"show_slideshow_transition": "Vis overgang til diasshow",
|
||||
@@ -1999,6 +2143,8 @@
|
||||
"skip_to_folders": "Spring til mapper",
|
||||
"skip_to_tags": "Spring til tags",
|
||||
"slideshow": "Diasshow",
|
||||
"slideshow_repeat": "Gentag diasshow",
|
||||
"slideshow_repeat_description": "Hop tilbage til begyndelsen når diasshow stopper",
|
||||
"slideshow_settings": "Diasshowindstillinger",
|
||||
"sort_albums_by": "Sortér albummer efter...",
|
||||
"sort_created": "Dato oprettet",
|
||||
@@ -2022,7 +2168,7 @@
|
||||
"start_date_before_end_date": "Startdato skal ligge før slutdato",
|
||||
"state": "Stat",
|
||||
"status": "Status",
|
||||
"stop_casting": "Stop casting",
|
||||
"stop_casting": "Stop med at caste",
|
||||
"stop_motion_photo": "Stopmotionbillede",
|
||||
"stop_photo_sharing": "Stop med at dele dine billeder?",
|
||||
"stop_photo_sharing_description": "{partner} vil ikke længere kunne tilgå dine billeder.",
|
||||
@@ -2075,6 +2221,7 @@
|
||||
"theme_setting_theme_subtitle": "Vælg appens temaindstilling",
|
||||
"theme_setting_three_stage_loading_subtitle": "Tre-trins indlæsning kan øge ydeevnen, men kan ligeledes føre til højere netværksbelastning",
|
||||
"theme_setting_three_stage_loading_title": "Slå tre-trins indlæsning til",
|
||||
"then": "Siden",
|
||||
"they_will_be_merged_together": "De vil blive slået sammen",
|
||||
"third_party_resources": "Tredjepartsressourcer",
|
||||
"time": "Tid",
|
||||
@@ -2109,12 +2256,19 @@
|
||||
"trash_page_select_assets_btn": "Vælg elementer",
|
||||
"trash_page_title": "Papirkurv ({count})",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Mediefiler i papirkurven vil blive slettet permanent efter {days, plural, one {# dag} other {# dage}}.",
|
||||
"trigger": "Udløser",
|
||||
"trigger_asset_uploaded": "Mediefil uploaded",
|
||||
"trigger_asset_uploaded_description": "Udløses, når et nyt asset bliver uploaded",
|
||||
"trigger_description": "En begivenhed, der starter en arbejdsgang",
|
||||
"trigger_person_recognized": "Peron genkendt",
|
||||
"trigger_person_recognized_description": "Udløses, når en person er detekteret",
|
||||
"trigger_type": "Udløsertype",
|
||||
"troubleshoot": "Fejlfinding",
|
||||
"type": "Type",
|
||||
"unable_to_change_pin_code": "Kunne ikke ændre PIN kode",
|
||||
"unable_to_check_version": "Kan ikke tjekke app- eller serverversion",
|
||||
"unable_to_setup_pin_code": "Kunne ikke sætte PIN kode",
|
||||
"unarchive": "Af Akivér",
|
||||
"unarchive": "Fjern fra arkiv",
|
||||
"unarchive_action_prompt": "{count} slettet fra Arkiv",
|
||||
"unarchived_count": "{count, plural, other {Uarkiveret #}}",
|
||||
"undo": "Fortryd",
|
||||
@@ -2123,6 +2277,7 @@
|
||||
"unhide_person": "Stop med at skjule person",
|
||||
"unknown": "Ukendt",
|
||||
"unknown_country": "Ukendt land",
|
||||
"unknown_date": "Ukendt dato",
|
||||
"unknown_year": "Ukendt år",
|
||||
"unlimited": "Ubegrænset",
|
||||
"unlink_motion_video": "Fjern link til bevægelsesvideo",
|
||||
@@ -2139,17 +2294,19 @@
|
||||
"unstack": "Fjern fra stak",
|
||||
"unstack_action_prompt": "{count} ustakket",
|
||||
"unstacked_assets_count": "Ikke-stablet {count, plural, one {# aktiv} other {# aktiver}}",
|
||||
"unsupported_field_type": "Ikke-understøttet felttype",
|
||||
"untagged": "Umærket",
|
||||
"untitled_workflow": "Unavngivet arbejdsgang",
|
||||
"up_next": "Næste",
|
||||
"update_location_action_prompt": "Opdater lokationen for {count} valgte objekter med:",
|
||||
"updated_at": "Opdateret",
|
||||
"updated_password": "Opdaterede adgangskode",
|
||||
"upload": "Upload",
|
||||
"upload_action_prompt": "{count} i kø til upload",
|
||||
"upload_concurrency": "Upload samtidighed",
|
||||
"upload_details": "Upload detaljer",
|
||||
"upload_dialog_info": "Vil du sikkerhedskopiere de(t) valgte element(er) til serveren?",
|
||||
"upload_dialog_title": "Upload element",
|
||||
"upload_error_with_count": "Upload-fejl for {count, plural, one {# objekt} other {# objekter}}",
|
||||
"upload_errors": "Upload afsluttet med {count, plural, one {# fejl} other {# fejl}}. Opdater siden for at se nye uploadaktiver.",
|
||||
"upload_finished": "Upload fuldført",
|
||||
"upload_progress": "Resterende {remaining, number} - Behandlet {processed, number}/{total, number}",
|
||||
@@ -2164,7 +2321,7 @@
|
||||
"url": "URL",
|
||||
"usage": "Forbrug",
|
||||
"use_biometric": "Brug biometrisk",
|
||||
"use_current_connection": "brug nuværende forbindelse",
|
||||
"use_current_connection": "Brug nuværende forbindelse",
|
||||
"use_custom_date_range": "Brug tilpasset datointerval i stedet",
|
||||
"user": "Bruger",
|
||||
"user_has_been_deleted": "Denne bruger er slettet.",
|
||||
@@ -2181,10 +2338,11 @@
|
||||
"user_usage_stats_description": "Vis konto anvendelsesstatistik",
|
||||
"username": "Brugernavn",
|
||||
"users": "Brugere",
|
||||
"users_added_to_album_count": "Føjet {count, plural, one {# bruker} other {# brukere}} til albummet",
|
||||
"users_added_to_album_count": "Tilføjet {count, plural, one {# bruker} other {# brukere}} til albummet",
|
||||
"utilities": "Værktøjer",
|
||||
"validate": "Validér",
|
||||
"validate_endpoint_error": "Indtast en gyldig URL",
|
||||
"validation_error": "Validerings fejl",
|
||||
"variables": "Variabler",
|
||||
"version": "Version",
|
||||
"version_announcement_closing": "Din ven, Alex",
|
||||
@@ -2196,6 +2354,7 @@
|
||||
"video_hover_setting_description": "Afspil miniaturevisning for videoer når musemarkøren holdes over elementet. Selv når det er deaktiveret, kan afspilning startes ved at holde musen over afspilningsikonet.",
|
||||
"videos": "Videoer",
|
||||
"videos_count": "{count, plural, one {# Video} other {# Videoer}}",
|
||||
"videos_only": "Kun videoer",
|
||||
"view": "Se",
|
||||
"view_album": "Se album",
|
||||
"view_all": "Se alle",
|
||||
@@ -2216,6 +2375,8 @@
|
||||
"viewer_stack_use_as_main_asset": "Brug som hovedelement",
|
||||
"viewer_unstack": "Fjern fra stak",
|
||||
"visibility_changed": "Synlighed ændret for {count, plural, one {# person} other {# personer}}",
|
||||
"visual": "Visuel",
|
||||
"visual_builder": "Visuel builder",
|
||||
"waiting": "Venter",
|
||||
"waiting_count": "Venter: {count}",
|
||||
"warning": "Advarsel",
|
||||
@@ -2224,13 +2385,26 @@
|
||||
"welcome_to_immich": "Velkommen til Immich",
|
||||
"width": "Bredde",
|
||||
"wifi_name": "Wi-Fi navn",
|
||||
"workflow": "Arbejdsproces",
|
||||
"workflow_delete_prompt": "Er du sikker på, at du vil slette denne arbejdsgang?",
|
||||
"workflow_deleted": "Arbejdsgang slettet",
|
||||
"workflow_description": "Arbejdsgangsbeskrivelse",
|
||||
"workflow_info": "Information om arbejdsgang",
|
||||
"workflow_json": "Arbejdsgang JSON",
|
||||
"workflow_json_help": "Rediger arbejdsgangskonfiguration i JSON-format. Ændringer vil synkroniseres til den visuelle opbygger.",
|
||||
"workflow_name": "Navn på arbejdsgang",
|
||||
"workflow_navigation_prompt": "Er du sikker på, at du vil forlade uden at gemme dine ændringer?",
|
||||
"workflow_summary": "Arbejdsgangsoversigt",
|
||||
"workflow_update_success": "Arbejdsgang opdateret korrekt",
|
||||
"workflow_updated": "Arbejdsgang opdateret",
|
||||
"workflows": "Arbejdsgange",
|
||||
"workflows_help_text": "Arbejdsgange automatiserer handlinger på dine filer baseret på udløsere og filtre",
|
||||
"wrong_pin_code": "Forkert PIN kode",
|
||||
"year": "År",
|
||||
"years_ago": "{years, plural, one {# år} other {# år}} siden",
|
||||
"yes": "Ja",
|
||||
"you_dont_have_any_shared_links": "Du har ikke nogen delte links",
|
||||
"your_wifi_name": "Dit Wi-Fi navn",
|
||||
"zero_to_clear_rating": "Tryk på 0 for at fjerne fil vurderingen",
|
||||
"zoom_image": "Zoom billede",
|
||||
"zoom_to_bounds": "Zoom til grænserne"
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user