Compare commits
105 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 338f8dc233 | |||
| f2a98ab523 | |||
| 9e689e835e | |||
| 76eb285204 | |||
| bc9bec8673 | |||
| a9508fc5c8 | |||
| 678cb8938a | |||
| 1785d0916b | |||
| fedbecc9f2 | |||
| 7fc47600f5 | |||
| 4db85a8954 | |||
| bd9374e4a9 | |||
| 0f1a551842 | |||
| 323bcde733 | |||
| 4b57fb5b37 | |||
| b959ae2570 | |||
| e3d041e3c2 | |||
| 2ba2c597e5 | |||
| 9958ac9ec9 | |||
| c57c562166 | |||
| ce2a41826e | |||
| ec0fa4d52b | |||
| f5e44f12e1 | |||
| 6e08f1f371 | |||
| 3ed5d3dbac | |||
| f9387d8478 | |||
| 4bb98471f4 | |||
| 794da29411 | |||
| dd52c2d68c | |||
| 59e4b6598e | |||
| 20ba9f97e9 | |||
| ac4ce3ea9c | |||
| 2b967ca358 | |||
| 1653cd9cd7 | |||
| 32f3707e52 | |||
| 58f1cc92d7 | |||
| d2b7e10f55 | |||
| b3ae5d34cc | |||
| 4e42fbc091 | |||
| 9926045d5e | |||
| d7381ab5c1 | |||
| 87a46dcc5e | |||
| be76857ae6 | |||
| f5de3de163 | |||
| 3634ae1f5b | |||
| 05675921be | |||
| f067212491 | |||
| bc48b67379 | |||
| 26d5fb0ac6 | |||
| f32d991131 | |||
| 9882b83cd4 | |||
| 01eb09526e | |||
| b5a4ed5160 | |||
| 0f03f77e8e | |||
| c21ce40d9c | |||
| cb01a11f19 | |||
| 5244ed6d4d | |||
| 8b80d034cb | |||
| 4b0f93cf6a | |||
| 6c4e6cb96f | |||
| b6cc2054c5 | |||
| f328104e84 | |||
| 2f7e44aa63 | |||
| ebdfe1b7b6 | |||
| daf886088a | |||
| 4c7ac1438b | |||
| 8965a9fb16 | |||
| 7ae4b7129d | |||
| 1775397a84 | |||
| 68fccad462 | |||
| bb67a9db6e | |||
| c109e28686 | |||
| e6ff21b345 | |||
| c665fd2625 | |||
| c72cf61ed0 | |||
| 19ee48f6f0 | |||
| efaf70eb9d | |||
| 665718b09e | |||
| 807111e3b5 | |||
| 815ed1ae66 | |||
| 416211916d | |||
| 23d0ea0e7b | |||
| d5e453a773 | |||
| 7f2af6f819 | |||
| f4671f4886 | |||
| 7aaf3aa57b | |||
| 506ca0d3a4 | |||
| d5ef821b24 | |||
| d10147f478 | |||
| 66004e3b83 | |||
| c20d110257 | |||
| a2722e16e7 | |||
| 4d704e9f73 | |||
| 9bc3e5b2e2 | |||
| 8608b9c6c5 | |||
| a94fad543b | |||
| 082c426e34 | |||
| da152bd284 | |||
| 257cc6c963 | |||
| 4140e93aea | |||
| b6c4b37237 | |||
| bc849e2e9f | |||
| 7fddf282cf | |||
| 6ffc227330 | |||
| 8ef3e49f74 |
@@ -1,4 +1,4 @@
|
|||||||
ARG BASEIMAGE=mcr.microsoft.com/devcontainers/typescript-node:22@sha256:2ef23730ec68d8511ec8e6e0b82550ca728b256805d81f60ed890f3bfb21cfb9
|
ARG BASEIMAGE=mcr.microsoft.com/devcontainers/typescript-node:22@sha256:9791f4aa527774bc370c6bd2f6705ce5a686f1e6f204badd8dfaacce28c631ae
|
||||||
FROM ${BASEIMAGE}
|
FROM ${BASEIMAGE}
|
||||||
|
|
||||||
# Flutter SDK
|
# Flutter SDK
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
22.14.0
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
title: '[Feature] feature-name-goes-here'
|
title: "[Feature] feature-name-goes-here"
|
||||||
labels: ['feature']
|
labels: ["feature"]
|
||||||
|
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
@@ -13,7 +13,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: I have searched the existing feature requests, both open and closed, to make sure this is not a duplicate request.
|
label: I have searched the existing feature requests, both open and closed, to make sure this is not a duplicate request.
|
||||||
options:
|
options:
|
||||||
- label: 'Yes'
|
- label: "Yes"
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
|
label: I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
|
||||||
options:
|
options:
|
||||||
- label: 'Yes'
|
- label: "Yes"
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: markdown
|
- type: markdown
|
||||||
@@ -84,7 +84,7 @@ body:
|
|||||||
id: repro
|
id: repro
|
||||||
attributes:
|
attributes:
|
||||||
label: Reproduction steps
|
label: Reproduction steps
|
||||||
description: 'How do you trigger this bug? Please walk us through it step by step.'
|
description: "How do you trigger this bug? Please walk us through it step by step."
|
||||||
value: |
|
value: |
|
||||||
1.
|
1.
|
||||||
2.
|
2.
|
||||||
@@ -97,13 +97,12 @@ body:
|
|||||||
id: logs
|
id: logs
|
||||||
attributes:
|
attributes:
|
||||||
label: Relevant log output
|
label: Relevant log output
|
||||||
description:
|
description: Please copy and paste any relevant logs below. (code formatting is
|
||||||
Please copy and paste any relevant logs below. (code formatting is
|
|
||||||
enabled, no need for backticks)
|
enabled, no need for backticks)
|
||||||
render: shell
|
render: shell
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Additional information
|
label: Additional information
|
||||||
|
|||||||
Generated
-28
@@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"name": ".github",
|
|
||||||
"lockfileVersion": 3,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"devDependencies": {
|
|
||||||
"prettier": "^3.5.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/prettier": {
|
|
||||||
"version": "3.5.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
|
||||||
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"prettier": "bin/prettier.cjs"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=14"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"scripts": {
|
|
||||||
"format": "prettier --check .",
|
|
||||||
"format:fix": "prettier --write ."
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"prettier": "^3.5.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+33
-33
@@ -1,33 +1,33 @@
|
|||||||
changelog:
|
changelog:
|
||||||
categories:
|
categories:
|
||||||
- title: 🚨 Breaking Changes
|
- title: 🚨 Breaking Changes
|
||||||
labels:
|
labels:
|
||||||
- changelog:breaking-change
|
- changelog:breaking-change
|
||||||
|
|
||||||
- title: 🫥 Deprecated Changes
|
- title: 🫥 Deprecated Changes
|
||||||
labels:
|
labels:
|
||||||
- changelog:deprecated
|
- changelog:deprecated
|
||||||
|
|
||||||
- title: 🔒 Security
|
- title: 🔒 Security
|
||||||
labels:
|
labels:
|
||||||
- changelog:security
|
- changelog:security
|
||||||
|
|
||||||
- title: 🚀 Features
|
- title: 🚀 Features
|
||||||
labels:
|
labels:
|
||||||
- changelog:feature
|
- changelog:feature
|
||||||
|
|
||||||
- title: 🌟 Enhancements
|
- title: 🌟 Enhancements
|
||||||
labels:
|
labels:
|
||||||
- changelog:enhancement
|
- changelog:enhancement
|
||||||
|
|
||||||
- title: 🐛 Bug fixes
|
- title: 🐛 Bug fixes
|
||||||
labels:
|
labels:
|
||||||
- changelog:bugfix
|
- changelog:bugfix
|
||||||
|
|
||||||
- title: 📚 Documentation
|
- title: 📚 Documentation
|
||||||
labels:
|
labels:
|
||||||
- changelog:documentation
|
- changelog:documentation
|
||||||
|
|
||||||
- title: 🌐 Translations
|
- title: 🌐 Translations
|
||||||
labels:
|
labels:
|
||||||
- changelog:translation
|
- changelog:translation
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ jobs:
|
|||||||
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
mobile:
|
mobile:
|
||||||
@@ -51,18 +51,18 @@ jobs:
|
|||||||
ref="${input_ref:-$github_ref}"
|
ref="${input_ref:-$github_ref}"
|
||||||
echo "ref=$ref" >> $GITHUB_OUTPUT
|
echo "ref=$ref" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ steps.get-ref.outputs.ref }}
|
ref: ${{ steps.get-ref.outputs.ref }}
|
||||||
|
|
||||||
- uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4
|
- uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
cache: 'gradle'
|
cache: 'gradle'
|
||||||
|
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -89,7 +89,7 @@ jobs:
|
|||||||
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64
|
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64
|
||||||
|
|
||||||
- name: Publish Android Artifact
|
- name: Publish Android Artifact
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: release-apk-signed
|
name: release-apk-signed
|
||||||
path: mobile/build/app/outputs/flutter-apk/*.apk
|
path: mobile/build/app/outputs/flutter-apk/*.apk
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ on:
|
|||||||
- 'cli/**'
|
- 'cli/**'
|
||||||
- '.github/workflows/cli.yml'
|
- '.github/workflows/cli.yml'
|
||||||
pull_request:
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
paths:
|
paths:
|
||||||
- 'cli/**'
|
- 'cli/**'
|
||||||
- '.github/workflows/cli.yml'
|
- '.github/workflows/cli.yml'
|
||||||
@@ -28,9 +29,9 @@ jobs:
|
|||||||
working-directory: ./cli
|
working-directory: ./cli
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
# Setup .npmrc file to publish to npm
|
# Setup .npmrc file to publish to npm
|
||||||
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: 'https://registry.npmjs.org'
|
||||||
@@ -52,16 +53,16 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
uses: docker/setup-qemu-action@v3.6.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
uses: docker/setup-buildx-action@v3.10.0
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -76,7 +77,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Generate docker image tags
|
- name: Generate docker image tags
|
||||||
id: metadata
|
id: metadata
|
||||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
flavor: |
|
flavor: |
|
||||||
latest=false
|
latest=false
|
||||||
@@ -87,7 +88,7 @@ jobs:
|
|||||||
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
|
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
|
||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
file: cli/Dockerfile
|
file: cli/Dockerfile
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
|
|||||||
@@ -9,14 +9,14 @@
|
|||||||
# the `language` matrix defined below to confirm you have the correct set of
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
# supported CodeQL languages.
|
# supported CodeQL languages.
|
||||||
#
|
#
|
||||||
name: 'CodeQL'
|
name: "CodeQL"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: ['main']
|
branches: [ "main" ]
|
||||||
pull_request:
|
pull_request:
|
||||||
# The branches below must be a subset of the branches above
|
# The branches below must be a subset of the branches above
|
||||||
branches: ['main']
|
branches: [ "main" ]
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '20 13 * * 1'
|
- cron: '20 13 * * 1'
|
||||||
|
|
||||||
@@ -36,42 +36,43 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
language: ['javascript', 'python']
|
language: [ 'javascript', 'python' ]
|
||||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@5f8171a638ada777af81d42b55959a643bb29017 # v3
|
uses: github/codeql-action/init@v3
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
# By default, queries listed here will override any specified in a config file.
|
# By default, queries listed here will override any specified in a config file.
|
||||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
|
||||||
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||||
# queries: security-extended,security-and-quality
|
# queries: security-extended,security-and-quality
|
||||||
|
|
||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
|
||||||
- name: Autobuild
|
|
||||||
uses: github/codeql-action/autobuild@5f8171a638ada777af81d42b55959a643bb29017 # v3
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v3
|
||||||
|
|
||||||
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||||
|
|
||||||
# - run: |
|
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||||
# echo "Run, Build Application using script"
|
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||||
# ./location_of_script_within_repo/buildscript.sh
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
# - run: |
|
||||||
uses: github/codeql-action/analyze@5f8171a638ada777af81d42b55959a643bb29017 # v3
|
# echo "Run, Build Application using script"
|
||||||
with:
|
# ./location_of_script_within_repo/buildscript.sh
|
||||||
category: '/language:${{matrix.language}}'
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v3
|
||||||
|
with:
|
||||||
|
category: "/language:${{matrix.language}}"
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ jobs:
|
|||||||
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
server:
|
server:
|
||||||
@@ -49,23 +49,23 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
suffix: ['', '-cuda', '-rocm', '-openvino', '-armnn', '-rknn']
|
suffix: ["", "-cuda", "-openvino", "-armnn","-rknn"]
|
||||||
steps:
|
steps:
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Re-tag image
|
- name: Re-tag image
|
||||||
run: |
|
run: |
|
||||||
REGISTRY_NAME="ghcr.io"
|
REGISTRY_NAME="ghcr.io"
|
||||||
REPOSITORY=${{ github.repository_owner }}/immich-machine-learning
|
REPOSITORY=${{ github.repository_owner }}/immich-machine-learning
|
||||||
TAG_OLD=main${{ matrix.suffix }}
|
TAG_OLD=main${{ matrix.suffix }}
|
||||||
TAG_PR=${{ github.event.number == 0 && github.ref_name || format('pr-{0}', github.event.number) }}${{ matrix.suffix }}
|
TAG_PR=${{ github.event.number == 0 && github.ref_name || format('pr-{0}', github.event.number) }}${{ matrix.suffix }}
|
||||||
TAG_COMMIT=commit-${{ github.event_name != 'pull_request' && github.sha || github.event.pull_request.head.sha }}${{ matrix.suffix }}
|
TAG_COMMIT=commit-${{ github.event_name != 'pull_request' && github.sha || github.event.pull_request.head.sha }}${{ matrix.suffix }}
|
||||||
docker buildx imagetools create -t $REGISTRY_NAME/$REPOSITORY:$TAG_PR $REGISTRY_NAME/$REPOSITORY:$TAG_OLD
|
docker buildx imagetools create -t $REGISTRY_NAME/$REPOSITORY:$TAG_PR $REGISTRY_NAME/$REPOSITORY:$TAG_OLD
|
||||||
docker buildx imagetools create -t $REGISTRY_NAME/$REPOSITORY:$TAG_COMMIT $REGISTRY_NAME/$REPOSITORY:$TAG_OLD
|
docker buildx imagetools create -t $REGISTRY_NAME/$REPOSITORY:$TAG_COMMIT $REGISTRY_NAME/$REPOSITORY:$TAG_OLD
|
||||||
|
|
||||||
retag_server:
|
retag_server:
|
||||||
name: Re-Tag Server
|
name: Re-Tag Server
|
||||||
@@ -74,10 +74,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
suffix: ['']
|
suffix: [""]
|
||||||
steps:
|
steps:
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
@@ -120,11 +120,6 @@ jobs:
|
|||||||
device: cuda
|
device: cuda
|
||||||
suffix: -cuda
|
suffix: -cuda
|
||||||
|
|
||||||
- platform: linux/amd64
|
|
||||||
runner: mich
|
|
||||||
device: rocm
|
|
||||||
suffix: -rocm
|
|
||||||
|
|
||||||
- platform: linux/amd64
|
- platform: linux/amd64
|
||||||
runner: ubuntu-latest
|
runner: ubuntu-latest
|
||||||
device: openvino
|
device: openvino
|
||||||
@@ -134,9 +129,7 @@ jobs:
|
|||||||
runner: ubuntu-24.04-arm
|
runner: ubuntu-24.04-arm
|
||||||
device: armnn
|
device: armnn
|
||||||
suffix: -armnn
|
suffix: -armnn
|
||||||
|
- platforms: linux/arm64
|
||||||
- platform: linux/arm64
|
|
||||||
runner: ubuntu-24.04-arm
|
|
||||||
device: rknn
|
device: rknn
|
||||||
suffix: -rknn
|
suffix: -rknn
|
||||||
|
|
||||||
@@ -147,13 +140,13 @@ jobs:
|
|||||||
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
uses: docker/setup-buildx-action@v3.10.0
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -180,7 +173,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
context: ${{ env.context }}
|
context: ${{ env.context }}
|
||||||
file: ${{ env.file }}
|
file: ${{ env.file }}
|
||||||
@@ -205,7 +198,7 @@ jobs:
|
|||||||
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
||||||
|
|
||||||
- name: Upload digest
|
- name: Upload digest
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ml-digests-${{ matrix.device }}-${{ env.PLATFORM_PAIR }}
|
name: ml-digests-${{ matrix.device }}-${{ env.PLATFORM_PAIR }}
|
||||||
path: ${{ runner.temp }}/digests/*
|
path: ${{ runner.temp }}/digests/*
|
||||||
@@ -225,19 +218,15 @@ jobs:
|
|||||||
- device: cpu
|
- device: cpu
|
||||||
- device: cuda
|
- device: cuda
|
||||||
suffix: -cuda
|
suffix: -cuda
|
||||||
- device: rocm
|
|
||||||
suffix: -rocm
|
|
||||||
- device: openvino
|
- device: openvino
|
||||||
suffix: -openvino
|
suffix: -openvino
|
||||||
- device: armnn
|
- device: armnn
|
||||||
suffix: -armnn
|
suffix: -armnn
|
||||||
- device: rknn
|
|
||||||
suffix: -rknn
|
|
||||||
needs:
|
needs:
|
||||||
- build_and_push_ml
|
- build_and_push_ml
|
||||||
steps:
|
steps:
|
||||||
- name: Download digests
|
- name: Download digests
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: ${{ runner.temp }}/digests
|
path: ${{ runner.temp }}/digests
|
||||||
pattern: ml-digests-${{ matrix.device }}-*
|
pattern: ml-digests-${{ matrix.device }}-*
|
||||||
@@ -245,26 +234,26 @@ jobs:
|
|||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
if: ${{ github.event_name == 'release' }}
|
if: ${{ github.event_name == 'release' }}
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Login to GHCR
|
- name: Login to GHCR
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Generate docker image tags
|
- name: Generate docker image tags
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
|
uses: docker/metadata-action@v5
|
||||||
env:
|
env:
|
||||||
DOCKER_METADATA_PR_HEAD_SHA: 'true'
|
DOCKER_METADATA_PR_HEAD_SHA: "true"
|
||||||
with:
|
with:
|
||||||
flavor: |
|
flavor: |
|
||||||
# Disable latest tag
|
# Disable latest tag
|
||||||
@@ -315,13 +304,13 @@ jobs:
|
|||||||
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -348,7 +337,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
context: ${{ env.context }}
|
context: ${{ env.context }}
|
||||||
file: ${{ env.file }}
|
file: ${{ env.file }}
|
||||||
@@ -373,7 +362,7 @@ jobs:
|
|||||||
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
||||||
|
|
||||||
- name: Upload digest
|
- name: Upload digest
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: server-digests-${{ env.PLATFORM_PAIR }}
|
name: server-digests-${{ env.PLATFORM_PAIR }}
|
||||||
path: ${{ runner.temp }}/digests/*
|
path: ${{ runner.temp }}/digests/*
|
||||||
@@ -391,7 +380,7 @@ jobs:
|
|||||||
- build_and_push_server
|
- build_and_push_server
|
||||||
steps:
|
steps:
|
||||||
- name: Download digests
|
- name: Download digests
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: ${{ runner.temp }}/digests
|
path: ${{ runner.temp }}/digests
|
||||||
pattern: server-digests-*
|
pattern: server-digests-*
|
||||||
@@ -399,26 +388,26 @@ jobs:
|
|||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
if: ${{ github.event_name == 'release' }}
|
if: ${{ github.event_name == 'release' }}
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Login to GHCR
|
- name: Login to GHCR
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Generate docker image tags
|
- name: Generate docker image tags
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
|
uses: docker/metadata-action@v5
|
||||||
env:
|
env:
|
||||||
DOCKER_METADATA_PR_HEAD_SHA: 'true'
|
DOCKER_METADATA_PR_HEAD_SHA: "true"
|
||||||
with:
|
with:
|
||||||
flavor: |
|
flavor: |
|
||||||
# Disable latest tag
|
# Disable latest tag
|
||||||
@@ -468,4 +457,4 @@ jobs:
|
|||||||
run: exit 1
|
run: exit 1
|
||||||
- name: All jobs passed or skipped
|
- name: All jobs passed or skipped
|
||||||
if: ${{ !(contains(needs.*.result, 'failure')) }}
|
if: ${{ !(contains(needs.*.result, 'failure')) }}
|
||||||
run: echo "All jobs passed or skipped" && echo "${{ toJSON(needs.*.result) }}"
|
run: echo "All jobs passed or skipped" && echo "${{ toJSON(needs.*.result) }}"
|
||||||
@@ -3,6 +3,7 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
pull_request:
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published]
|
||||||
|
|
||||||
@@ -17,9 +18,9 @@ jobs:
|
|||||||
should_run: ${{ steps.found_paths.outputs.docs == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run: ${{ steps.found_paths.outputs.docs == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
docs:
|
docs:
|
||||||
@@ -41,10 +42,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './docs/.nvmrc'
|
node-version-file: './docs/.nvmrc'
|
||||||
|
|
||||||
@@ -58,7 +59,7 @@ jobs:
|
|||||||
run: npm run build
|
run: npm run build
|
||||||
|
|
||||||
- name: Upload build output
|
- name: Upload build output
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docs-build-output
|
name: docs-build-output
|
||||||
path: docs/build/
|
path: docs/build/
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: Docs deploy
|
name: Docs deploy
|
||||||
on:
|
on:
|
||||||
workflow_run:
|
workflow_run:
|
||||||
workflows: ['Docs build']
|
workflows: ["Docs build"]
|
||||||
types:
|
types:
|
||||||
- completed
|
- completed
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ jobs:
|
|||||||
run: echo 'The triggering workflow did not succeed' && exit 1
|
run: echo 'The triggering workflow did not succeed' && exit 1
|
||||||
- name: Get artifact
|
- name: Get artifact
|
||||||
id: get-artifact
|
id: get-artifact
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
return { found: true, id: matchArtifact.id };
|
return { found: true, id: matchArtifact.id };
|
||||||
- name: Determine deploy parameters
|
- name: Determine deploy parameters
|
||||||
id: parameters
|
id: parameters
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const eventType = context.payload.workflow_run.event;
|
const eventType = context.payload.workflow_run.event;
|
||||||
@@ -98,11 +98,11 @@ jobs:
|
|||||||
if: ${{ fromJson(needs.checks.outputs.artifact).found && fromJson(needs.checks.outputs.parameters).shouldDeploy }}
|
if: ${{ fromJson(needs.checks.outputs.artifact).found && fromJson(needs.checks.outputs.parameters).shouldDeploy }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Load parameters
|
- name: Load parameters
|
||||||
id: parameters
|
id: parameters
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const json = `${{ needs.checks.outputs.parameters }}`;
|
const json = `${{ needs.checks.outputs.parameters }}`;
|
||||||
@@ -115,7 +115,7 @@ jobs:
|
|||||||
echo "Starting docs deployment for ${{ steps.parameters.outputs.event }} ${{ steps.parameters.outputs.name }}"
|
echo "Starting docs deployment for ${{ steps.parameters.outputs.event }} ${{ steps.parameters.outputs.name }}"
|
||||||
|
|
||||||
- name: Download artifact
|
- name: Download artifact
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
let artifact = ${{ needs.checks.outputs.artifact }};
|
let artifact = ${{ needs.checks.outputs.artifact }};
|
||||||
@@ -138,12 +138,12 @@ jobs:
|
|||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
||||||
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
|
uses: gruntwork-io/terragrunt-action@v2
|
||||||
with:
|
with:
|
||||||
tg_version: '0.58.12'
|
tg_version: "0.58.12"
|
||||||
tofu_version: '1.7.1'
|
tofu_version: "1.7.1"
|
||||||
tg_dir: 'deployment/modules/cloudflare/docs'
|
tg_dir: "deployment/modules/cloudflare/docs"
|
||||||
tg_command: 'apply'
|
tg_command: "apply"
|
||||||
|
|
||||||
- name: Deploy Docs Subdomain Output
|
- name: Deploy Docs Subdomain Output
|
||||||
id: docs-output
|
id: docs-output
|
||||||
@@ -153,12 +153,12 @@ jobs:
|
|||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
||||||
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
|
uses: gruntwork-io/terragrunt-action@v2
|
||||||
with:
|
with:
|
||||||
tg_version: '0.58.12'
|
tg_version: "0.58.12"
|
||||||
tofu_version: '1.7.1'
|
tofu_version: "1.7.1"
|
||||||
tg_dir: 'deployment/modules/cloudflare/docs'
|
tg_dir: "deployment/modules/cloudflare/docs"
|
||||||
tg_command: 'output -json'
|
tg_command: "output -json"
|
||||||
|
|
||||||
- name: Output Cleaning
|
- name: Output Cleaning
|
||||||
id: clean
|
id: clean
|
||||||
@@ -167,13 +167,13 @@ jobs:
|
|||||||
echo "output=$TG_OUT" >> $GITHUB_OUTPUT
|
echo "output=$TG_OUT" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Publish to Cloudflare Pages
|
- name: Publish to Cloudflare Pages
|
||||||
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1
|
uses: cloudflare/pages-action@v1
|
||||||
with:
|
with:
|
||||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN_PAGES_UPLOAD }}
|
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN_PAGES_UPLOAD }}
|
||||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
projectName: ${{ fromJson(steps.clean.outputs.output).pages_project_name.value }}
|
projectName: ${{ fromJson(steps.clean.outputs.output).pages_project_name.value }}
|
||||||
workingDirectory: 'docs'
|
workingDirectory: "docs"
|
||||||
directory: 'build'
|
directory: "build"
|
||||||
branch: ${{ steps.parameters.outputs.name }}
|
branch: ${{ steps.parameters.outputs.name }}
|
||||||
wranglerVersion: '3'
|
wranglerVersion: '3'
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ jobs:
|
|||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
||||||
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
|
uses: gruntwork-io/terragrunt-action@v2
|
||||||
with:
|
with:
|
||||||
tg_version: '0.58.12'
|
tg_version: '0.58.12'
|
||||||
tofu_version: '1.7.1'
|
tofu_version: '1.7.1'
|
||||||
@@ -192,7 +192,7 @@ jobs:
|
|||||||
tg_command: 'apply'
|
tg_command: 'apply'
|
||||||
|
|
||||||
- name: Comment
|
- name: Comment
|
||||||
uses: actions-cool/maintain-one-comment@4b2dbf086015f892dcb5e8c1106f5fccd6c1476b # v3
|
uses: actions-cool/maintain-one-comment@v3
|
||||||
if: ${{ steps.parameters.outputs.event == 'pr' }}
|
if: ${{ steps.parameters.outputs.event == 'pr' }}
|
||||||
with:
|
with:
|
||||||
number: ${{ fromJson(needs.checks.outputs.parameters).pr_number }}
|
number: ${{ fromJson(needs.checks.outputs.parameters).pr_number }}
|
||||||
|
|||||||
@@ -9,24 +9,24 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Destroy Docs Subdomain
|
- name: Destroy Docs Subdomain
|
||||||
env:
|
env:
|
||||||
TF_VAR_prefix_name: 'pr-${{ github.event.number }}'
|
TF_VAR_prefix_name: "pr-${{ github.event.number }}"
|
||||||
TF_VAR_prefix_event_type: 'pr'
|
TF_VAR_prefix_event_type: "pr"
|
||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
||||||
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
|
uses: gruntwork-io/terragrunt-action@v2
|
||||||
with:
|
with:
|
||||||
tg_version: '0.58.12'
|
tg_version: "0.58.12"
|
||||||
tofu_version: '1.7.1'
|
tofu_version: "1.7.1"
|
||||||
tg_dir: 'deployment/modules/cloudflare/docs'
|
tg_dir: "deployment/modules/cloudflare/docs"
|
||||||
tg_command: 'destroy -refresh=false'
|
tg_command: "destroy -refresh=false"
|
||||||
|
|
||||||
- name: Comment
|
- name: Comment
|
||||||
uses: actions-cool/maintain-one-comment@4b2dbf086015f892dcb5e8c1106f5fccd6c1476b # v3
|
uses: actions-cool/maintain-one-comment@v3
|
||||||
with:
|
with:
|
||||||
number: ${{ github.event.number }}
|
number: ${{ github.event.number }}
|
||||||
delete: true
|
delete: true
|
||||||
|
|||||||
@@ -13,19 +13,19 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@af35edadc00be37caa72ed9f3e6d5f7801bfdf09 # v1
|
uses: actions/create-github-app-token@v1
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
|
|
||||||
- name: 'Checkout'
|
- name: 'Checkout'
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.ref }}
|
ref: ${{ github.event.pull_request.head.ref }}
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -33,13 +33,13 @@ jobs:
|
|||||||
run: make install-all && make format-all
|
run: make install-all && make format-all
|
||||||
|
|
||||||
- name: Commit and push
|
- name: Commit and push
|
||||||
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9
|
uses: EndBug/add-and-commit@v9
|
||||||
with:
|
with:
|
||||||
default_author: github_actions
|
default_author: github_actions
|
||||||
message: 'chore: fix formatting'
|
message: 'chore: fix formatting'
|
||||||
|
|
||||||
- name: Remove label
|
- name: Remove label
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
@@ -49,3 +49,4 @@ jobs:
|
|||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
name: 'fix:formatting'
|
name: 'fix:formatting'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- name: Require PR to have a changelog label
|
- name: Require PR to have a changelog label
|
||||||
uses: mheap/github-action-required-labels@388fd6af37b34cdfe5a23b37060e763217e58b03 # v5
|
uses: mheap/github-action-required-labels@v5
|
||||||
with:
|
with:
|
||||||
mode: exactly
|
mode: exactly
|
||||||
count: 1
|
count: 1
|
||||||
use_regex: true
|
use_regex: true
|
||||||
labels: 'changelog:.*'
|
labels: "changelog:.*"
|
||||||
add_comment: true
|
add_comment: true
|
||||||
message: 'Label error. Requires {{errorString}} {{count}} of: {{ provided }}. Found: {{ applied }}. A maintainer will add the required label.'
|
message: "Label error. Requires {{errorString}} {{count}} of: {{ provided }}. Found: {{ applied }}. A maintainer will add the required label."
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
name: 'Pull Request Labeler'
|
name: "Pull Request Labeler"
|
||||||
on:
|
on:
|
||||||
- pull_request_target
|
- pull_request_target
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
labeler:
|
labeler:
|
||||||
@@ -9,4 +9,4 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5
|
- uses: actions/labeler@v5
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: PR Conventional Commit Validation
|
- name: PR Conventional Commit Validation
|
||||||
uses: ytanikin/PRConventionalCommits@1.3.0
|
uses: ytanikin/PRConventionalCommits@1.3.0
|
||||||
with:
|
with:
|
||||||
task_types: '["feat","fix","docs","test","ci","refactor","perf","chore","revert"]'
|
task_types: '["feat","fix","docs","test","ci","refactor","perf","chore","revert"]'
|
||||||
add_label: 'false'
|
add_label: 'false'
|
||||||
|
|||||||
@@ -31,25 +31,25 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@af35edadc00be37caa72ed9f3e6d5f7801bfdf09 # v1
|
uses: actions/create-github-app-token@v1
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
|
||||||
- name: Install uv
|
- name: Install uv
|
||||||
uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
|
uses: astral-sh/setup-uv@v5
|
||||||
|
|
||||||
- name: Bump version
|
- name: Bump version
|
||||||
run: misc/release/pump-version.sh -s "${{ inputs.serverBump }}" -m "${{ inputs.mobileBump }}"
|
run: misc/release/pump-version.sh -s "${{ inputs.serverBump }}" -m "${{ inputs.mobileBump }}"
|
||||||
|
|
||||||
- name: Commit and tag
|
- name: Commit and tag
|
||||||
id: push-tag
|
id: push-tag
|
||||||
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9
|
uses: EndBug/add-and-commit@v9
|
||||||
with:
|
with:
|
||||||
default_author: github_actions
|
default_author: github_actions
|
||||||
message: 'chore: version ${{ env.IMMICH_VERSION }}'
|
message: 'chore: version ${{ env.IMMICH_VERSION }}'
|
||||||
@@ -70,23 +70,23 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@af35edadc00be37caa72ed9f3e6d5f7801bfdf09 # v1
|
uses: actions/create-github-app-token@v1
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
|
||||||
- name: Download APK
|
- name: Download APK
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: release-apk-signed
|
name: release-apk-signed
|
||||||
|
|
||||||
- name: Create draft release
|
- name: Create draft release
|
||||||
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
draft: true
|
draft: true
|
||||||
tag_name: ${{ env.IMMICH_VERSION }}
|
tag_name: ${{ env.IMMICH_VERSION }}
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
|
- uses: mshick/add-pr-comment@v2
|
||||||
with:
|
with:
|
||||||
message-id: 'preview-status'
|
message-id: "preview-status"
|
||||||
message: 'Deploying preview environment to https://pr-${{ github.event.pull_request.number }}.preview.internal.immich.cloud/'
|
message: "Deploying preview environment to https://pr-${{ github.event.pull_request.number }}.preview.internal.immich.cloud/"
|
||||||
|
|
||||||
remove-label:
|
remove-label:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
- uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
github.rest.issues.removeLabel({
|
github.rest.issues.removeLabel({
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ jobs:
|
|||||||
run:
|
run:
|
||||||
working-directory: ./open-api/typescript-sdk
|
working-directory: ./open-api/typescript-sdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
# Setup .npmrc file to publish to npm
|
# Setup .npmrc file to publish to npm
|
||||||
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './open-api/typescript-sdk/.nvmrc'
|
node-version-file: './open-api/typescript-sdk/.nvmrc'
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: 'https://registry.npmjs.org'
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ jobs:
|
|||||||
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
mobile:
|
mobile:
|
||||||
@@ -38,10 +38,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -55,7 +55,7 @@ jobs:
|
|||||||
working-directory: ./mobile
|
working-directory: ./mobile
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@6ed7632824d235029086612d4330d659005af687 # v20
|
uses: tj-actions/verify-changed-files@v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
|
|||||||
+31
-59
@@ -21,12 +21,11 @@ jobs:
|
|||||||
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
should_run_e2e_web: ${{ steps.found_paths.outputs.e2e == 'true' || steps.found_paths.outputs.web == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_e2e_web: ${{ steps.found_paths.outputs.e2e == 'true' || steps.found_paths.outputs.web == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
should_run_e2e_server_cli: ${{ steps.found_paths.outputs.e2e == 'true' || steps.found_paths.outputs.server == 'true' || steps.found_paths.outputs.cli == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_e2e_server_cli: ${{ steps.found_paths.outputs.e2e == 'true' || steps.found_paths.outputs.server == 'true' || steps.found_paths.outputs.cli == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
should_run_.github: ${{ steps.found_paths.outputs['.github'] == 'true' || steps.should_force.outputs.should_force == 'true' }} # redundant to have should_force but if someone changes the trigger then this won't have to be changed
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
web:
|
web:
|
||||||
@@ -46,8 +45,6 @@ jobs:
|
|||||||
- 'machine-learning/**'
|
- 'machine-learning/**'
|
||||||
workflow:
|
workflow:
|
||||||
- '.github/workflows/test.yml'
|
- '.github/workflows/test.yml'
|
||||||
.github:
|
|
||||||
- '.github/**'
|
|
||||||
|
|
||||||
- name: Check if we should force jobs to run
|
- name: Check if we should force jobs to run
|
||||||
id: should_force
|
id: should_force
|
||||||
@@ -64,10 +61,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -101,10 +98,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
|
|
||||||
@@ -142,10 +139,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
|
|
||||||
@@ -176,10 +173,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './web/.nvmrc'
|
node-version-file: './web/.nvmrc'
|
||||||
|
|
||||||
@@ -221,10 +218,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -260,10 +257,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -285,12 +282,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -327,12 +324,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -363,9 +360,9 @@ jobs:
|
|||||||
if: ${{ needs.pre-job.outputs.should_run_mobile == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_mobile == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -382,10 +379,10 @@ jobs:
|
|||||||
run:
|
run:
|
||||||
working-directory: ./machine-learning
|
working-directory: ./machine-learning
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
- name: Install uv
|
- name: Install uv
|
||||||
uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
|
uses: astral-sh/setup-uv@v5
|
||||||
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5
|
- uses: actions/setup-python@v5
|
||||||
# TODO: add caching when supported (https://github.com/actions/setup-python/pull/818)
|
# TODO: add caching when supported (https://github.com/actions/setup-python/pull/818)
|
||||||
# with:
|
# with:
|
||||||
# python-version: 3.11
|
# python-version: 3.11
|
||||||
@@ -406,36 +403,11 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
uv run pytest app --cov=app --cov-report term-missing
|
uv run pytest app --cov=app --cov-report term-missing
|
||||||
|
|
||||||
github-files-formatting:
|
|
||||||
name: .github Files Formatting
|
|
||||||
needs: pre-job
|
|
||||||
if: ${{ needs.pre-job.outputs['should_run_.github'] == 'true' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: ./.github
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version-file: './.github/.nvmrc'
|
|
||||||
|
|
||||||
- name: Run npm install
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: Run formatter
|
|
||||||
run: npm run format
|
|
||||||
if: ${{ !cancelled() }}
|
|
||||||
|
|
||||||
shellcheck:
|
shellcheck:
|
||||||
name: ShellCheck
|
name: ShellCheck
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
- name: Run ShellCheck
|
- name: Run ShellCheck
|
||||||
uses: ludeeus/action-shellcheck@master
|
uses: ludeeus/action-shellcheck@master
|
||||||
with:
|
with:
|
||||||
@@ -449,10 +421,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -466,7 +438,7 @@ jobs:
|
|||||||
run: make open-api
|
run: make open-api
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@6ed7632824d235029086612d4330d659005af687 # v20
|
uses: tj-actions/verify-changed-files@v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
@@ -504,10 +476,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -528,7 +500,7 @@ jobs:
|
|||||||
run: npm run typeorm:migrations:generate ./src/migrations/TestMigration
|
run: npm run typeorm:migrations:generate ./src/migrations/TestMigration
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@6ed7632824d235029086612d4330d659005af687 # v20
|
uses: tj-actions/verify-changed-files@v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
@@ -547,7 +519,7 @@ jobs:
|
|||||||
DB_URL: postgres://postgres:postgres@localhost:5432/immich
|
DB_URL: postgres://postgres:postgres@localhost:5432/immich
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@6ed7632824d235029086612d4330d659005af687 # v20
|
uses: tj-actions/verify-changed-files@v20
|
||||||
id: verify-changed-sql-files
|
id: verify-changed-sql-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
|
|||||||
@@ -11,22 +11,22 @@ jobs:
|
|||||||
should_run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}
|
should_run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
i18n:
|
i18n:
|
||||||
- 'i18n/!(en)**\.json'
|
- 'i18n/!(en)**\.json'
|
||||||
- name: Debug
|
- name: Debug
|
||||||
run: |
|
run: |
|
||||||
echo "Should run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}"
|
echo "Should run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}"
|
||||||
echo "Found i18n paths: ${{ steps.found_paths.outputs.i18n }}"
|
echo "Found i18n paths: ${{ steps.found_paths.outputs.i18n }}"
|
||||||
echo "Head ref: ${{ github.head_ref }}"
|
echo "Head ref: ${{ github.head_ref }}"
|
||||||
|
|
||||||
enforce-lock:
|
enforce-lock:
|
||||||
name: Check Weblate Lock
|
name: Check Weblate Lock
|
||||||
needs: [pre-job]
|
needs: [ pre-job ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
@@ -36,7 +36,7 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
- name: Find Pull Request
|
- name: Find Pull Request
|
||||||
uses: juliangruber/find-pull-request-action@48b6133aa6c826f267ebd33aa2d29470f9d9e7d0 # v1
|
uses: juliangruber/find-pull-request-action@v1
|
||||||
id: find-pr
|
id: find-pr
|
||||||
with:
|
with:
|
||||||
branch: chore/translations
|
branch: chore/translations
|
||||||
@@ -45,7 +45,7 @@ jobs:
|
|||||||
run: exit 1
|
run: exit 1
|
||||||
success-check-lock:
|
success-check-lock:
|
||||||
name: Weblate Lock Check Success
|
name: Weblate Lock Check Success
|
||||||
needs: [enforce-lock]
|
needs: [ enforce-lock ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ attach-server:
|
|||||||
renovate:
|
renovate:
|
||||||
LOG_LEVEL=debug npx renovate --platform=local --repository-cache=reset
|
LOG_LEVEL=debug npx renovate --platform=local --repository-cache=reset
|
||||||
|
|
||||||
MODULES = e2e server web cli sdk docs .github
|
MODULES = e2e server web cli sdk docs
|
||||||
|
|
||||||
audit-%:
|
audit-%:
|
||||||
npm --prefix $(subst sdk,open-api/typescript-sdk,$*) audit fix
|
npm --prefix $(subst sdk,open-api/typescript-sdk,$*) audit fix
|
||||||
@@ -77,14 +77,14 @@ test-medium:
|
|||||||
test-medium-dev:
|
test-medium-dev:
|
||||||
docker exec -it immich_server /bin/sh -c "npm run test:medium"
|
docker exec -it immich_server /bin/sh -c "npm run test:medium"
|
||||||
|
|
||||||
build-all: $(foreach M,$(filter-out e2e .github,$(MODULES)),build-$M) ;
|
build-all: $(foreach M,$(filter-out e2e,$(MODULES)),build-$M) ;
|
||||||
install-all: $(foreach M,$(MODULES),install-$M) ;
|
install-all: $(foreach M,$(MODULES),install-$M) ;
|
||||||
check-all: $(foreach M,$(filter-out sdk cli docs .github,$(MODULES)),check-$M) ;
|
check-all: $(foreach M,$(filter-out sdk cli docs,$(MODULES)),check-$M) ;
|
||||||
lint-all: $(foreach M,$(filter-out sdk docs .github,$(MODULES)),lint-$M) ;
|
lint-all: $(foreach M,$(filter-out sdk docs,$(MODULES)),lint-$M) ;
|
||||||
format-all: $(foreach M,$(filter-out sdk,$(MODULES)),format-$M) ;
|
format-all: $(foreach M,$(filter-out sdk,$(MODULES)),format-$M) ;
|
||||||
audit-all: $(foreach M,$(MODULES),audit-$M) ;
|
audit-all: $(foreach M,$(MODULES),audit-$M) ;
|
||||||
hygiene-all: lint-all format-all check-all sql audit-all;
|
hygiene-all: lint-all format-all check-all sql audit-all;
|
||||||
test-all: $(foreach M,$(filter-out sdk docs .github,$(MODULES)),test-$M) ;
|
test-all: $(foreach M,$(filter-out sdk docs,$(MODULES)),test-$M) ;
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
|
find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
|
||||||
|
|||||||
Generated
+127
-138
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.54",
|
"version": "2.2.53",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.54",
|
"version": "2.2.53",
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chokidar": "^4.0.3",
|
"chokidar": "^4.0.3",
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/micromatch": "^4.0.9",
|
"@types/micromatch": "^4.0.9",
|
||||||
"@types/mock-fs": "^4.13.1",
|
"@types/mock-fs": "^4.13.1",
|
||||||
"@types/node": "^22.13.10",
|
"@types/node": "^22.13.9",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
||||||
"@typescript-eslint/parser": "^8.15.0",
|
"@typescript-eslint/parser": "^8.15.0",
|
||||||
"@vitest/coverage-v8": "^3.0.0",
|
"@vitest/coverage-v8": "^3.0.0",
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
},
|
},
|
||||||
"../open-api/typescript-sdk": {
|
"../open-api/typescript-sdk": {
|
||||||
"name": "@immich/sdk",
|
"name": "@immich/sdk",
|
||||||
"version": "1.130.0",
|
"version": "1.129.0",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@oazapfts/runtime": "^1.0.2"
|
"@oazapfts/runtime": "^1.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.13.10",
|
"@types/node": "^22.13.9",
|
||||||
"typescript": "^5.3.3"
|
"typescript": "^5.3.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -809,16 +809,6 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/config-helpers": {
|
|
||||||
"version": "0.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz",
|
|
||||||
"integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"engines": {
|
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@eslint/core": {
|
"node_modules/@eslint/core": {
|
||||||
"version": "0.12.0",
|
"version": "0.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz",
|
||||||
@@ -894,9 +884,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/js": {
|
"node_modules/@eslint/js": {
|
||||||
"version": "9.22.0",
|
"version": "9.21.0",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz",
|
||||||
"integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==",
|
"integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -1528,17 +1518,17 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||||
"version": "8.26.1",
|
"version": "8.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz",
|
||||||
"integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==",
|
"integrity": "sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/regexpp": "^4.10.0",
|
"@eslint-community/regexpp": "^4.10.0",
|
||||||
"@typescript-eslint/scope-manager": "8.26.1",
|
"@typescript-eslint/scope-manager": "8.25.0",
|
||||||
"@typescript-eslint/type-utils": "8.26.1",
|
"@typescript-eslint/type-utils": "8.25.0",
|
||||||
"@typescript-eslint/utils": "8.26.1",
|
"@typescript-eslint/utils": "8.25.0",
|
||||||
"@typescript-eslint/visitor-keys": "8.26.1",
|
"@typescript-eslint/visitor-keys": "8.25.0",
|
||||||
"graphemer": "^1.4.0",
|
"graphemer": "^1.4.0",
|
||||||
"ignore": "^5.3.1",
|
"ignore": "^5.3.1",
|
||||||
"natural-compare": "^1.4.0",
|
"natural-compare": "^1.4.0",
|
||||||
@@ -1554,20 +1544,20 @@
|
|||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
|
"@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
|
||||||
"eslint": "^8.57.0 || ^9.0.0",
|
"eslint": "^8.57.0 || ^9.0.0",
|
||||||
"typescript": ">=4.8.4 <5.9.0"
|
"typescript": ">=4.8.4 <5.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/parser": {
|
"node_modules/@typescript-eslint/parser": {
|
||||||
"version": "8.26.1",
|
"version": "8.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.25.0.tgz",
|
||||||
"integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==",
|
"integrity": "sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "8.26.1",
|
"@typescript-eslint/scope-manager": "8.25.0",
|
||||||
"@typescript-eslint/types": "8.26.1",
|
"@typescript-eslint/types": "8.25.0",
|
||||||
"@typescript-eslint/typescript-estree": "8.26.1",
|
"@typescript-eslint/typescript-estree": "8.25.0",
|
||||||
"@typescript-eslint/visitor-keys": "8.26.1",
|
"@typescript-eslint/visitor-keys": "8.25.0",
|
||||||
"debug": "^4.3.4"
|
"debug": "^4.3.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -1579,18 +1569,18 @@
|
|||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"eslint": "^8.57.0 || ^9.0.0",
|
"eslint": "^8.57.0 || ^9.0.0",
|
||||||
"typescript": ">=4.8.4 <5.9.0"
|
"typescript": ">=4.8.4 <5.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/scope-manager": {
|
"node_modules/@typescript-eslint/scope-manager": {
|
||||||
"version": "8.26.1",
|
"version": "8.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz",
|
||||||
"integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==",
|
"integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "8.26.1",
|
"@typescript-eslint/types": "8.25.0",
|
||||||
"@typescript-eslint/visitor-keys": "8.26.1"
|
"@typescript-eslint/visitor-keys": "8.25.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
@@ -1601,14 +1591,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/type-utils": {
|
"node_modules/@typescript-eslint/type-utils": {
|
||||||
"version": "8.26.1",
|
"version": "8.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz",
|
||||||
"integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==",
|
"integrity": "sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/typescript-estree": "8.26.1",
|
"@typescript-eslint/typescript-estree": "8.25.0",
|
||||||
"@typescript-eslint/utils": "8.26.1",
|
"@typescript-eslint/utils": "8.25.0",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"ts-api-utils": "^2.0.1"
|
"ts-api-utils": "^2.0.1"
|
||||||
},
|
},
|
||||||
@@ -1621,13 +1611,13 @@
|
|||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"eslint": "^8.57.0 || ^9.0.0",
|
"eslint": "^8.57.0 || ^9.0.0",
|
||||||
"typescript": ">=4.8.4 <5.9.0"
|
"typescript": ">=4.8.4 <5.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/types": {
|
"node_modules/@typescript-eslint/types": {
|
||||||
"version": "8.26.1",
|
"version": "8.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz",
|
||||||
"integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==",
|
"integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -1639,14 +1629,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/typescript-estree": {
|
"node_modules/@typescript-eslint/typescript-estree": {
|
||||||
"version": "8.26.1",
|
"version": "8.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz",
|
||||||
"integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==",
|
"integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "8.26.1",
|
"@typescript-eslint/types": "8.25.0",
|
||||||
"@typescript-eslint/visitor-keys": "8.26.1",
|
"@typescript-eslint/visitor-keys": "8.25.0",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"fast-glob": "^3.3.2",
|
"fast-glob": "^3.3.2",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
@@ -1662,20 +1652,20 @@
|
|||||||
"url": "https://opencollective.com/typescript-eslint"
|
"url": "https://opencollective.com/typescript-eslint"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"typescript": ">=4.8.4 <5.9.0"
|
"typescript": ">=4.8.4 <5.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/utils": {
|
"node_modules/@typescript-eslint/utils": {
|
||||||
"version": "8.26.1",
|
"version": "8.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.25.0.tgz",
|
||||||
"integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==",
|
"integrity": "sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.4.0",
|
"@eslint-community/eslint-utils": "^4.4.0",
|
||||||
"@typescript-eslint/scope-manager": "8.26.1",
|
"@typescript-eslint/scope-manager": "8.25.0",
|
||||||
"@typescript-eslint/types": "8.26.1",
|
"@typescript-eslint/types": "8.25.0",
|
||||||
"@typescript-eslint/typescript-estree": "8.26.1"
|
"@typescript-eslint/typescript-estree": "8.25.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||||
@@ -1686,17 +1676,17 @@
|
|||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"eslint": "^8.57.0 || ^9.0.0",
|
"eslint": "^8.57.0 || ^9.0.0",
|
||||||
"typescript": ">=4.8.4 <5.9.0"
|
"typescript": ">=4.8.4 <5.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@typescript-eslint/visitor-keys": {
|
"node_modules/@typescript-eslint/visitor-keys": {
|
||||||
"version": "8.26.1",
|
"version": "8.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz",
|
||||||
"integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==",
|
"integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/types": "8.26.1",
|
"@typescript-eslint/types": "8.25.0",
|
||||||
"eslint-visitor-keys": "^4.2.0"
|
"eslint-visitor-keys": "^4.2.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -1721,9 +1711,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/coverage-v8": {
|
"node_modules/@vitest/coverage-v8": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.0.7.tgz",
|
||||||
"integrity": "sha512-y7SAKsQirsEJ2F8bulBck4DoluhI2EEgTimHd6EEUgJBGKy9tC25cpywh1MH4FvDGoG2Unt7+asVd1kj4qOSAw==",
|
"integrity": "sha512-Av8WgBJLTrfLOer0uy3CxjlVuWK4CzcLBndW1Nm2vI+3hZ2ozHututkfc7Blu1u6waeQ7J8gzPK/AsBRnWA5mQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1744,8 +1734,8 @@
|
|||||||
"url": "https://opencollective.com/vitest"
|
"url": "https://opencollective.com/vitest"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@vitest/browser": "3.0.8",
|
"@vitest/browser": "3.0.7",
|
||||||
"vitest": "3.0.8"
|
"vitest": "3.0.7"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"@vitest/browser": {
|
"@vitest/browser": {
|
||||||
@@ -1754,14 +1744,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/expect": {
|
"node_modules/@vitest/expect": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.7.tgz",
|
||||||
"integrity": "sha512-Xu6TTIavTvSSS6LZaA3EebWFr6tsoXPetOWNMOlc7LO88QVVBwq2oQWBoDiLCN6YTvNYsGSjqOO8CAdjom5DCQ==",
|
"integrity": "sha512-QP25f+YJhzPfHrHfYHtvRn+uvkCFCqFtW9CktfBxmB+25QqWsx7VB2As6f4GmwllHLDhXNHvqedwhvMmSnNmjw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/spy": "3.0.8",
|
"@vitest/spy": "3.0.7",
|
||||||
"@vitest/utils": "3.0.8",
|
"@vitest/utils": "3.0.7",
|
||||||
"chai": "^5.2.0",
|
"chai": "^5.2.0",
|
||||||
"tinyrainbow": "^2.0.0"
|
"tinyrainbow": "^2.0.0"
|
||||||
},
|
},
|
||||||
@@ -1770,13 +1760,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/mocker": {
|
"node_modules/@vitest/mocker": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.7.tgz",
|
||||||
"integrity": "sha512-n3LjS7fcW1BCoF+zWZxG7/5XvuYH+lsFg+BDwwAz0arIwHQJFUEsKBQ0BLU49fCxuM/2HSeBPHQD8WjgrxMfow==",
|
"integrity": "sha512-qui+3BLz9Eonx4EAuR/i+QlCX6AUZ35taDQgwGkK/Tw6/WgwodSrjN1X2xf69IA/643ZX5zNKIn2svvtZDrs4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/spy": "3.0.8",
|
"@vitest/spy": "3.0.7",
|
||||||
"estree-walker": "^3.0.3",
|
"estree-walker": "^3.0.3",
|
||||||
"magic-string": "^0.30.17"
|
"magic-string": "^0.30.17"
|
||||||
},
|
},
|
||||||
@@ -1797,9 +1787,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/pretty-format": {
|
"node_modules/@vitest/pretty-format": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.7.tgz",
|
||||||
"integrity": "sha512-BNqwbEyitFhzYMYHUVbIvepOyeQOSFA/NeJMIP9enMntkkxLgOcgABH6fjyXG85ipTgvero6noreavGIqfJcIg==",
|
"integrity": "sha512-CiRY0BViD/V8uwuEzz9Yapyao+M9M008/9oMOSQydwbwb+CMokEq3XVaF3XK/VWaOK0Jm9z7ENhybg70Gtxsmg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1810,13 +1800,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/runner": {
|
"node_modules/@vitest/runner": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.7.tgz",
|
||||||
"integrity": "sha512-c7UUw6gEcOzI8fih+uaAXS5DwjlBaCJUo7KJ4VvJcjL95+DSR1kova2hFuRt3w41KZEFcOEiq098KkyrjXeM5w==",
|
"integrity": "sha512-WeEl38Z0S2ZcuRTeyYqaZtm4e26tq6ZFqh5y8YD9YxfWuu0OFiGFUbnxNynwLjNRHPsXyee2M9tV7YxOTPZl2g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/utils": "3.0.8",
|
"@vitest/utils": "3.0.7",
|
||||||
"pathe": "^2.0.3"
|
"pathe": "^2.0.3"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
@@ -1824,13 +1814,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/snapshot": {
|
"node_modules/@vitest/snapshot": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.7.tgz",
|
||||||
"integrity": "sha512-x8IlMGSEMugakInj44nUrLSILh/zy1f2/BgH0UeHpNyOocG18M9CWVIFBaXPt8TrqVZWmcPjwfG/ht5tnpba8A==",
|
"integrity": "sha512-eqTUryJWQN0Rtf5yqCGTQWsCFOQe4eNz5Twsu21xYEcnFJtMU5XvmG0vgebhdLlrHQTSq5p8vWHJIeJQV8ovsA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/pretty-format": "3.0.8",
|
"@vitest/pretty-format": "3.0.7",
|
||||||
"magic-string": "^0.30.17",
|
"magic-string": "^0.30.17",
|
||||||
"pathe": "^2.0.3"
|
"pathe": "^2.0.3"
|
||||||
},
|
},
|
||||||
@@ -1839,9 +1829,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/spy": {
|
"node_modules/@vitest/spy": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.7.tgz",
|
||||||
"integrity": "sha512-MR+PzJa+22vFKYb934CejhR4BeRpMSoxkvNoDit68GQxRLSf11aT6CTj3XaqUU9rxgWJFnqicN/wxw6yBRkI1Q==",
|
"integrity": "sha512-4T4WcsibB0B6hrKdAZTM37ekuyFZt2cGbEGd2+L0P8ov15J1/HUsUaqkXEQPNAWr4BtPPe1gI+FYfMHhEKfR8w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1852,13 +1842,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/utils": {
|
"node_modules/@vitest/utils": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.7.tgz",
|
||||||
"integrity": "sha512-nkBC3aEhfX2PdtQI/QwAWp8qZWwzASsU4Npbcd5RdMPBSSLCpkZp52P3xku3s3uA0HIEhGvEcF8rNkBsz9dQ4Q==",
|
"integrity": "sha512-xePVpCRfooFX3rANQjwoditoXgWb1MaFbzmGuPP59MK6i13mrnDw/yEIyJudLeW6/38mCNcwCiJIGmpDPibAIg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/pretty-format": "3.0.8",
|
"@vitest/pretty-format": "3.0.7",
|
||||||
"loupe": "^3.1.3",
|
"loupe": "^3.1.3",
|
||||||
"tinyrainbow": "^2.0.0"
|
"tinyrainbow": "^2.0.0"
|
||||||
},
|
},
|
||||||
@@ -2379,19 +2369,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint": {
|
"node_modules/eslint": {
|
||||||
"version": "9.22.0",
|
"version": "9.21.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz",
|
||||||
"integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==",
|
"integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.2.0",
|
"@eslint-community/eslint-utils": "^4.2.0",
|
||||||
"@eslint-community/regexpp": "^4.12.1",
|
"@eslint-community/regexpp": "^4.12.1",
|
||||||
"@eslint/config-array": "^0.19.2",
|
"@eslint/config-array": "^0.19.2",
|
||||||
"@eslint/config-helpers": "^0.1.0",
|
|
||||||
"@eslint/core": "^0.12.0",
|
"@eslint/core": "^0.12.0",
|
||||||
"@eslint/eslintrc": "^3.3.0",
|
"@eslint/eslintrc": "^3.3.0",
|
||||||
"@eslint/js": "9.22.0",
|
"@eslint/js": "9.21.0",
|
||||||
"@eslint/plugin-kit": "^0.2.7",
|
"@eslint/plugin-kit": "^0.2.7",
|
||||||
"@humanfs/node": "^0.16.6",
|
"@humanfs/node": "^0.16.6",
|
||||||
"@humanwhocodes/module-importer": "^1.0.1",
|
"@humanwhocodes/module-importer": "^1.0.1",
|
||||||
@@ -2403,7 +2392,7 @@
|
|||||||
"cross-spawn": "^7.0.6",
|
"cross-spawn": "^7.0.6",
|
||||||
"debug": "^4.3.2",
|
"debug": "^4.3.2",
|
||||||
"escape-string-regexp": "^4.0.0",
|
"escape-string-regexp": "^4.0.0",
|
||||||
"eslint-scope": "^8.3.0",
|
"eslint-scope": "^8.2.0",
|
||||||
"eslint-visitor-keys": "^4.2.0",
|
"eslint-visitor-keys": "^4.2.0",
|
||||||
"espree": "^10.3.0",
|
"espree": "^10.3.0",
|
||||||
"esquery": "^1.5.0",
|
"esquery": "^1.5.0",
|
||||||
@@ -2440,13 +2429,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-config-prettier": {
|
"node_modules/eslint-config-prettier": {
|
||||||
"version": "10.1.1",
|
"version": "10.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.2.tgz",
|
||||||
"integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==",
|
"integrity": "sha512-1105/17ZIMjmCOJOPNfVdbXafLCLj3hPmkmB7dLgt7XsQ/zkxSuDerE/xgO3RxoHysR1N1whmquY0lSn2O0VLg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
"eslint-config-prettier": "bin/cli.js"
|
"eslint-config-prettier": "build/bin/cli.js"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"eslint": ">=7.0.0"
|
"eslint": ">=7.0.0"
|
||||||
@@ -2531,9 +2520,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-scope": {
|
"node_modules/eslint-scope": {
|
||||||
"version": "8.3.0",
|
"version": "8.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz",
|
||||||
"integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
|
"integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "BSD-2-Clause",
|
"license": "BSD-2-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -3628,9 +3617,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prettier": {
|
"node_modules/prettier": {
|
||||||
"version": "3.5.3",
|
"version": "3.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz",
|
||||||
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
"integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -4289,9 +4278,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.8.2",
|
"version": "5.7.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
|
||||||
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
|
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -4360,9 +4349,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "6.2.1",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-6.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz",
|
||||||
"integrity": "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==",
|
"integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -4432,9 +4421,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite-node": {
|
"node_modules/vite-node": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.7.tgz",
|
||||||
"integrity": "sha512-6PhR4H9VGlcwXZ+KWCdMqbtG649xCPZqfI9j2PsK1FcXgEzro5bGHcVKFCTqPLaNKZES8Evqv4LwvZARsq5qlg==",
|
"integrity": "sha512-2fX0QwX4GkkkpULXdT1Pf4q0tC1i1lFOyseKoonavXUNlQ77KpW2XqBGGNIm/J4Ows4KxgGJzDguYVPKwG/n5A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -4475,19 +4464,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vitest": {
|
"node_modules/vitest": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.7.tgz",
|
||||||
"integrity": "sha512-dfqAsNqRGUc8hB9OVR2P0w8PZPEckti2+5rdZip0WIz9WW0MnImJ8XiR61QhqLa92EQzKP2uPkzenKOAHyEIbA==",
|
"integrity": "sha512-IP7gPK3LS3Fvn44x30X1dM9vtawm0aesAa2yBIZ9vQf+qB69NXC5776+Qmcr7ohUXIQuLhk7xQR0aSUIDPqavg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/expect": "3.0.8",
|
"@vitest/expect": "3.0.7",
|
||||||
"@vitest/mocker": "3.0.8",
|
"@vitest/mocker": "3.0.7",
|
||||||
"@vitest/pretty-format": "^3.0.8",
|
"@vitest/pretty-format": "^3.0.7",
|
||||||
"@vitest/runner": "3.0.8",
|
"@vitest/runner": "3.0.7",
|
||||||
"@vitest/snapshot": "3.0.8",
|
"@vitest/snapshot": "3.0.7",
|
||||||
"@vitest/spy": "3.0.8",
|
"@vitest/spy": "3.0.7",
|
||||||
"@vitest/utils": "3.0.8",
|
"@vitest/utils": "3.0.7",
|
||||||
"chai": "^5.2.0",
|
"chai": "^5.2.0",
|
||||||
"debug": "^4.4.0",
|
"debug": "^4.4.0",
|
||||||
"expect-type": "^1.1.0",
|
"expect-type": "^1.1.0",
|
||||||
@@ -4499,7 +4488,7 @@
|
|||||||
"tinypool": "^1.0.2",
|
"tinypool": "^1.0.2",
|
||||||
"tinyrainbow": "^2.0.0",
|
"tinyrainbow": "^2.0.0",
|
||||||
"vite": "^5.0.0 || ^6.0.0",
|
"vite": "^5.0.0 || ^6.0.0",
|
||||||
"vite-node": "3.0.8",
|
"vite-node": "3.0.7",
|
||||||
"why-is-node-running": "^2.3.0"
|
"why-is-node-running": "^2.3.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -4515,8 +4504,8 @@
|
|||||||
"@edge-runtime/vm": "*",
|
"@edge-runtime/vm": "*",
|
||||||
"@types/debug": "^4.1.12",
|
"@types/debug": "^4.1.12",
|
||||||
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
|
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
|
||||||
"@vitest/browser": "3.0.8",
|
"@vitest/browser": "3.0.7",
|
||||||
"@vitest/ui": "3.0.8",
|
"@vitest/ui": "3.0.7",
|
||||||
"happy-dom": "*",
|
"happy-dom": "*",
|
||||||
"jsdom": "*"
|
"jsdom": "*"
|
||||||
},
|
},
|
||||||
@@ -4545,9 +4534,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vitest-fetch-mock": {
|
"node_modules/vitest-fetch-mock": {
|
||||||
"version": "0.4.5",
|
"version": "0.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/vitest-fetch-mock/-/vitest-fetch-mock-0.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/vitest-fetch-mock/-/vitest-fetch-mock-0.4.4.tgz",
|
||||||
"integrity": "sha512-nhWdCQIGtaSEUVl96pMm0WggyDGPDv5FUy/Q9Hx3cs2RGmh3Q/uRsLClGbdG3kXBkJ3br5yTUjB2MeW25TwdOA==",
|
"integrity": "sha512-i2RNEAKBgnLWwj5DVz8ouzaHaPVg1xaYgAUmU5p+baJ149upnO+yJLPchAiY9ij8hf0PDkJVVke1pftBxmT05g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.54",
|
"version": "2.2.53",
|
||||||
"description": "Command Line Interface (CLI) for Immich",
|
"description": "Command Line Interface (CLI) for Immich",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": "./dist/index.js",
|
"exports": "./dist/index.js",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/micromatch": "^4.0.9",
|
"@types/micromatch": "^4.0.9",
|
||||||
"@types/mock-fs": "^4.13.1",
|
"@types/mock-fs": "^4.13.1",
|
||||||
"@types/node": "^22.13.10",
|
"@types/node": "^22.13.9",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
||||||
"@typescript-eslint/parser": "^8.15.0",
|
"@typescript-eslint/parser": "^8.15.0",
|
||||||
"@vitest/coverage-v8": "^3.0.0",
|
"@vitest/coverage-v8": "^3.0.0",
|
||||||
|
|||||||
@@ -95,12 +95,12 @@ services:
|
|||||||
image: immich-machine-learning-dev:latest
|
image: immich-machine-learning-dev:latest
|
||||||
# extends:
|
# extends:
|
||||||
# file: hwaccel.ml.yml
|
# file: hwaccel.ml.yml
|
||||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference
|
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl, rknn] for accelerated inference
|
||||||
build:
|
build:
|
||||||
context: ../machine-learning
|
context: ../machine-learning
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
- DEVICE=cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference
|
- DEVICE=cpu # set to one of [armnn, cuda, openvino, openvino-wsl, rknn] for accelerated inference
|
||||||
ports:
|
ports:
|
||||||
- 3003:3003
|
- 3003:3003
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -38,12 +38,12 @@ services:
|
|||||||
image: immich-machine-learning:latest
|
image: immich-machine-learning:latest
|
||||||
# extends:
|
# extends:
|
||||||
# file: hwaccel.ml.yml
|
# file: hwaccel.ml.yml
|
||||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference
|
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl, rknn] for accelerated inference
|
||||||
build:
|
build:
|
||||||
context: ../machine-learning
|
context: ../machine-learning
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
- DEVICE=cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference
|
- DEVICE=cpu # set to one of [armnn, cuda, openvino, openvino-wsl, rknn] for accelerated inference
|
||||||
ports:
|
ports:
|
||||||
- 3003:3003
|
- 3003:3003
|
||||||
volumes:
|
volumes:
|
||||||
@@ -90,7 +90,7 @@ services:
|
|||||||
container_name: immich_prometheus
|
container_name: immich_prometheus
|
||||||
ports:
|
ports:
|
||||||
- 9090:9090
|
- 9090:9090
|
||||||
image: prom/prometheus@sha256:502ad90314c7485892ce696cb14a99fceab9fc27af29f4b427f41bd39701a199
|
image: prom/prometheus@sha256:6927e0919a144aa7616fd0137d4816816d42f6b816de3af269ab065250859a62
|
||||||
volumes:
|
volumes:
|
||||||
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
||||||
- prometheus-data:/prometheus
|
- prometheus-data:/prometheus
|
||||||
|
|||||||
@@ -33,12 +33,12 @@ services:
|
|||||||
|
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
container_name: immich_machine_learning
|
container_name: immich_machine_learning
|
||||||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
# For hardware acceleration, add one of -[armnn, cuda, openvino, rknn] to the image tag.
|
||||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
||||||
# file: hwaccel.ml.yml
|
# 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
|
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||||
volumes:
|
volumes:
|
||||||
- model-cache:/cache
|
- model-cache:/cache
|
||||||
env_file:
|
env_file:
|
||||||
|
|||||||
@@ -33,13 +33,6 @@ services:
|
|||||||
capabilities:
|
capabilities:
|
||||||
- gpu
|
- gpu
|
||||||
|
|
||||||
rocm:
|
|
||||||
group_add:
|
|
||||||
- video
|
|
||||||
devices:
|
|
||||||
- /dev/dri:/dev/dri
|
|
||||||
- /dev/kfd:/dev/kfd
|
|
||||||
|
|
||||||
openvino:
|
openvino:
|
||||||
device_cgroup_rules:
|
device_cgroup_rules:
|
||||||
- 'c 189:* rmw'
|
- 'c 189:* rmw'
|
||||||
|
|||||||
+1
-1
@@ -262,7 +262,7 @@ No, this is not supported. Only models listed in the [Hugging Face][huggingface]
|
|||||||
|
|
||||||
### I want to be able to search in other languages besides English. How can I do that?
|
### I want to be able to search in other languages besides English. How can I do that?
|
||||||
|
|
||||||
You can change to a multilingual CLIP model. See [here](/docs/features/searching#clip-models) for instructions.
|
You can change to a multilingual CLIP model. See [here](/docs/features/searching#clip-model) for instructions.
|
||||||
|
|
||||||
### Does Immich support Facial Recognition for videos?
|
### Does Immich support Facial Recognition for videos?
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ The `immich-server` docker image comes preinstalled with an administrative CLI (
|
|||||||
| `enable-oauth-login` | Enable OAuth login |
|
| `enable-oauth-login` | Enable OAuth login |
|
||||||
| `disable-oauth-login` | Disable OAuth login |
|
| `disable-oauth-login` | Disable OAuth login |
|
||||||
| `list-users` | List Immich users |
|
| `list-users` | List Immich users |
|
||||||
| `version` | Print Immich version |
|
|
||||||
|
|
||||||
## How to run a command
|
## How to run a command
|
||||||
|
|
||||||
@@ -81,10 +80,3 @@ immich-admin list-users
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
Print Immich Version
|
|
||||||
|
|
||||||
```
|
|
||||||
immich-admin version
|
|
||||||
v1.129.0
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ The `immich-server` container will need access to the gallery. Modify your docke
|
|||||||
+ - /mnt/nas/christmas-trip:/mnt/media/christmas-trip:ro
|
+ - /mnt/nas/christmas-trip:/mnt/media/christmas-trip:ro
|
||||||
+ - /home/user/old-pics:/mnt/media/old-pics:ro
|
+ - /home/user/old-pics:/mnt/media/old-pics:ro
|
||||||
+ - /mnt/media/videos:/mnt/media/videos:ro
|
+ - /mnt/media/videos:/mnt/media/videos:ro
|
||||||
+ - /mnt/media/videos2:/mnt/media/videos2 # WARNING: Immich will be able to delete the files in this folder, as it does not end with :ro
|
+ - /mnt/media/videos2:/mnt/media/videos2 # the files in this folder can be deleted, as it does not end with :ro
|
||||||
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # import path in Windows system.
|
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # import path in Windows system.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||||||
|
|
||||||
- ARM NN (Mali)
|
- ARM NN (Mali)
|
||||||
- CUDA (NVIDIA GPUs with [compute capability](https://developer.nvidia.com/cuda-gpus) 5.2 or higher)
|
- CUDA (NVIDIA GPUs with [compute capability](https://developer.nvidia.com/cuda-gpus) 5.2 or higher)
|
||||||
- ROCm (AMD GPUs)
|
|
||||||
- OpenVINO (Intel GPUs such as Iris Xe and Arc)
|
- OpenVINO (Intel GPUs such as Iris Xe and Arc)
|
||||||
- RKNN (Rockchip)
|
- RKNN (Rockchip)
|
||||||
|
|
||||||
@@ -45,12 +44,6 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||||||
- The installed driver must be >= 535 (it must support CUDA 12.2).
|
- The installed driver must be >= 535 (it must support CUDA 12.2).
|
||||||
- On Linux (except for WSL2), you also need to have [NVIDIA Container Toolkit][nvct] installed.
|
- On Linux (except for WSL2), you also need to have [NVIDIA Container Toolkit][nvct] installed.
|
||||||
|
|
||||||
#### ROCm
|
|
||||||
|
|
||||||
- The GPU must be supported by ROCm. If it isn't officially supported, you can attempt to use the `HSA_OVERRIDE_GFX_VERSION` environmental variable: `HSA_OVERRIDE_GFX_VERSION=<a supported version, e.g. 10.3.0>`. If this doesn't work, you might need to also set `HSA_USE_SVM=0`.
|
|
||||||
- The ROCm image is quite large and requires at least 35GiB of free disk space. However, pulling later updates to the service through Docker will generally only amount to a few hundred megabytes as the rest will be cached.
|
|
||||||
- This backend is new and may experience some issues. For example, GPU power consumption can be higher than usual after running inference, even if the machine learning service is idle. In this case, it will only go back to normal after being idle for 5 minutes (configurable with the [MACHINE_LEARNING_MODEL_TTL](/docs/install/environment-variables) setting).
|
|
||||||
|
|
||||||
#### OpenVINO
|
#### OpenVINO
|
||||||
|
|
||||||
- Integrated GPUs are more likely to experience issues than discrete GPUs, especially for older processors or servers with low RAM.
|
- Integrated GPUs are more likely to experience issues than discrete GPUs, especially for older processors or servers with low RAM.
|
||||||
@@ -71,12 +64,12 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||||||
|
|
||||||
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`.
|
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.
|
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] to the `image` section's tag at the end of the line.
|
3. Still in `immich-machine-learning`, add one of -[armnn, cuda, openvino] to the `image` section's tag at the end of the line.
|
||||||
4. Redeploy the `immich-machine-learning` container with these updated settings.
|
4. Redeploy the `immich-machine-learning` container with these updated settings.
|
||||||
|
|
||||||
### Confirming Device Usage
|
### Confirming Device Usage
|
||||||
|
|
||||||
You can confirm the device is being recognized and used by checking its utilization. There are many tools to display this, such as `nvtop` for NVIDIA or Intel, `intel_gpu_top` for Intel, and `radeontop` for AMD.
|
You can confirm the device is being recognized and used by checking its utilization. There are many tools to display this, such as `nvtop` for NVIDIA or Intel and `intel_gpu_top` for Intel.
|
||||||
|
|
||||||
You can also check the logs of the `immich-machine-learning` container. When a Smart Search or Face Detection job begins, or when you search with text in Immich, you should either see a log for `Available ORT providers` containing the relevant provider (e.g. `CUDAExecutionProvider` in the case of CUDA), or a `Loaded ANN model` log entry without errors in the case of ARM NN.
|
You can also check the logs of the `immich-machine-learning` container. When a Smart Search or Face Detection job begins, or when you search with text in Immich, you should either see a log for `Available ORT providers` containing the relevant provider (e.g. `CUDAExecutionProvider` in the case of CUDA), or a `Loaded ANN model` log entry without errors in the case of ARM NN.
|
||||||
|
|
||||||
|
|||||||
+8
-1133
File diff suppressed because it is too large
Load Diff
@@ -23,12 +23,12 @@ name: immich_remote_ml
|
|||||||
services:
|
services:
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
container_name: immich_machine_learning
|
container_name: immich_machine_learning
|
||||||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino] to the image tag.
|
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
|
||||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
# extends:
|
# extends:
|
||||||
# file: hwaccel.ml.yml
|
# file: hwaccel.ml.yml
|
||||||
# service: # set to one of [armnn, cuda, rocm, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
# service: # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||||
volumes:
|
volumes:
|
||||||
- model-cache:/cache
|
- model-cache:/cache
|
||||||
restart: always
|
restart: always
|
||||||
|
|||||||
Generated
+12
-12
@@ -5308,9 +5308,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/autoprefixer": {
|
"node_modules/autoprefixer": {
|
||||||
"version": "10.4.21",
|
"version": "10.4.20",
|
||||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
|
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
|
||||||
"integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
|
"integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -5327,11 +5327,11 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"browserslist": "^4.24.4",
|
"browserslist": "^4.23.3",
|
||||||
"caniuse-lite": "^1.0.30001702",
|
"caniuse-lite": "^1.0.30001646",
|
||||||
"fraction.js": "^4.3.7",
|
"fraction.js": "^4.3.7",
|
||||||
"normalize-range": "^0.1.2",
|
"normalize-range": "^0.1.2",
|
||||||
"picocolors": "^1.1.1",
|
"picocolors": "^1.0.1",
|
||||||
"postcss-value-parser": "^4.2.0"
|
"postcss-value-parser": "^4.2.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -5781,9 +5781,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001706",
|
"version": "1.0.30001695",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz",
|
||||||
"integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==",
|
"integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -15734,9 +15734,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prettier": {
|
"node_modules/prettier": {
|
||||||
"version": "3.5.3",
|
"version": "3.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz",
|
||||||
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
"integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Link from '@docusaurus/Link';
|
import Link from '@docusaurus/Link';
|
||||||
import Layout from '@theme/Layout';
|
import Layout from '@theme/Layout';
|
||||||
|
import { useColorMode } from '@docusaurus/theme-common';
|
||||||
import { discordPath, discordViewBox } from '@site/src/components/svg-paths';
|
import { discordPath, discordViewBox } from '@site/src/components/svg-paths';
|
||||||
import ThemedImage from '@theme/ThemedImage';
|
|
||||||
import Icon from '@mdi/react';
|
import Icon from '@mdi/react';
|
||||||
function HomepageHeader() {
|
function HomepageHeader() {
|
||||||
|
const { isDarkTheme } = useColorMode();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header>
|
<header>
|
||||||
<div className="top-[calc(12%)] md:top-[calc(30%)] h-screen w-full absolute -z-10">
|
<div className="top-[calc(12%)] md:top-[calc(30%)] h-screen w-full absolute -z-10">
|
||||||
@@ -12,8 +14,8 @@ function HomepageHeader() {
|
|||||||
<div className="w-full h-[120vh] absolute left-0 top-0 backdrop-blur-3xl bg-immich-bg/40 dark:bg-transparent"></div>
|
<div className="w-full h-[120vh] absolute left-0 top-0 backdrop-blur-3xl bg-immich-bg/40 dark:bg-transparent"></div>
|
||||||
</div>
|
</div>
|
||||||
<section className="text-center pt-12 sm:pt-24 bg-immich-bg/50 dark:bg-immich-dark-bg/80">
|
<section className="text-center pt-12 sm:pt-24 bg-immich-bg/50 dark:bg-immich-dark-bg/80">
|
||||||
<ThemedImage
|
<img
|
||||||
sources={{ dark: 'img/logomark-dark.svg', light: 'img/logomark-light.svg' }}
|
src={isDarkTheme ? 'img/logomark-dark.svg' : 'img/logomark-light.svg'}
|
||||||
className="h-[115px] w-[115px] mb-2 antialiased rounded-none"
|
className="h-[115px] w-[115px] mb-2 antialiased rounded-none"
|
||||||
alt="Immich logo"
|
alt="Immich logo"
|
||||||
/>
|
/>
|
||||||
@@ -33,6 +35,7 @@ function HomepageHeader() {
|
|||||||
sacrificing your privacy.
|
sacrificing your privacy.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex flex-col sm:flex-row place-items-center place-content-center mt-9 gap-4 ">
|
<div className="flex flex-col sm:flex-row place-items-center place-content-center mt-9 gap-4 ">
|
||||||
<Link
|
<Link
|
||||||
className="flex place-items-center place-content-center py-3 px-8 border bg-immich-primary dark:bg-immich-dark-primary rounded-xl no-underline hover:no-underline text-white hover:text-gray-50 dark:text-immich-dark-bg font-bold uppercase"
|
className="flex place-items-center place-content-center py-3 px-8 border bg-immich-primary dark:bg-immich-dark-primary rounded-xl no-underline hover:no-underline text-white hover:text-gray-50 dark:text-immich-dark-bg font-bold uppercase"
|
||||||
@@ -55,6 +58,7 @@ function HomepageHeader() {
|
|||||||
Buy Merch
|
Buy Merch
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="my-12 flex gap-1 font-medium place-items-center place-content-center text-immich-primary dark:text-immich-dark-primary">
|
<div className="my-12 flex gap-1 font-medium place-items-center place-content-center text-immich-primary dark:text-immich-dark-primary">
|
||||||
<Icon
|
<Icon
|
||||||
path={discordPath}
|
path={discordPath}
|
||||||
@@ -63,19 +67,22 @@ function HomepageHeader() {
|
|||||||
/>
|
/>
|
||||||
<Link to="https://discord.immich.app/">Join our Discord</Link>
|
<Link to="https://discord.immich.app/">Join our Discord</Link>
|
||||||
</div>
|
</div>
|
||||||
<ThemedImage
|
<img
|
||||||
sources={{ dark: '/img/screenshot-dark.webp', light: '/img/screenshot-light.webp' }}
|
src={isDarkTheme ? '/img/screenshot-dark.webp' : '/img/screenshot-light.webp'}
|
||||||
alt="screenshots"
|
alt="screenshots"
|
||||||
className="w-[95%] lg:w-[85%] xl:w-[70%] 2xl:w-[60%] "
|
className="w-[95%] lg:w-[85%] xl:w-[70%] 2xl:w-[60%] "
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="mx-[25%] m-auto my-14 md:my-28">
|
<div className="mx-[25%] m-auto my-14 md:my-28">
|
||||||
<hr className="border bg-gray-500 dark:bg-gray-400" />
|
<hr className="border bg-gray-500 dark:bg-gray-400" />
|
||||||
</div>
|
</div>
|
||||||
<ThemedImage
|
|
||||||
sources={{ dark: 'img/logomark-dark.svg', light: 'img/logomark-light.svg' }}
|
<img
|
||||||
|
src={isDarkTheme ? 'img/logomark-dark.svg' : 'img/logomark-light.svg'}
|
||||||
className="h-[115px] w-[115px] mb-2 antialiased rounded-none"
|
className="h-[115px] w-[115px] mb-2 antialiased rounded-none"
|
||||||
alt="Immich logo"
|
alt="Immich logo"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<p className="font-bold text-2xl md:text-5xl ">Download the mobile app</p>
|
<p className="font-bold text-2xl md:text-5xl ">Download the mobile app</p>
|
||||||
<p className="text-lg">
|
<p className="text-lg">
|
||||||
@@ -94,8 +101,9 @@ function HomepageHeader() {
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ThemedImage
|
|
||||||
sources={{ dark: '/img/app-qr-code-dark.svg', light: '/img/app-qr-code-light.svg' }}
|
<img
|
||||||
|
src={isDarkTheme ? '/img/app-qr-code-dark.svg' : '/img/app-qr-code-light.svg'}
|
||||||
alt="app qr code"
|
alt="app qr code"
|
||||||
width={'150px'}
|
width={'150px'}
|
||||||
className="shadow-lg p-3 my-8 dark:bg-immich-dark-bg "
|
className="shadow-lg p-3 my-8 dark:bg-immich-dark-bg "
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Link from '@docusaurus/Link';
|
import Link from '@docusaurus/Link';
|
||||||
import Layout from '@theme/Layout';
|
import Layout from '@theme/Layout';
|
||||||
|
import { useColorMode } from '@docusaurus/theme-common';
|
||||||
function HomepageHeader() {
|
function HomepageHeader() {
|
||||||
|
const { isDarkTheme } = useColorMode();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header>
|
<header>
|
||||||
<section className="max-w-[900px] m-4 p-4 md:p-6 md:m-auto md:my-12 border border-red-400 rounded-2xl bg-slate-200 dark:bg-immich-dark-gray">
|
<section className="max-w-[900px] m-4 p-4 md:p-6 md:m-auto md:my-12 border border-red-400 rounded-2xl bg-slate-200 dark:bg-immich-dark-gray">
|
||||||
|
|||||||
Vendored
-4
@@ -1,8 +1,4 @@
|
|||||||
[
|
[
|
||||||
{
|
|
||||||
"label": "v1.130.0",
|
|
||||||
"url": "https://v1.130.0.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"label": "v1.129.0",
|
"label": "v1.129.0",
|
||||||
"url": "https://v1.129.0.archive.immich.app"
|
"url": "https://v1.129.0.archive.immich.app"
|
||||||
|
|||||||
Generated
+339
-350
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "immich-e2e",
|
"name": "immich-e2e",
|
||||||
"version": "1.130.0",
|
"version": "1.129.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"@immich/sdk": "file:../open-api/typescript-sdk",
|
"@immich/sdk": "file:../open-api/typescript-sdk",
|
||||||
"@playwright/test": "^1.44.1",
|
"@playwright/test": "^1.44.1",
|
||||||
"@types/luxon": "^3.4.2",
|
"@types/luxon": "^3.4.2",
|
||||||
"@types/node": "^22.13.10",
|
"@types/node": "^22.13.9",
|
||||||
"@types/oidc-provider": "^8.5.1",
|
"@types/oidc-provider": "^8.5.1",
|
||||||
"@types/pg": "^8.11.0",
|
"@types/pg": "^8.11.0",
|
||||||
"@types/pngjs": "^6.0.4",
|
"@types/pngjs": "^6.0.4",
|
||||||
|
|||||||
+3
-3
@@ -493,7 +493,7 @@ export const utils = {
|
|||||||
value: accessToken,
|
value: accessToken,
|
||||||
domain,
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 2_058_028_213,
|
expires: 1_742_402_728,
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
secure: false,
|
secure: false,
|
||||||
sameSite: 'Lax',
|
sameSite: 'Lax',
|
||||||
@@ -503,7 +503,7 @@ export const utils = {
|
|||||||
value: 'password',
|
value: 'password',
|
||||||
domain,
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 2_058_028_213,
|
expires: 1_742_402_728,
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
secure: false,
|
secure: false,
|
||||||
sameSite: 'Lax',
|
sameSite: 'Lax',
|
||||||
@@ -513,7 +513,7 @@ export const utils = {
|
|||||||
value: 'true',
|
value: 'true',
|
||||||
domain,
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 2_058_028_213,
|
expires: 1_742_402_728,
|
||||||
httpOnly: false,
|
httpOnly: false,
|
||||||
secure: false,
|
secure: false,
|
||||||
sameSite: 'Lax',
|
sameSite: 'Lax',
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ test.describe('Shared Links', () => {
|
|||||||
await page.goto(`/share/${sharedLink.key}`);
|
await page.goto(`/share/${sharedLink.key}`);
|
||||||
await page.getByRole('heading', { name: 'Test Album' }).waitFor();
|
await page.getByRole('heading', { name: 'Test Album' }).waitFor();
|
||||||
await page.locator(`[data-asset-id="${asset.id}"]`).hover();
|
await page.locator(`[data-asset-id="${asset.id}"]`).hover();
|
||||||
await page.waitForSelector('[data-group] svg');
|
await page.waitForSelector('#asset-group-by-date svg');
|
||||||
await page.getByRole('checkbox').click();
|
await page.getByRole('checkbox').click();
|
||||||
await page.getByRole('button', { name: 'Download' }).click();
|
await page.getByRole('button', { name: 'Download' }).click();
|
||||||
await page.getByText('DOWNLOADING', { exact: true }).waitFor();
|
await page.getByText('DOWNLOADING', { exact: true }).waitFor();
|
||||||
|
|||||||
@@ -1082,9 +1082,7 @@
|
|||||||
"remove_url": "Remove URL",
|
"remove_url": "Remove URL",
|
||||||
"remove_user": "Remove user",
|
"remove_user": "Remove user",
|
||||||
"removed_api_key": "Removed API Key: {name}",
|
"removed_api_key": "Removed API Key: {name}",
|
||||||
"remove_memory": "Remove memory",
|
|
||||||
"removed_memory": "Removed memory",
|
"removed_memory": "Removed memory",
|
||||||
"remove_photo_from_memory": "Remove photo from this memory",
|
|
||||||
"removed_photo_from_memory": "Removed photo from memory",
|
"removed_photo_from_memory": "Removed photo from memory",
|
||||||
"removed_from_archive": "Removed from archive",
|
"removed_from_archive": "Removed from archive",
|
||||||
"removed_from_favorites": "Removed from favorites",
|
"removed_from_favorites": "Removed from favorites",
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ onnx__*
|
|||||||
*.pos_embed
|
*.pos_embed
|
||||||
vocab.txt
|
vocab.txt
|
||||||
export/immich_model_exporter/models/**/README.md
|
export/immich_model_exporter/models/**/README.md
|
||||||
export/**/results/*.json
|
|
||||||
export/**/root
|
|
||||||
*.armnn
|
|
||||||
tokenizer.json
|
tokenizer.json
|
||||||
tokenizer_config.json
|
tokenizer_config.json
|
||||||
special_tokens_map.json
|
special_tokens_map.json
|
||||||
|
|||||||
+13
-49
@@ -1,6 +1,6 @@
|
|||||||
ARG DEVICE=cpu
|
ARG DEVICE=cpu
|
||||||
|
|
||||||
FROM python:3.11-bookworm@sha256:d270285656e8f061ae0004297df62ac4b26d5cef9408b9cc9a5bf08c2cd8d60c AS builder-cpu
|
FROM python:3.11-bookworm@sha256:68a8863d0625f42d47e0684f33ca02f19d6094ef859a8af237aaf645195ed477 AS builder-cpu
|
||||||
|
|
||||||
FROM builder-cpu AS builder-openvino
|
FROM builder-cpu AS builder-openvino
|
||||||
|
|
||||||
@@ -17,63 +17,31 @@ RUN mkdir /opt/armnn && \
|
|||||||
|
|
||||||
FROM builder-cpu AS builder-rknn
|
FROM builder-cpu AS builder-rknn
|
||||||
|
|
||||||
# Warning: 25GiB+ disk space required to pull this image
|
|
||||||
# TODO: find a way to reduce the image size
|
|
||||||
FROM rocm/dev-ubuntu-22.04:6.3.4-complete@sha256:1f7e92ca7e3a3785680473329ed1091fc99db3e90fcb3a1688f2933e870ed76b AS builder-rocm
|
|
||||||
|
|
||||||
WORKDIR /code
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends wget git python3.10-venv
|
|
||||||
RUN wget -nv https://github.com/Kitware/CMake/releases/download/v3.30.1/cmake-3.30.1-linux-x86_64.sh && \
|
|
||||||
chmod +x cmake-3.30.1-linux-x86_64.sh && \
|
|
||||||
mkdir -p /code/cmake-3.30.1-linux-x86_64 && \
|
|
||||||
./cmake-3.30.1-linux-x86_64.sh --skip-license --prefix=/code/cmake-3.30.1-linux-x86_64 && \
|
|
||||||
rm cmake-3.30.1-linux-x86_64.sh
|
|
||||||
|
|
||||||
ENV PATH=/code/cmake-3.30.1-linux-x86_64/bin:${PATH}
|
|
||||||
|
|
||||||
RUN git clone --single-branch --branch v1.20.1 --recursive "https://github.com/Microsoft/onnxruntime" onnxruntime
|
|
||||||
WORKDIR /code/onnxruntime
|
|
||||||
# Fix for multi-threading based on comments in https://github.com/microsoft/onnxruntime/pull/19567
|
|
||||||
# TODO: find a way to fix this without disabling algo caching
|
|
||||||
COPY ./patches/* /tmp/
|
|
||||||
RUN git apply /tmp/*.patch
|
|
||||||
|
|
||||||
RUN /bin/sh ./dockerfiles/scripts/install_common_deps.sh
|
|
||||||
# Note: the `parallel` setting uses a substantial amount of RAM
|
|
||||||
RUN ./build.sh --allow_running_as_root --config Release --build_wheel --update --build --parallel 17 --cmake_extra_defines\
|
|
||||||
ONNXRUNTIME_VERSION=1.20.1 --skip_tests --use_rocm --rocm_home=/opt/rocm
|
|
||||||
RUN mv /code/onnxruntime/build/Linux/Release/dist/*.whl /opt/
|
|
||||||
|
|
||||||
FROM builder-${DEVICE} AS builder
|
FROM builder-${DEVICE} AS builder
|
||||||
|
|
||||||
ARG DEVICE
|
ARG DEVICE
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||||
PYTHONUNBUFFERED=1 \
|
PYTHONUNBUFFERED=1
|
||||||
VIRTUAL_ENV=/opt/venv
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends g++
|
RUN apt-get update && apt-get install -y --no-install-recommends g++
|
||||||
|
|
||||||
COPY --from=ghcr.io/astral-sh/uv:latest@sha256:cb641b1979723dc5ab87d61f079000009edc107d30ae7cbb6e7419fdac044e9f /uv /uvx /bin/
|
COPY --from=ghcr.io/astral-sh/uv:latest@sha256:562193a4a9d398f8aedddcb223e583da394ee735de36b5815f8f1d22cb49be15 /uv /uvx /bin/
|
||||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||||
--mount=type=bind,source=uv.lock,target=uv.lock \
|
--mount=type=bind,source=uv.lock,target=uv.lock \
|
||||||
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
|
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
|
||||||
uv sync --frozen --extra ${DEVICE} --no-dev --no-editable --no-install-project --compile-bytecode --no-progress --active --link-mode copy
|
uv sync --frozen --extra ${DEVICE} --no-dev --no-editable --no-install-project --compile-bytecode --no-progress
|
||||||
RUN if [ "$DEVICE" = "rocm" ]; then \
|
|
||||||
uv pip install /opt/onnxruntime_rocm-*.whl; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
FROM python:3.11-slim-bookworm@sha256:7029b00486ac40bed03e36775b864d3f3d39dcbdf19cd45e6a52d541e6c178f0 AS prod-cpu
|
FROM python:3.11-slim-bookworm@sha256:614c8691ab74150465ec9123378cd4dde7a6e57be9e558c3108df40664667a4c AS prod-cpu
|
||||||
|
|
||||||
FROM prod-cpu AS prod-openvino
|
FROM prod-cpu AS prod-openvino
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install --no-install-recommends -yqq ocl-icd-libopencl1 wget && \
|
apt-get install --no-install-recommends -yqq ocl-icd-libopencl1 wget && \
|
||||||
wget -nv https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17384.11/intel-igc-core_1.0.17384.11_amd64.deb && \
|
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17384.11/intel-igc-core_1.0.17384.11_amd64.deb && \
|
||||||
wget -nv https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17384.11/intel-igc-opencl_1.0.17384.11_amd64.deb && \
|
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.17384.11/intel-igc-opencl_1.0.17384.11_amd64.deb && \
|
||||||
wget -nv https://github.com/intel/compute-runtime/releases/download/24.31.30508.7/intel-opencl-icd_24.31.30508.7_amd64.deb && \
|
wget https://github.com/intel/compute-runtime/releases/download/24.31.30508.7/intel-opencl-icd_24.31.30508.7_amd64.deb && \
|
||||||
wget -nv https://github.com/intel/compute-runtime/releases/download/24.31.30508.7/libigdgmm12_22.4.1_amd64.deb && \
|
wget https://github.com/intel/compute-runtime/releases/download/24.31.30508.7/libigdgmm12_22.4.1_amd64.deb && \
|
||||||
dpkg -i *.deb && \
|
dpkg -i *.deb && \
|
||||||
rm *.deb && \
|
rm *.deb && \
|
||||||
apt-get remove wget -yqq && \
|
apt-get remove wget -yqq && \
|
||||||
@@ -90,8 +58,6 @@ COPY --from=builder-cuda /usr/local/bin/python3 /usr/local/bin/python3
|
|||||||
COPY --from=builder-cuda /usr/local/lib/python3.11 /usr/local/lib/python3.11
|
COPY --from=builder-cuda /usr/local/lib/python3.11 /usr/local/lib/python3.11
|
||||||
COPY --from=builder-cuda /usr/local/lib/libpython3.11.so /usr/local/lib/libpython3.11.so
|
COPY --from=builder-cuda /usr/local/lib/libpython3.11.so /usr/local/lib/libpython3.11.so
|
||||||
|
|
||||||
FROM rocm/dev-ubuntu-22.04:6.3.4-complete@sha256:1f7e92ca7e3a3785680473329ed1091fc99db3e90fcb3a1688f2933e870ed76b AS prod-rocm
|
|
||||||
|
|
||||||
FROM prod-cpu AS prod-armnn
|
FROM prod-cpu AS prod-armnn
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH=/opt/armnn
|
ENV LD_LIBRARY_PATH=/opt/armnn
|
||||||
@@ -117,11 +83,10 @@ FROM prod-cpu AS prod-rknn
|
|||||||
ADD --checksum=sha256:73993ed4b440460825f21611731564503cc1d5a0c123746477da6cd574f34885 https://github.com/airockchip/rknn-toolkit2/raw/refs/tags/v2.3.0/rknpu2/runtime/Linux/librknn_api/aarch64/librknnrt.so /usr/lib/
|
ADD --checksum=sha256:73993ed4b440460825f21611731564503cc1d5a0c123746477da6cd574f34885 https://github.com/airockchip/rknn-toolkit2/raw/refs/tags/v2.3.0/rknpu2/runtime/Linux/librknn_api/aarch64/librknnrt.so /usr/lib/
|
||||||
|
|
||||||
FROM prod-${DEVICE} AS prod
|
FROM prod-${DEVICE} AS prod
|
||||||
|
|
||||||
ARG DEVICE
|
ARG DEVICE
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends tini $(if ! [ "$DEVICE" = "openvino" ] && ! [ "$DEVICE" = "rocm" ]; then echo "libmimalloc2.0"; fi) && \
|
apt-get install -y --no-install-recommends tini $(if ! [ "$DEVICE" = "openvino" ]; then echo "libmimalloc2.0"; fi) && \
|
||||||
apt-get autoremove -yqq && \
|
apt-get autoremove -yqq && \
|
||||||
apt-get clean && \
|
apt-get clean && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
@@ -130,17 +95,16 @@ WORKDIR /usr/src/app
|
|||||||
ENV TRANSFORMERS_CACHE=/cache \
|
ENV TRANSFORMERS_CACHE=/cache \
|
||||||
PYTHONDONTWRITEBYTECODE=1 \
|
PYTHONDONTWRITEBYTECODE=1 \
|
||||||
PYTHONUNBUFFERED=1 \
|
PYTHONUNBUFFERED=1 \
|
||||||
PATH="/opt/venv/bin:$PATH" \
|
PATH="/usr/src/app/.venv/bin:$PATH" \
|
||||||
PYTHONPATH=/usr/src \
|
PYTHONPATH=/usr/src \
|
||||||
DEVICE=${DEVICE} \
|
DEVICE=${DEVICE}
|
||||||
VIRTUAL_ENV=/opt/venv
|
|
||||||
|
|
||||||
# prevent core dumps
|
# prevent core dumps
|
||||||
RUN echo "hard core 0" >> /etc/security/limits.conf && \
|
RUN echo "hard core 0" >> /etc/security/limits.conf && \
|
||||||
echo "fs.suid_dumpable 0" >> /etc/sysctl.conf && \
|
echo "fs.suid_dumpable 0" >> /etc/sysctl.conf && \
|
||||||
echo 'ulimit -S -c 0 > /dev/null 2>&1' >> /etc/profile
|
echo 'ulimit -S -c 0 > /dev/null 2>&1' >> /etc/profile
|
||||||
|
|
||||||
COPY --from=builder /opt/venv /opt/venv
|
COPY --from=builder /usr/src/app/.venv /usr/src/app/.venv
|
||||||
COPY ann/ann.py /usr/src/ann/ann.py
|
COPY ann/ann.py /usr/src/ann/ann.py
|
||||||
COPY start.sh log_conf.json gunicorn_conf.py ./
|
COPY start.sh log_conf.json gunicorn_conf.py ./
|
||||||
COPY app .
|
COPY app .
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
This project uses [uv](https://docs.astral.sh/uv/getting-started/installation/), so be sure to install it first.
|
This project uses [uv](https://docs.astral.sh/uv/getting-started/installation/), so be sure to install it first.
|
||||||
Running `uv sync --extra cpu` will install everything you need in an isolated virtual environment.
|
Running `uv sync --extra cpu` will install everything you need in an isolated virtual environment.
|
||||||
CUDA, ROCM and OpenVINO are supported as acceleration APIs. To use them, you can replace `--extra cpu` with either of `--extra cuda`, `--extra rocm` or `--extra openvino`. In the case of CUDA, a [compute capability](https://developer.nvidia.com/cuda-gpus) of 5.2 or higher is required.
|
CUDA and OpenVINO are supported as acceleration APIs. To use them, you can replace `--group cpu` with either of `--group cuda` or `--group openvino`. In the case of CUDA, a [compute capability](https://developer.nvidia.com/cuda-gpus) of 5.2 or higher is required.
|
||||||
|
|
||||||
To add or remove dependencies, you can use the commands `uv add $PACKAGE_NAME` and `uv remove $PACKAGE_NAME`, respectively.
|
To add or remove dependencies, you can use the commands `uv add $PACKAGE_NAME` and `uv remove $PACKAGE_NAME`, respectively.
|
||||||
Be sure to commit the `uv.lock` and `pyproject.toml` files with `uv lock` to reflect any changes in dependencies.
|
Be sure to commit the `uv.lock` and `pyproject.toml` files with `uv lock` to reflect any changes in dependencies.
|
||||||
|
|||||||
@@ -75,12 +75,7 @@ _INSIGHTFACE_MODELS = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SUPPORTED_PROVIDERS = [
|
SUPPORTED_PROVIDERS = ["CUDAExecutionProvider", "OpenVINOExecutionProvider", "CPUExecutionProvider"]
|
||||||
"CUDAExecutionProvider",
|
|
||||||
"ROCMExecutionProvider",
|
|
||||||
"OpenVINOExecutionProvider",
|
|
||||||
"CPUExecutionProvider",
|
|
||||||
]
|
|
||||||
|
|
||||||
RKNN_SUPPORTED_SOCS = ["rk3566", "rk3568", "rk3576", "rk3588"]
|
RKNN_SUPPORTED_SOCS = ["rk3566", "rk3568", "rk3576", "rk3588"]
|
||||||
RKNN_COREMASK_SUPPORTED_SOCS = ["rk3576", "rk3588"]
|
RKNN_COREMASK_SUPPORTED_SOCS = ["rk3576", "rk3588"]
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ class OrtSession:
|
|||||||
match provider:
|
match provider:
|
||||||
case "CPUExecutionProvider":
|
case "CPUExecutionProvider":
|
||||||
options = {"arena_extend_strategy": "kSameAsRequested"}
|
options = {"arena_extend_strategy": "kSameAsRequested"}
|
||||||
case "CUDAExecutionProvider" | "ROCMExecutionProvider":
|
case "CUDAExecutionProvider":
|
||||||
options = {"arena_extend_strategy": "kSameAsRequested", "device_id": settings.device_id}
|
options = {"arena_extend_strategy": "kSameAsRequested", "device_id": settings.device_id}
|
||||||
case "OpenVINOExecutionProvider":
|
case "OpenVINOExecutionProvider":
|
||||||
options = {
|
options = {
|
||||||
|
|||||||
@@ -180,7 +180,6 @@ class TestOrtSession:
|
|||||||
OV_EP = ["OpenVINOExecutionProvider", "CPUExecutionProvider"]
|
OV_EP = ["OpenVINOExecutionProvider", "CPUExecutionProvider"]
|
||||||
CUDA_EP_OUT_OF_ORDER = ["CPUExecutionProvider", "CUDAExecutionProvider"]
|
CUDA_EP_OUT_OF_ORDER = ["CPUExecutionProvider", "CUDAExecutionProvider"]
|
||||||
TRT_EP = ["TensorrtExecutionProvider", "CUDAExecutionProvider", "CPUExecutionProvider"]
|
TRT_EP = ["TensorrtExecutionProvider", "CUDAExecutionProvider", "CPUExecutionProvider"]
|
||||||
ROCM_EP = ["ROCMExecutionProvider", "CPUExecutionProvider"]
|
|
||||||
|
|
||||||
@pytest.mark.providers(CPU_EP)
|
@pytest.mark.providers(CPU_EP)
|
||||||
def test_sets_cpu_provider(self, providers: list[str]) -> None:
|
def test_sets_cpu_provider(self, providers: list[str]) -> None:
|
||||||
@@ -220,12 +219,6 @@ class TestOrtSession:
|
|||||||
|
|
||||||
assert session.providers == self.CUDA_EP
|
assert session.providers == self.CUDA_EP
|
||||||
|
|
||||||
@pytest.mark.providers(ROCM_EP)
|
|
||||||
def test_uses_rocm(self, providers: list[str]) -> None:
|
|
||||||
session = OrtSession("ViT-B-32__openai")
|
|
||||||
|
|
||||||
assert session.providers == self.ROCM_EP
|
|
||||||
|
|
||||||
def test_sets_provider_kwarg(self) -> None:
|
def test_sets_provider_kwarg(self) -> None:
|
||||||
providers = ["CUDAExecutionProvider"]
|
providers = ["CUDAExecutionProvider"]
|
||||||
session = OrtSession("ViT-B-32__openai", providers=providers)
|
session = OrtSession("ViT-B-32__openai", providers=providers)
|
||||||
@@ -242,33 +235,19 @@ class TestOrtSession:
|
|||||||
{"arena_extend_strategy": "kSameAsRequested"},
|
{"arena_extend_strategy": "kSameAsRequested"},
|
||||||
]
|
]
|
||||||
|
|
||||||
def test_sets_provider_options_for_openvino(self) -> None:
|
def test_sets_device_id_for_openvino(self) -> None:
|
||||||
model_path = "/cache/ViT-B-32__openai/textual/model.onnx"
|
|
||||||
os.environ["MACHINE_LEARNING_DEVICE_ID"] = "1"
|
os.environ["MACHINE_LEARNING_DEVICE_ID"] = "1"
|
||||||
|
|
||||||
session = OrtSession(model_path, providers=["OpenVINOExecutionProvider"])
|
session = OrtSession("ViT-B-32__openai", providers=["OpenVINOExecutionProvider"])
|
||||||
|
|
||||||
assert session.provider_options == [
|
assert session.provider_options[0]["device_type"] == "GPU.1"
|
||||||
{
|
|
||||||
"device_type": "GPU.1",
|
|
||||||
"precision": "FP32",
|
|
||||||
"cache_dir": "/cache/ViT-B-32__openai/textual/openvino",
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
def test_sets_provider_options_for_cuda(self) -> None:
|
def test_sets_device_id_for_cuda(self) -> None:
|
||||||
os.environ["MACHINE_LEARNING_DEVICE_ID"] = "1"
|
os.environ["MACHINE_LEARNING_DEVICE_ID"] = "1"
|
||||||
|
|
||||||
session = OrtSession("ViT-B-32__openai", providers=["CUDAExecutionProvider"])
|
session = OrtSession("ViT-B-32__openai", providers=["CUDAExecutionProvider"])
|
||||||
|
|
||||||
assert session.provider_options == [{"arena_extend_strategy": "kSameAsRequested", "device_id": "1"}]
|
assert session.provider_options[0]["device_id"] == "1"
|
||||||
|
|
||||||
def test_sets_provider_options_for_rocm(self) -> None:
|
|
||||||
os.environ["MACHINE_LEARNING_DEVICE_ID"] = "1"
|
|
||||||
|
|
||||||
session = OrtSession("ViT-B-32__openai", providers=["ROCMExecutionProvider"])
|
|
||||||
|
|
||||||
assert session.provider_options == [{"arena_extend_strategy": "kSameAsRequested", "device_id": "1"}]
|
|
||||||
|
|
||||||
def test_sets_provider_options_kwarg(self) -> None:
|
def test_sets_provider_options_kwarg(self) -> None:
|
||||||
session = OrtSession(
|
session = OrtSession(
|
||||||
|
|||||||
@@ -1,165 +0,0 @@
|
|||||||
import json
|
|
||||||
import resource
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
import typer
|
|
||||||
from tenacity import retry, stop_after_attempt, wait_fixed
|
|
||||||
from typing_extensions import Annotated
|
|
||||||
|
|
||||||
from .exporters.constants import DELETE_PATTERNS, SOURCE_TO_METADATA, ModelSource, ModelTask
|
|
||||||
from .exporters.onnx import export as onnx_export
|
|
||||||
from .exporters.rknn import export as rknn_export
|
|
||||||
|
|
||||||
app = typer.Typer(pretty_exceptions_show_locals=False)
|
|
||||||
|
|
||||||
|
|
||||||
def generate_readme(model_name: str, model_source: ModelSource) -> str:
|
|
||||||
(name, link, type) = SOURCE_TO_METADATA[model_source]
|
|
||||||
match model_source:
|
|
||||||
case ModelSource.MCLIP:
|
|
||||||
tags = ["immich", "clip", "multilingual"]
|
|
||||||
case ModelSource.OPENCLIP:
|
|
||||||
tags = ["immich", "clip"]
|
|
||||||
lowered = model_name.lower()
|
|
||||||
if "xlm" in lowered or "nllb" in lowered:
|
|
||||||
tags.append("multilingual")
|
|
||||||
case ModelSource.INSIGHTFACE:
|
|
||||||
tags = ["immich", "facial-recognition"]
|
|
||||||
case _:
|
|
||||||
raise ValueError(f"Unsupported model source {model_source}")
|
|
||||||
|
|
||||||
return f"""---
|
|
||||||
tags:
|
|
||||||
{" - " + "\n - ".join(tags)}
|
|
||||||
---
|
|
||||||
# Model Description
|
|
||||||
|
|
||||||
This repo contains ONNX exports for the associated {type} model by {name}. See the [{name}]({link}) repo for more info.
|
|
||||||
|
|
||||||
This repo is specifically intended for use with [Immich](https://immich.app/), a self-hosted photo library.
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def clean_name(model_name: str) -> str:
|
|
||||||
hf_model_name = model_name.split("/")[-1]
|
|
||||||
hf_model_name = hf_model_name.replace("xlm-roberta-large", "XLM-Roberta-Large")
|
|
||||||
hf_model_name = hf_model_name.replace("xlm-roberta-base", "XLM-Roberta-Base")
|
|
||||||
return hf_model_name
|
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
|
||||||
def export(model_name: str, model_source: ModelSource, output_dir: Path = Path("models"), cache: bool = True) -> None:
|
|
||||||
hf_model_name = clean_name(model_name)
|
|
||||||
output_dir = output_dir / hf_model_name
|
|
||||||
match model_source:
|
|
||||||
case ModelSource.MCLIP | ModelSource.OPENCLIP:
|
|
||||||
output_dir.mkdir(parents=True, exist_ok=True)
|
|
||||||
onnx_export(model_name, model_source, output_dir, cache=cache)
|
|
||||||
case ModelSource.INSIGHTFACE:
|
|
||||||
from huggingface_hub import snapshot_download
|
|
||||||
|
|
||||||
# TODO: start from insightface dump instead of downloading from HF
|
|
||||||
snapshot_download(f"immich-app/{hf_model_name}", local_dir=output_dir)
|
|
||||||
case _:
|
|
||||||
raise ValueError(f"Unsupported model source {model_source}")
|
|
||||||
|
|
||||||
try:
|
|
||||||
rknn_export(output_dir, cache=cache)
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Failed to export model {model_name} to rknn: {e}")
|
|
||||||
(output_dir / "rknpu").unlink(missing_ok=True)
|
|
||||||
|
|
||||||
readme_path = output_dir / "README.md"
|
|
||||||
if not (cache or readme_path.exists()):
|
|
||||||
with open(readme_path, "w") as f:
|
|
||||||
f.write(generate_readme(model_name, model_source))
|
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
|
||||||
def profile(model_dir: Path, model_task: ModelTask, output_path: Path) -> None:
|
|
||||||
from timeit import timeit
|
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
import onnxruntime as ort
|
|
||||||
|
|
||||||
np.random.seed(0)
|
|
||||||
|
|
||||||
sess_options = ort.SessionOptions()
|
|
||||||
sess_options.enable_cpu_mem_arena = False
|
|
||||||
providers = ["CPUExecutionProvider"]
|
|
||||||
provider_options = [{"arena_extend_strategy": "kSameAsRequested"}]
|
|
||||||
match model_task:
|
|
||||||
case ModelTask.SEARCH:
|
|
||||||
textual = ort.InferenceSession(
|
|
||||||
model_dir / "textual" / "model.onnx",
|
|
||||||
sess_options=sess_options,
|
|
||||||
providers=providers,
|
|
||||||
provider_options=provider_options,
|
|
||||||
)
|
|
||||||
tokens = {node.name: np.random.rand(*node.shape).astype(np.int32) for node in textual.get_inputs()}
|
|
||||||
|
|
||||||
visual = ort.InferenceSession(
|
|
||||||
model_dir / "visual" / "model.onnx",
|
|
||||||
sess_options=sess_options,
|
|
||||||
providers=providers,
|
|
||||||
provider_options=provider_options,
|
|
||||||
)
|
|
||||||
image = {node.name: np.random.rand(*node.shape).astype(np.float32) for node in visual.get_inputs()}
|
|
||||||
|
|
||||||
def predict() -> None:
|
|
||||||
textual.run(None, tokens)
|
|
||||||
visual.run(None, image)
|
|
||||||
|
|
||||||
case ModelTask.FACIAL_RECOGNITION:
|
|
||||||
detection = ort.InferenceSession(
|
|
||||||
model_dir / "detection" / "model.onnx",
|
|
||||||
sess_options=sess_options,
|
|
||||||
providers=providers,
|
|
||||||
provider_options=provider_options,
|
|
||||||
)
|
|
||||||
image = {node.name: np.random.rand(1, 3, 640, 640).astype(np.float32) for node in detection.get_inputs()}
|
|
||||||
|
|
||||||
recognition = ort.InferenceSession(
|
|
||||||
model_dir / "recognition" / "model.onnx",
|
|
||||||
sess_options=sess_options,
|
|
||||||
providers=providers,
|
|
||||||
provider_options=provider_options,
|
|
||||||
)
|
|
||||||
face = {node.name: np.random.rand(1, 3, 112, 112).astype(np.float32) for node in recognition.get_inputs()}
|
|
||||||
|
|
||||||
def predict() -> None:
|
|
||||||
detection.run(None, image)
|
|
||||||
recognition.run(None, face)
|
|
||||||
|
|
||||||
case _:
|
|
||||||
raise ValueError(f"Unsupported model task {model_task}")
|
|
||||||
predict()
|
|
||||||
ms = timeit(predict, number=100)
|
|
||||||
rss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
|
|
||||||
json.dump({"pretrained_model": model_dir.name, "peak_rss": rss, "exec_time_ms": ms}, output_path.open("w"))
|
|
||||||
print(f"Model {model_dir.name} took {ms:.2f}ms per iteration using {rss / 1024:.2f}MiB of memory")
|
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
|
||||||
def upload(
|
|
||||||
model_dir: Path,
|
|
||||||
hf_organization: str = "immich-app",
|
|
||||||
hf_auth_token: Annotated[str | None, typer.Option(envvar="HF_AUTH_TOKEN")] = None,
|
|
||||||
) -> None:
|
|
||||||
from huggingface_hub import create_repo, upload_folder
|
|
||||||
|
|
||||||
repo_id = f"{hf_organization}/{model_dir.name}"
|
|
||||||
|
|
||||||
@retry(stop=stop_after_attempt(5), wait=wait_fixed(5))
|
|
||||||
def upload_model() -> None:
|
|
||||||
create_repo(repo_id, exist_ok=True, token=hf_auth_token)
|
|
||||||
upload_folder(
|
|
||||||
repo_id=repo_id,
|
|
||||||
folder_path=model_dir,
|
|
||||||
# remote repo files to be deleted before uploading
|
|
||||||
# deletion is in the same commit as the upload, so it's atomic
|
|
||||||
delete_patterns=DELETE_PATTERNS,
|
|
||||||
token=hf_auth_token,
|
|
||||||
)
|
|
||||||
|
|
||||||
upload_model()
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
from immich_model_exporter import app
|
|
||||||
|
|
||||||
app()
|
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import typer
|
||||||
|
from tenacity import retry, stop_after_attempt, wait_fixed
|
||||||
|
from typing_extensions import Annotated
|
||||||
|
|
||||||
|
from .exporters.constants import DELETE_PATTERNS, SOURCE_TO_METADATA, ModelSource
|
||||||
|
from .exporters.onnx import export as onnx_export
|
||||||
|
from .exporters.rknn import export as rknn_export
|
||||||
|
|
||||||
|
app = typer.Typer(pretty_exceptions_show_locals=False)
|
||||||
|
|
||||||
|
|
||||||
|
def generate_readme(model_name: str, model_source: ModelSource) -> str:
|
||||||
|
(name, link, type) = SOURCE_TO_METADATA[model_source]
|
||||||
|
match model_source:
|
||||||
|
case ModelSource.MCLIP:
|
||||||
|
tags = ["immich", "clip", "multilingual"]
|
||||||
|
case ModelSource.OPENCLIP:
|
||||||
|
tags = ["immich", "clip"]
|
||||||
|
lowered = model_name.lower()
|
||||||
|
if "xlm" in lowered or "nllb" in lowered:
|
||||||
|
tags.append("multilingual")
|
||||||
|
case ModelSource.INSIGHTFACE:
|
||||||
|
tags = ["immich", "facial-recognition"]
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Unsupported model source {model_source}")
|
||||||
|
|
||||||
|
return f"""---
|
||||||
|
tags:
|
||||||
|
{" - " + "\n - ".join(tags)}
|
||||||
|
---
|
||||||
|
# Model Description
|
||||||
|
|
||||||
|
This repo contains ONNX exports for the associated {type} model by {name}. See the [{name}]({link}) repo for more info.
|
||||||
|
|
||||||
|
This repo is specifically intended for use with [Immich](https://immich.app/), a self-hosted photo library.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
@app.command()
|
||||||
|
def main(
|
||||||
|
model_name: str,
|
||||||
|
model_source: ModelSource,
|
||||||
|
output_dir: Path = Path("./models"),
|
||||||
|
no_cache: bool = False,
|
||||||
|
hf_organization: str = "immich-app",
|
||||||
|
hf_auth_token: Annotated[str | None, typer.Option(envvar="HF_AUTH_TOKEN")] = None,
|
||||||
|
) -> None:
|
||||||
|
hf_model_name = model_name.split("/")[-1]
|
||||||
|
hf_model_name = hf_model_name.replace("xlm-roberta-large", "XLM-Roberta-Large")
|
||||||
|
hf_model_name = hf_model_name.replace("xlm-roberta-base", "XLM-Roberta-Base")
|
||||||
|
output_dir = output_dir / hf_model_name
|
||||||
|
match model_source:
|
||||||
|
case ModelSource.MCLIP | ModelSource.OPENCLIP:
|
||||||
|
output_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
onnx_export(model_name, model_source, output_dir, no_cache=no_cache)
|
||||||
|
case ModelSource.INSIGHTFACE:
|
||||||
|
from huggingface_hub import snapshot_download
|
||||||
|
|
||||||
|
# TODO: start from insightface dump instead of downloading from HF
|
||||||
|
snapshot_download(f"immich-app/{hf_model_name}", local_dir=output_dir)
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Unsupported model source {model_source}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
rknn_export(output_dir, no_cache=no_cache)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Failed to export model {model_name} to rknn: {e}")
|
||||||
|
(output_dir / "rknpu").unlink(missing_ok=True)
|
||||||
|
|
||||||
|
readme_path = output_dir / "README.md"
|
||||||
|
if no_cache or not readme_path.exists():
|
||||||
|
with open(readme_path, "w") as f:
|
||||||
|
f.write(generate_readme(model_name, model_source))
|
||||||
|
|
||||||
|
if hf_auth_token is not None:
|
||||||
|
from huggingface_hub import create_repo, upload_folder
|
||||||
|
|
||||||
|
repo_id = f"{hf_organization}/{hf_model_name}"
|
||||||
|
|
||||||
|
@retry(stop=stop_after_attempt(5), wait=wait_fixed(5))
|
||||||
|
def upload_model() -> None:
|
||||||
|
create_repo(repo_id, exist_ok=True, token=hf_auth_token)
|
||||||
|
upload_folder(
|
||||||
|
repo_id=repo_id,
|
||||||
|
folder_path=output_dir,
|
||||||
|
# remote repo files to be deleted before uploading
|
||||||
|
# deletion is in the same commit as the upload, so it's atomic
|
||||||
|
delete_patterns=DELETE_PATTERNS,
|
||||||
|
token=hf_auth_token,
|
||||||
|
)
|
||||||
|
|
||||||
|
upload_model()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
typer.run(main)
|
||||||
@@ -8,11 +8,6 @@ class ModelSource(StrEnum):
|
|||||||
OPENCLIP = "openclip"
|
OPENCLIP = "openclip"
|
||||||
|
|
||||||
|
|
||||||
class ModelTask(StrEnum):
|
|
||||||
FACIAL_RECOGNITION = "facial-recognition"
|
|
||||||
SEARCH = "clip"
|
|
||||||
|
|
||||||
|
|
||||||
class SourceMetadata(NamedTuple):
|
class SourceMetadata(NamedTuple):
|
||||||
name: str
|
name: str
|
||||||
link: str
|
link: str
|
||||||
@@ -27,13 +22,6 @@ SOURCE_TO_METADATA = {
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SOURCE_TO_TASK = {
|
|
||||||
ModelSource.MCLIP: ModelTask.SEARCH,
|
|
||||||
ModelSource.OPENCLIP: ModelTask.SEARCH,
|
|
||||||
ModelSource.INSIGHTFACE: ModelTask.FACIAL_RECOGNITION,
|
|
||||||
}
|
|
||||||
|
|
||||||
RKNN_SOCS = ["rk3566", "rk3568", "rk3576", "rk3588"]
|
RKNN_SOCS = ["rk3566", "rk3568", "rk3576", "rk3588"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,16 +5,16 @@ from .models import mclip, openclip
|
|||||||
|
|
||||||
|
|
||||||
def export(
|
def export(
|
||||||
model_name: str, model_source: ModelSource, output_dir: Path, opset_version: int = 19, cache: bool = True
|
model_name: str, model_source: ModelSource, output_dir: Path, opset_version: int = 19, no_cache: bool = False
|
||||||
) -> None:
|
) -> None:
|
||||||
visual_dir = output_dir / "visual"
|
visual_dir = output_dir / "visual"
|
||||||
textual_dir = output_dir / "textual"
|
textual_dir = output_dir / "textual"
|
||||||
match model_source:
|
match model_source:
|
||||||
case ModelSource.MCLIP:
|
case ModelSource.MCLIP:
|
||||||
mclip.to_onnx(model_name, opset_version, visual_dir, textual_dir, cache=cache)
|
mclip.to_onnx(model_name, opset_version, visual_dir, textual_dir, no_cache=no_cache)
|
||||||
case ModelSource.OPENCLIP:
|
case ModelSource.OPENCLIP:
|
||||||
name, _, pretrained = model_name.partition("__")
|
name, _, pretrained = model_name.partition("__")
|
||||||
config = openclip.OpenCLIPModelConfig(name, pretrained)
|
config = openclip.OpenCLIPModelConfig(name, pretrained)
|
||||||
openclip.to_onnx(config, opset_version, visual_dir, textual_dir, cache=cache)
|
openclip.to_onnx(config, opset_version, visual_dir, textual_dir, no_cache=no_cache)
|
||||||
case _:
|
case _:
|
||||||
raise ValueError(f"Unsupported model source {model_source}")
|
raise ValueError(f"Unsupported model source {model_source}")
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ def to_onnx(
|
|||||||
opset_version: int,
|
opset_version: int,
|
||||||
output_dir_visual: Path | str,
|
output_dir_visual: Path | str,
|
||||||
output_dir_textual: Path | str,
|
output_dir_textual: Path | str,
|
||||||
cache: bool = True,
|
no_cache: bool = False,
|
||||||
) -> tuple[Path, Path]:
|
) -> tuple[Path, Path]:
|
||||||
textual_path = get_model_path(output_dir_textual)
|
textual_path = get_model_path(output_dir_textual)
|
||||||
if not cache or not textual_path.exists():
|
if no_cache or not textual_path.exists():
|
||||||
import torch
|
import torch
|
||||||
from multilingual_clip.pt_multilingual_clip import MultilingualCLIP
|
from multilingual_clip.pt_multilingual_clip import MultilingualCLIP
|
||||||
from transformers import AutoTokenizer
|
from transformers import AutoTokenizer
|
||||||
@@ -39,7 +39,9 @@ def to_onnx(
|
|||||||
_export_text_encoder(model, textual_path, opset_version)
|
_export_text_encoder(model, textual_path, opset_version)
|
||||||
else:
|
else:
|
||||||
print(f"Model {textual_path} already exists, skipping")
|
print(f"Model {textual_path} already exists, skipping")
|
||||||
visual_path, _ = openclip_to_onnx(_MCLIP_TO_OPENCLIP[model_name], opset_version, output_dir_visual, cache=cache)
|
visual_path, _ = openclip_to_onnx(
|
||||||
|
_MCLIP_TO_OPENCLIP[model_name], opset_version, output_dir_visual, no_cache=no_cache
|
||||||
|
)
|
||||||
assert visual_path is not None, "Visual model export failed"
|
assert visual_path is not None, "Visual model export failed"
|
||||||
return visual_path, textual_path
|
return visual_path, textual_path
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ def to_onnx(
|
|||||||
opset_version: int,
|
opset_version: int,
|
||||||
output_dir_visual: Path | str | None = None,
|
output_dir_visual: Path | str | None = None,
|
||||||
output_dir_textual: Path | str | None = None,
|
output_dir_textual: Path | str | None = None,
|
||||||
cache: bool = True,
|
no_cache: bool = False,
|
||||||
) -> tuple[Path | None, Path | None]:
|
) -> tuple[Path | None, Path | None]:
|
||||||
visual_path = None
|
visual_path = None
|
||||||
textual_path = None
|
textual_path = None
|
||||||
@@ -49,7 +49,9 @@ def to_onnx(
|
|||||||
output_dir_textual = Path(output_dir_textual)
|
output_dir_textual = Path(output_dir_textual)
|
||||||
textual_path = get_model_path(output_dir_textual)
|
textual_path = get_model_path(output_dir_textual)
|
||||||
|
|
||||||
if cache and ((textual_path is None or textual_path.exists()) and (visual_path is None or visual_path.exists())):
|
if not no_cache and (
|
||||||
|
(textual_path is None or textual_path.exists()) and (visual_path is None or visual_path.exists())
|
||||||
|
):
|
||||||
print(f"Models {textual_path} and {visual_path} already exist, skipping")
|
print(f"Models {textual_path} and {visual_path} already exist, skipping")
|
||||||
return visual_path, textual_path
|
return visual_path, textual_path
|
||||||
|
|
||||||
@@ -73,7 +75,7 @@ def to_onnx(
|
|||||||
param.requires_grad_(False)
|
param.requires_grad_(False)
|
||||||
|
|
||||||
if visual_path is not None and output_dir_visual is not None:
|
if visual_path is not None and output_dir_visual is not None:
|
||||||
if not cache or not visual_path.exists():
|
if no_cache or not visual_path.exists():
|
||||||
save_config(
|
save_config(
|
||||||
open_clip.get_model_preprocess_cfg(model),
|
open_clip.get_model_preprocess_cfg(model),
|
||||||
output_dir_visual / "preprocess_cfg.json",
|
output_dir_visual / "preprocess_cfg.json",
|
||||||
@@ -84,7 +86,7 @@ def to_onnx(
|
|||||||
print(f"Model {visual_path} already exists, skipping")
|
print(f"Model {visual_path} already exists, skipping")
|
||||||
|
|
||||||
if textual_path is not None and output_dir_textual is not None:
|
if textual_path is not None and output_dir_textual is not None:
|
||||||
if not cache or not textual_path.exists():
|
if no_cache or not textual_path.exists():
|
||||||
tokenizer_name = text_vision_cfg["text_cfg"].get("hf_tokenizer_name", "openai/clip-vit-base-patch32")
|
tokenizer_name = text_vision_cfg["text_cfg"].get("hf_tokenizer_name", "openai/clip-vit-base-patch32")
|
||||||
AutoTokenizer.from_pretrained(tokenizer_name).save_pretrained(output_dir_textual)
|
AutoTokenizer.from_pretrained(tokenizer_name).save_pretrained(output_dir_textual)
|
||||||
_export_text_encoder(model, model_cfg, textual_path, opset_version)
|
_export_text_encoder(model, model_cfg, textual_path, opset_version)
|
||||||
|
|||||||
@@ -9,13 +9,13 @@ def _export_platform(
|
|||||||
inputs: list[str] | None = None,
|
inputs: list[str] | None = None,
|
||||||
input_size_list: list[list[int]] | None = None,
|
input_size_list: list[list[int]] | None = None,
|
||||||
fuse_matmul_softmax_matmul_to_sdpa: bool = True,
|
fuse_matmul_softmax_matmul_to_sdpa: bool = True,
|
||||||
cache: bool = True,
|
no_cache: bool = False,
|
||||||
) -> None:
|
) -> None:
|
||||||
from rknn.api import RKNN
|
from rknn.api import RKNN
|
||||||
|
|
||||||
input_path = model_dir / "model.onnx"
|
input_path = model_dir / "model.onnx"
|
||||||
output_path = model_dir / "rknpu" / target_platform / "model.rknn"
|
output_path = model_dir / "rknpu" / target_platform / "model.rknn"
|
||||||
if cache and output_path.exists():
|
if not no_cache and output_path.exists():
|
||||||
print(f"Model {input_path} already exists at {output_path}, skipping")
|
print(f"Model {input_path} already exists at {output_path}, skipping")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ def _export_platforms(
|
|||||||
model_dir: Path,
|
model_dir: Path,
|
||||||
inputs: list[str] | None = None,
|
inputs: list[str] | None = None,
|
||||||
input_size_list: list[list[int]] | None = None,
|
input_size_list: list[list[int]] | None = None,
|
||||||
cache: bool = True,
|
no_cache: bool = False,
|
||||||
) -> None:
|
) -> None:
|
||||||
fuse_matmul_softmax_matmul_to_sdpa = True
|
fuse_matmul_softmax_matmul_to_sdpa = True
|
||||||
for soc in RKNN_SOCS:
|
for soc in RKNN_SOCS:
|
||||||
@@ -60,7 +60,7 @@ def _export_platforms(
|
|||||||
inputs=inputs,
|
inputs=inputs,
|
||||||
input_size_list=input_size_list,
|
input_size_list=input_size_list,
|
||||||
fuse_matmul_softmax_matmul_to_sdpa=fuse_matmul_softmax_matmul_to_sdpa,
|
fuse_matmul_softmax_matmul_to_sdpa=fuse_matmul_softmax_matmul_to_sdpa,
|
||||||
cache=cache,
|
no_cache=no_cache,
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Failed to export model for {soc}: {e}")
|
print(f"Failed to export model for {soc}: {e}")
|
||||||
@@ -73,24 +73,24 @@ def _export_platforms(
|
|||||||
inputs=inputs,
|
inputs=inputs,
|
||||||
input_size_list=input_size_list,
|
input_size_list=input_size_list,
|
||||||
fuse_matmul_softmax_matmul_to_sdpa=fuse_matmul_softmax_matmul_to_sdpa,
|
fuse_matmul_softmax_matmul_to_sdpa=fuse_matmul_softmax_matmul_to_sdpa,
|
||||||
cache=cache,
|
no_cache=no_cache,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def export(model_dir: Path, cache: bool = True) -> None:
|
def export(model_dir: Path, no_cache: bool = False) -> None:
|
||||||
textual = model_dir / "textual"
|
textual = model_dir / "textual"
|
||||||
visual = model_dir / "visual"
|
visual = model_dir / "visual"
|
||||||
detection = model_dir / "detection"
|
detection = model_dir / "detection"
|
||||||
recognition = model_dir / "recognition"
|
recognition = model_dir / "recognition"
|
||||||
|
|
||||||
if textual.is_dir():
|
if textual.is_dir():
|
||||||
_export_platforms(textual, cache=cache)
|
_export_platforms(textual, no_cache=no_cache)
|
||||||
|
|
||||||
if visual.is_dir():
|
if visual.is_dir():
|
||||||
_export_platforms(visual, cache=cache)
|
_export_platforms(visual, no_cache=no_cache)
|
||||||
|
|
||||||
if detection.is_dir():
|
if detection.is_dir():
|
||||||
_export_platforms(detection, inputs=["input.1"], input_size_list=[[1, 3, 640, 640]], cache=cache)
|
_export_platforms(detection, inputs=["input.1"], input_size_list=[[1, 3, 640, 640]], no_cache=no_cache)
|
||||||
|
|
||||||
if recognition.is_dir():
|
if recognition.is_dir():
|
||||||
_export_platforms(recognition, inputs=["input.1"], input_size_list=[[1, 3, 112, 112]], cache=cache)
|
_export_platforms(recognition, inputs=["input.1"], input_size_list=[[1, 3, 112, 112]], no_cache=no_cache)
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
import json
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
models_dir = Path("models")
|
|
||||||
model_to_embed_dim = {}
|
|
||||||
for model_dir in models_dir.iterdir():
|
|
||||||
if not model_dir.is_dir():
|
|
||||||
continue
|
|
||||||
|
|
||||||
config_path = model_dir / "config.json"
|
|
||||||
if not config_path.exists():
|
|
||||||
print(f"Skipping {model_dir.name} as it does not have a config.json")
|
|
||||||
continue
|
|
||||||
with open(config_path) as f:
|
|
||||||
config = json.load(f)
|
|
||||||
embed_dim = config.get("embed_dim")
|
|
||||||
if embed_dim is None:
|
|
||||||
print(f"Skipping {model_dir.name} as it does not have an embed_dim")
|
|
||||||
continue
|
|
||||||
print(f"{model_dir.name}: {embed_dim}")
|
|
||||||
model_to_embed_dim[model_dir.name] = {"dimSize": embed_dim}
|
|
||||||
print(json.dumps(model_to_embed_dim))
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
import polars as pl
|
|
||||||
|
|
||||||
|
|
||||||
def collapsed_table(language: str, df: pl.DataFrame) -> str:
|
|
||||||
with pl.Config(
|
|
||||||
tbl_formatting="ASCII_MARKDOWN",
|
|
||||||
tbl_hide_column_data_types=True,
|
|
||||||
tbl_hide_dataframe_shape=True,
|
|
||||||
fmt_str_lengths=100,
|
|
||||||
tbl_rows=1000,
|
|
||||||
tbl_width_chars=1000,
|
|
||||||
):
|
|
||||||
return f"<details>\n<summary>{language}</summary>\n{str(df)}\n</details>"
|
|
||||||
|
|
||||||
|
|
||||||
languages = {
|
|
||||||
"en": "English",
|
|
||||||
"ar": "Arabic",
|
|
||||||
"bn": "Bengali",
|
|
||||||
"zh": "Chinese (Simplified)",
|
|
||||||
"hr": "Croatian",
|
|
||||||
"quz": "Cusco Quechua",
|
|
||||||
"cs": "Czech",
|
|
||||||
"da": "Danish",
|
|
||||||
"nl": "Dutch",
|
|
||||||
"fil": "Filipino",
|
|
||||||
"fi": "Finnish",
|
|
||||||
"fr": "French",
|
|
||||||
"de": "German",
|
|
||||||
"el": "Greek",
|
|
||||||
"he": "Hebrew",
|
|
||||||
"hi": "Hindi",
|
|
||||||
"hu": "Hungarian",
|
|
||||||
"id": "Indonesian",
|
|
||||||
"it": "Italian",
|
|
||||||
"ja": "Japanese",
|
|
||||||
"ko": "Korean",
|
|
||||||
"mi": "Maori",
|
|
||||||
"no": "Norwegian",
|
|
||||||
"fa": "Persian",
|
|
||||||
"pl": "Polish",
|
|
||||||
"pt": "Portuguese",
|
|
||||||
"ro": "Romanian",
|
|
||||||
"ru": "Russian",
|
|
||||||
"es": "Spanish",
|
|
||||||
"sw": "Swahili",
|
|
||||||
"sv": "Swedish",
|
|
||||||
"te": "Telugu",
|
|
||||||
"th": "Thai",
|
|
||||||
"tr": "Turkish",
|
|
||||||
"uk": "Ukrainian",
|
|
||||||
"vi": "Vietnamese",
|
|
||||||
}
|
|
||||||
|
|
||||||
profile_df = pl.scan_ndjson("profiling/*.json").select("pretrained_model", "peak_rss", "exec_time_ms")
|
|
||||||
eval_df = pl.scan_ndjson("results/*.json").select("model", "pretrained", "language", "metrics")
|
|
||||||
|
|
||||||
eval_df = eval_df.with_columns(
|
|
||||||
model=pl.col("model")
|
|
||||||
.str.replace("xlm-roberta-base", "XLM-Roberta-Base")
|
|
||||||
.str.replace("xlm-roberta-large", "XLM-Roberta-Large")
|
|
||||||
)
|
|
||||||
eval_df = eval_df.with_columns(pretrained_model=pl.concat_str(pl.col("model"), pl.col("pretrained"), separator="__"))
|
|
||||||
eval_df = eval_df.drop("model", "pretrained")
|
|
||||||
eval_df = eval_df.join(profile_df, on="pretrained_model")
|
|
||||||
|
|
||||||
eval_df = eval_df.with_columns(
|
|
||||||
recall=(
|
|
||||||
pl.col("metrics").struct.field("image_retrieval_recall@1")
|
|
||||||
+ pl.col("metrics").struct.field("image_retrieval_recall@5")
|
|
||||||
+ pl.col("metrics").struct.field("image_retrieval_recall@10")
|
|
||||||
)
|
|
||||||
* (100 / 3)
|
|
||||||
)
|
|
||||||
|
|
||||||
pareto_front = eval_df.join_where(
|
|
||||||
eval_df.select("language", "peak_rss", "exec_time_ms", "recall").rename(
|
|
||||||
{
|
|
||||||
"language": "language_other",
|
|
||||||
"peak_rss": "peak_rss_other",
|
|
||||||
"exec_time_ms": "exec_time_ms_other",
|
|
||||||
"recall": "recall_other",
|
|
||||||
}
|
|
||||||
),
|
|
||||||
(pl.col("language") == pl.col("language_other"))
|
|
||||||
& (pl.col("peak_rss_other") <= pl.col("peak_rss"))
|
|
||||||
& (pl.col("exec_time_ms_other") <= pl.col("exec_time_ms"))
|
|
||||||
& (pl.col("recall_other") >= pl.col("recall"))
|
|
||||||
& (
|
|
||||||
(pl.col("peak_rss_other") < pl.col("peak_rss"))
|
|
||||||
| (pl.col("exec_time_ms_other") < pl.col("exec_time_ms"))
|
|
||||||
| (pl.col("recall_other") > pl.col("recall"))
|
|
||||||
),
|
|
||||||
)
|
|
||||||
eval_df = eval_df.join(pareto_front, on=["pretrained_model", "language"], how="left")
|
|
||||||
eval_df = eval_df.with_columns(is_pareto=pl.col("recall_other").is_null())
|
|
||||||
eval_df = (
|
|
||||||
eval_df.drop("peak_rss_other", "exec_time_ms_other", "recall_other", "language_other")
|
|
||||||
.unique(subset=["pretrained_model", "language"])
|
|
||||||
.collect()
|
|
||||||
)
|
|
||||||
eval_df.write_parquet("model_info.parquet")
|
|
||||||
|
|
||||||
eval_df = eval_df.drop("metrics")
|
|
||||||
eval_df = eval_df.filter(pl.col("recall") >= 20)
|
|
||||||
eval_df = eval_df.sort("recall", descending=True)
|
|
||||||
eval_df = eval_df.select(
|
|
||||||
pl.col("pretrained_model").alias("Model"),
|
|
||||||
(pl.col("peak_rss") / 1024).round().cast(pl.UInt32).alias("Memory (MiB)"),
|
|
||||||
pl.col("exec_time_ms").round(2).alias("Execution Time (ms)"),
|
|
||||||
pl.col("language").alias("Language"),
|
|
||||||
pl.col("recall").round(2).alias("Recall (%)"),
|
|
||||||
pl.when(pl.col("is_pareto")).then(pl.lit("✅")).otherwise(pl.lit("❌")).alias("Pareto Optimal"),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
for language in languages:
|
|
||||||
lang_df = eval_df.filter(pl.col("Language") == language).drop("Language")
|
|
||||||
if lang_df.shape[0] == 0:
|
|
||||||
continue
|
|
||||||
print(collapsed_table(languages[language], lang_df))
|
|
||||||
@@ -1,11 +1,7 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
from exporters.constants import ModelSource
|
from exporters.constants import ModelSource
|
||||||
|
|
||||||
from immich_model_exporter import clean_name
|
|
||||||
from immich_model_exporter.exporters.constants import SOURCE_TO_TASK
|
|
||||||
|
|
||||||
mclip = [
|
mclip = [
|
||||||
"M-CLIP/LABSE-Vit-L-14",
|
"M-CLIP/LABSE-Vit-L-14",
|
||||||
"M-CLIP/XLM-Roberta-Large-Vit-B-16Plus",
|
"M-CLIP/XLM-Roberta-Large-Vit-B-16Plus",
|
||||||
@@ -78,28 +74,10 @@ insightface = [
|
|||||||
|
|
||||||
|
|
||||||
def export_models(models: list[str], source: ModelSource) -> None:
|
def export_models(models: list[str], source: ModelSource) -> None:
|
||||||
profiling_dir = Path("profiling")
|
|
||||||
profiling_dir.mkdir(exist_ok=True)
|
|
||||||
for model in models:
|
for model in models:
|
||||||
try:
|
try:
|
||||||
model_dir = f"models/{clean_name(model)}"
|
print(f"Exporting model {model}")
|
||||||
task = SOURCE_TO_TASK[source]
|
subprocess.check_call(["python", "-m", "immich_model_exporter.export", model, source])
|
||||||
|
|
||||||
print(f"Processing model {model}")
|
|
||||||
subprocess.check_call(["python", "-m", "immich_model_exporter", "export", model, source])
|
|
||||||
subprocess.check_call(
|
|
||||||
[
|
|
||||||
"python",
|
|
||||||
"-m",
|
|
||||||
"immich_model_exporter",
|
|
||||||
"profile",
|
|
||||||
model_dir,
|
|
||||||
task,
|
|
||||||
"--output_path",
|
|
||||||
profiling_dir / f"{model}.json",
|
|
||||||
]
|
|
||||||
)
|
|
||||||
subprocess.check_call(["python", "-m", "immich_model_exporter", "upload", model_dir])
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Failed to export model {model}: {e}")
|
print(f"Failed to export model {model}: {e}")
|
||||||
|
|
||||||
@@ -108,64 +86,3 @@ if __name__ == "__main__":
|
|||||||
export_models(mclip, ModelSource.MCLIP)
|
export_models(mclip, ModelSource.MCLIP)
|
||||||
export_models(openclip, ModelSource.OPENCLIP)
|
export_models(openclip, ModelSource.OPENCLIP)
|
||||||
export_models(insightface, ModelSource.INSIGHTFACE)
|
export_models(insightface, ModelSource.INSIGHTFACE)
|
||||||
|
|
||||||
Path("results").mkdir(exist_ok=True)
|
|
||||||
subprocess.check_call(
|
|
||||||
[
|
|
||||||
"python",
|
|
||||||
"clip_benchmark",
|
|
||||||
"eval",
|
|
||||||
"--pretrained_model",
|
|
||||||
*[name.replace("__", ",") for name in openclip],
|
|
||||||
"--task",
|
|
||||||
"zeroshot_retrieval",
|
|
||||||
"--dataset",
|
|
||||||
"crossmodal3600",
|
|
||||||
"--batch_size",
|
|
||||||
"64",
|
|
||||||
"--language",
|
|
||||||
"ar",
|
|
||||||
"bn",
|
|
||||||
"cs",
|
|
||||||
"da",
|
|
||||||
"de",
|
|
||||||
"el",
|
|
||||||
"en",
|
|
||||||
"es",
|
|
||||||
"fa",
|
|
||||||
"fi",
|
|
||||||
"fil",
|
|
||||||
"fr",
|
|
||||||
"he",
|
|
||||||
"hi",
|
|
||||||
"hr",
|
|
||||||
"hu",
|
|
||||||
"id",
|
|
||||||
"it",
|
|
||||||
"ja",
|
|
||||||
"ko",
|
|
||||||
"mi",
|
|
||||||
"nl",
|
|
||||||
"no",
|
|
||||||
"pl",
|
|
||||||
"pt",
|
|
||||||
"quz",
|
|
||||||
"ro",
|
|
||||||
"ru",
|
|
||||||
"sv",
|
|
||||||
"sw",
|
|
||||||
"te",
|
|
||||||
"th",
|
|
||||||
"tr",
|
|
||||||
"uk",
|
|
||||||
"vi",
|
|
||||||
"zh",
|
|
||||||
"--recall_k",
|
|
||||||
"1",
|
|
||||||
"5",
|
|
||||||
"10",
|
|
||||||
"--no_amp",
|
|
||||||
"--output",
|
|
||||||
"results/{dataset}_{language}_{model}_{pretrained}.json",
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ dependencies = [
|
|||||||
"rknn-toolkit2>=2.3.0",
|
"rknn-toolkit2>=2.3.0",
|
||||||
"transformers>=4.49.0",
|
"transformers>=4.49.0",
|
||||||
"tenacity>=9.0.0",
|
"tenacity>=9.0.0",
|
||||||
"clip-benchmark>=1.6.1",
|
|
||||||
"polars>=1.25.2",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[dependency-groups]
|
[dependency-groups]
|
||||||
@@ -29,6 +27,15 @@ override-dependencies = [
|
|||||||
"torchvision>=0.21",
|
"torchvision>=0.21",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[tool.uv.sources]
|
||||||
|
torch = [{ index = "pytorch-cpu" }]
|
||||||
|
torchvision = [{ index = "pytorch-cpu" }]
|
||||||
|
|
||||||
|
[[tool.uv.index]]
|
||||||
|
name = "pytorch-cpu"
|
||||||
|
url = "https://download.pytorch.org/whl/cpu"
|
||||||
|
explicit = true
|
||||||
|
|
||||||
[tool.hatch.build.targets.sdist]
|
[tool.hatch.build.targets.sdist]
|
||||||
include = ["immich_model_exporter"]
|
include = ["immich_model_exporter"]
|
||||||
|
|
||||||
|
|||||||
Generated
+113
-642
@@ -17,8 +17,8 @@ resolution-markers = [
|
|||||||
overrides = [
|
overrides = [
|
||||||
{ name = "onnx", specifier = ">=1.16.0,<2" },
|
{ name = "onnx", specifier = ">=1.16.0,<2" },
|
||||||
{ name = "onnxruntime", specifier = ">=1.18.2,<2" },
|
{ name = "onnxruntime", specifier = ">=1.18.2,<2" },
|
||||||
{ name = "torch", specifier = ">=2.4" },
|
{ name = "torch", specifier = ">=2.4", index = "https://download.pytorch.org/whl/cpu" },
|
||||||
{ name = "torchvision", specifier = ">=0.21" },
|
{ name = "torchvision", specifier = ">=0.21", index = "https://download.pytorch.org/whl/cpu" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -55,15 +55,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646 },
|
{ url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "braceexpand"
|
|
||||||
version = "0.1.7"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/54/93/badd4f5ccf25209f3fef2573073da9fe4a45a3da99fca2f800f942130c0f/braceexpand-0.1.7.tar.gz", hash = "sha256:e6e539bd20eaea53547472ff94f4fb5c3d3bf9d0a89388c4b56663aba765f705", size = 7777 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/fa/93/e8c04e80e82391a6e51f218ca49720f64236bc824e92152a2633b74cf7ab/braceexpand-0.1.7-py2.py3-none-any.whl", hash = "sha256:91332d53de7828103dcae5773fb43bc34950b0c8160e35e0f44c4427a3b85014", size = 5923 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "certifi"
|
name = "certifi"
|
||||||
version = "2025.1.31"
|
version = "2025.1.31"
|
||||||
@@ -146,25 +137,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
|
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clip-benchmark"
|
|
||||||
version = "1.6.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "open-clip-torch" },
|
|
||||||
{ name = "pycocoevalcap" },
|
|
||||||
{ name = "scikit-learn" },
|
|
||||||
{ name = "torch" },
|
|
||||||
{ name = "torchvision" },
|
|
||||||
{ name = "tqdm" },
|
|
||||||
{ name = "transformers" },
|
|
||||||
{ name = "webdataset" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/c4/af/733be824fa6e9b366036388f12893870af84aef8fb06064a5ebc067ac86c/clip_benchmark-1.6.1.tar.gz", hash = "sha256:eb222cec1759bf80458cc9f509c5d01557e63c5f5d8dce4018bf5c0ef3a427e8", size = 2056113 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4a/c6/9bb7554f39f9b306b3ce704ad86bd9afe1555a584445a89565b52ba64ddd/clip_benchmark-1.6.1-py2.py3-none-any.whl", hash = "sha256:d83f524d18aaad1cb72bc96d39a2c6f572f34c54e82791a16492d43f77036796", size = 1944703 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "colorama"
|
name = "colorama"
|
||||||
version = "0.4.6"
|
version = "0.4.6"
|
||||||
@@ -186,79 +158,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018 },
|
{ url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "contourpy"
|
|
||||||
version = "1.3.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "numpy" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b2/a3/80937fe3efe0edacf67c9a20b955139a1a622730042c1ea991956f2704ad/contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab", size = 268466 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/82/1d/e3eaebb4aa2d7311528c048350ca8e99cdacfafd99da87bc0a5f8d81f2c2/contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124", size = 253314 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/de/f3/d796b22d1a2b587acc8100ba8c07fb7b5e17fde265a7bb05ab967f4c935a/contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1", size = 312003 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/bf/f5/0e67902bc4394daee8daa39c81d4f00b50e063ee1a46cb3938cc65585d36/contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b", size = 351896 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/1f/d6/e766395723f6256d45d6e67c13bb638dd1fa9dc10ef912dc7dd3dcfc19de/contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453", size = 320814 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a9/57/86c500d63b3e26e5b73a28b8291a67c5608d4aa87ebd17bd15bb33c178bc/contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3", size = 324969 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b8/62/bb146d1289d6b3450bccc4642e7f4413b92ebffd9bf2e91b0404323704a7/contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277", size = 1265162 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/18/04/9f7d132ce49a212c8e767042cc80ae390f728060d2eea47058f55b9eff1c/contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595", size = 1324328 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/46/23/196813901be3f97c83ababdab1382e13e0edc0bb4e7b49a7bff15fcf754e/contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697", size = 173861 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e0/82/c372be3fc000a3b2005061ca623a0d1ecd2eaafb10d9e883a2fc8566e951/contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e", size = 218566 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/12/bb/11250d2906ee2e8b466b5f93e6b19d525f3e0254ac8b445b56e618527718/contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b", size = 269555 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/67/71/1e6e95aee21a500415f5d2dbf037bf4567529b6a4e986594d7026ec5ae90/contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc", size = 254549 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/31/2c/b88986e8d79ac45efe9d8801ae341525f38e087449b6c2f2e6050468a42c/contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86", size = 313000 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c4/18/65280989b151fcf33a8352f992eff71e61b968bef7432fbfde3a364f0730/contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6", size = 352925 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/f5/c7/5fd0146c93220dbfe1a2e0f98969293b86ca9bc041d6c90c0e065f4619ad/contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85", size = 323693 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c", size = 326184 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ef/e7/104065c8270c7397c9571620d3ab880558957216f2b5ebb7e040f85eeb22/contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291", size = 1268031 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e2/4a/c788d0bdbf32c8113c2354493ed291f924d4793c4a2e85b69e737a21a658/contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f", size = 1325995 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a6/e6/a2f351a90d955f8b0564caf1ebe4b1451a3f01f83e5e3a414055a5b8bccb/contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375", size = 174396 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a8/7e/cd93cab453720a5d6cb75588cc17dcdc08fc3484b9de98b885924ff61900/contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9", size = 219787 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/37/6b/175f60227d3e7f5f1549fcb374592be311293132207e451c3d7c654c25fb/contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509", size = 271494 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6b/6a/7833cfae2c1e63d1d8875a50fd23371394f540ce809d7383550681a1fa64/contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc", size = 255444 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/7f/b3/7859efce66eaca5c14ba7619791b084ed02d868d76b928ff56890d2d059d/contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454", size = 307628 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/48/b2/011415f5e3f0a50b1e285a0bf78eb5d92a4df000553570f0851b6e309076/contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80", size = 347271 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/84/7d/ef19b1db0f45b151ac78c65127235239a8cf21a59d1ce8507ce03e89a30b/contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec", size = 318906 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ba/99/6794142b90b853a9155316c8f470d2e4821fe6f086b03e372aca848227dd/contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9", size = 323622 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3c/0f/37d2c84a900cd8eb54e105f4fa9aebd275e14e266736778bb5dccbf3bbbb/contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b", size = 1266699 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3a/8a/deb5e11dc7d9cc8f0f9c8b29d4f062203f3af230ba83c30a6b161a6effc9/contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d", size = 1326395 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/1a/35/7e267ae7c13aaf12322ccc493531f1e7f2eb8fba2927b9d7a05ff615df7a/contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e", size = 175354 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a1/35/c2de8823211d07e8a79ab018ef03960716c5dff6f4d5bff5af87fd682992/contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d", size = 220971 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9a/e7/de62050dce687c5e96f946a93546910bc67e483fe05324439e329ff36105/contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2", size = 271548 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/78/4d/c2a09ae014ae984c6bdd29c11e74d3121b25eaa117eca0bb76340efd7e1c/contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5", size = 255576 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ab/8a/915380ee96a5638bda80cd061ccb8e666bfdccea38d5741cb69e6dbd61fc/contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81", size = 306635 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/29/5c/c83ce09375428298acd4e6582aeb68b1e0d1447f877fa993d9bf6cd3b0a0/contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2", size = 345925 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/29/63/5b52f4a15e80c66c8078a641a3bfacd6e07106835682454647aca1afc852/contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7", size = 318000 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9a/e2/30ca086c692691129849198659bf0556d72a757fe2769eb9620a27169296/contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c", size = 322689 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6b/77/f37812ef700f1f185d348394debf33f22d531e714cf6a35d13d68a7003c7/contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3", size = 1268413 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3f/6d/ce84e79cdd128542ebeb268f84abb4b093af78e7f8ec504676673d2675bc/contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1", size = 1326530 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/72/22/8282f4eae20c73c89bee7a82a19c4e27af9b57bb602ecaa00713d5bdb54d/contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82", size = 175315 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e3/d5/28bca491f65312b438fbf076589dcde7f6f966b196d900777f5811b9c4e2/contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd", size = 220987 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2f/24/a4b285d6adaaf9746e4700932f579f1a7b6f9681109f694cfa233ae75c4e/contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30", size = 285001 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/48/1d/fb49a401b5ca4f06ccf467cd6c4f1fd65767e63c21322b29b04ec40b40b9/contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751", size = 268553 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/79/1e/4aef9470d13fd029087388fae750dccb49a50c012a6c8d1d634295caa644/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342", size = 310386 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b0/34/910dc706ed70153b60392b5305c708c9810d425bde12499c9184a1100888/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c", size = 349806 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/31/3c/faee6a40d66d7f2a87f7102236bf4780c57990dd7f98e5ff29881b1b1344/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f", size = 321108 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/17/69/390dc9b20dd4bb20585651d7316cc3054b7d4a7b4f8b710b2b698e08968d/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda", size = 327291 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ef/74/7030b67c4e941fe1e5424a3d988080e83568030ce0355f7c9fc556455b01/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242", size = 1263752 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/f0/ed/92d86f183a8615f13f6b9cbfc5d4298a509d6ce433432e21da838b4b63f4/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1", size = 1318403 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b3/0e/c8e4950c77dcfc897c71d61e56690a0a9df39543d2164040301b5df8e67b/contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1", size = 185117 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c1/31/1ae946f11dfbd229222e6d6ad8e7bd1891d3d48bde5fbf7a0beb9491f8e3/contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546", size = 236668 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3e/4f/e56862e64b52b55b5ddcff4090085521fc228ceb09a88390a2b103dccd1b/contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6", size = 265605 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b0/2e/52bfeeaa4541889f23d8eadc6386b442ee2470bd3cff9baa67deb2dd5c57/contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750", size = 315040 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/52/94/86bfae441707205634d80392e873295652fc313dfd93c233c52c4dc07874/contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53", size = 218221 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cycler"
|
|
||||||
version = "0.12.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fast-histogram"
|
name = "fast-histogram"
|
||||||
version = "0.14"
|
version = "0.14"
|
||||||
@@ -295,47 +194,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/b8/25/155f9f080d5e4bc0082edfda032ea2bc2b8fab3f4d25d46c1e9dd22a1a89/flatbuffers-25.2.10-py2.py3-none-any.whl", hash = "sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051", size = 30953 },
|
{ url = "https://files.pythonhosted.org/packages/b8/25/155f9f080d5e4bc0082edfda032ea2bc2b8fab3f4d25d46c1e9dd22a1a89/flatbuffers-25.2.10-py2.py3-none-any.whl", hash = "sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051", size = 30953 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "fonttools"
|
|
||||||
version = "4.56.0"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/1c/8c/9ffa2a555af0e5e5d0e2ed7fdd8c9bef474ed676995bb4c57c9cd0014248/fonttools-4.56.0.tar.gz", hash = "sha256:a114d1567e1a1586b7e9e7fc2ff686ca542a82769a296cef131e4c4af51e58f4", size = 3462892 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/1e/5e/6ac30c2cc6a29454260f13c9c6422fc509b7982c13cd4597041260d8f482/fonttools-4.56.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:331954d002dbf5e704c7f3756028e21db07097c19722569983ba4d74df014000", size = 2752190 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/92/3a/ac382a8396d1b420ee45eeb0f65b614a9ca7abbb23a1b17524054f0f2200/fonttools-4.56.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8d1613abd5af2f93c05867b3a3759a56e8bf97eb79b1da76b2bc10892f96ff16", size = 2280624 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8a/ae/00b58bfe20e9ff7fbc3dda38f5d127913942b5e252288ea9583099a31bf5/fonttools-4.56.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:705837eae384fe21cee5e5746fd4f4b2f06f87544fa60f60740007e0aa600311", size = 4562074 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/46/d0/0004ca8f6a200252e5bd6982ed99b5fe58c4c59efaf5f516621c4cd8f703/fonttools-4.56.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc871904a53a9d4d908673c6faa15689874af1c7c5ac403a8e12d967ebd0c0dc", size = 4604747 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/45/ea/c8862bd3e09d143ef8ed8268ec8a7d477828f960954889e65288ac050b08/fonttools-4.56.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:38b947de71748bab150259ee05a775e8a0635891568e9fdb3cdd7d0e0004e62f", size = 4559025 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8f/75/bb88a9552ec1de31a414066257bfd9f40f4ada00074f7a3799ea39b5741f/fonttools-4.56.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:86b2a1013ef7a64d2e94606632683f07712045ed86d937c11ef4dde97319c086", size = 4728482 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2a/5f/80a2b640df1e1bb7d459d62c8b3f37fe83fd413897e549106d4ebe6371f5/fonttools-4.56.0-cp310-cp310-win32.whl", hash = "sha256:133bedb9a5c6376ad43e6518b7e2cd2f866a05b1998f14842631d5feb36b5786", size = 2155557 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8f/85/0904f9dbe51ac70d878d3242a8583b9453a09105c3ed19c6301247fd0d3a/fonttools-4.56.0-cp310-cp310-win_amd64.whl", hash = "sha256:17f39313b649037f6c800209984a11fc256a6137cbe5487091c6c7187cae4685", size = 2200017 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/35/56/a2f3e777d48fcae7ecd29de4d96352d84e5ea9871e5f3fc88241521572cf/fonttools-4.56.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ef04bc7827adb7532be3d14462390dd71287644516af3f1e67f1e6ff9c6d6df", size = 2753325 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/71/85/d483e9c4e5ed586b183bf037a353e8d766366b54fd15519b30e6178a6a6e/fonttools-4.56.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ffda9b8cd9cb8b301cae2602ec62375b59e2e2108a117746f12215145e3f786c", size = 2281554 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/09/67/060473b832b2fade03c127019794df6dc02d9bc66fa4210b8e0d8a99d1e5/fonttools-4.56.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e993e8db36306cc3f1734edc8ea67906c55f98683d6fd34c3fc5593fdbba4c", size = 4869260 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/28/e9/47c02d5a7027e8ed841ab6a10ca00c93dadd5f16742f1af1fa3f9978adf4/fonttools-4.56.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:003548eadd674175510773f73fb2060bb46adb77c94854af3e0cc5bc70260049", size = 4898508 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/bf/8a/221d456d1afb8ca043cfd078f59f187ee5d0a580f4b49351b9ce95121f57/fonttools-4.56.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd9825822e7bb243f285013e653f6741954d8147427aaa0324a862cdbf4cbf62", size = 4877700 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a4/8c/e503863adf7a6aeff7b960e2f66fa44dd0c29a7a8b79765b2821950d7b05/fonttools-4.56.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b23d30a2c0b992fb1c4f8ac9bfde44b5586d23457759b6cf9a787f1a35179ee0", size = 5045817 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2b/50/79ba3b7e42f4eaa70b82b9e79155f0f6797858dc8a97862428b6852c6aee/fonttools-4.56.0-cp311-cp311-win32.whl", hash = "sha256:47b5e4680002ae1756d3ae3b6114e20aaee6cc5c69d1e5911f5ffffd3ee46c6b", size = 2154426 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3b/90/4926e653041c4116ecd43e50e3c79f5daae6dcafc58ceb64bc4f71dd4924/fonttools-4.56.0-cp311-cp311-win_amd64.whl", hash = "sha256:14a3e3e6b211660db54ca1ef7006401e4a694e53ffd4553ab9bc87ead01d0f05", size = 2200937 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/39/32/71cfd6877999576a11824a7fe7bc0bb57c5c72b1f4536fa56a3e39552643/fonttools-4.56.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6f195c14c01bd057bc9b4f70756b510e009c83c5ea67b25ced3e2c38e6ee6e9", size = 2747757 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/15/52/d9f716b072c5061a0b915dd4c387f74bef44c68c069e2195c753905bd9b7/fonttools-4.56.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fa760e5fe8b50cbc2d71884a1eff2ed2b95a005f02dda2fa431560db0ddd927f", size = 2279007 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d1/97/f1b3a8afa9a0d814a092a25cd42f59ccb98a0bb7a295e6e02fc9ba744214/fonttools-4.56.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d54a45d30251f1d729e69e5b675f9a08b7da413391a1227781e2a297fa37f6d2", size = 4783991 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/95/70/2a781bedc1c45a0c61d29c56425609b22ed7f971da5d7e5df2679488741b/fonttools-4.56.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:661a8995d11e6e4914a44ca7d52d1286e2d9b154f685a4d1f69add8418961563", size = 4855109 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/0c/02/a2597858e61a5e3fb6a14d5f6be9e6eb4eaf090da56ad70cedcbdd201685/fonttools-4.56.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d94449ad0a5f2a8bf5d2f8d71d65088aee48adbe45f3c5f8e00e3ad861ed81a", size = 4762496 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/f2/00/aaf00100d6078fdc73f7352b44589804af9dc12b182a2540b16002152ba4/fonttools-4.56.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f59746f7953f69cc3290ce2f971ab01056e55ddd0fb8b792c31a8acd7fee2d28", size = 4990094 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/bf/dc/3ff1db522460db60cf3adaf1b64e0c72b43406717d139786d3fa1eb20709/fonttools-4.56.0-cp312-cp312-win32.whl", hash = "sha256:bce60f9a977c9d3d51de475af3f3581d9b36952e1f8fc19a1f2254f1dda7ce9c", size = 2142888 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6f/e3/5a181a85777f7809076e51f7422e0dc77eb04676c40ec8bf6a49d390d1ff/fonttools-4.56.0-cp312-cp312-win_amd64.whl", hash = "sha256:300c310bb725b2bdb4f5fc7e148e190bd69f01925c7ab437b9c0ca3e1c7cd9ba", size = 2189734 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a5/55/f06b48d48e0b4ec3a3489efafe9bd4d81b6e0802ac51026e3ee4634e89ba/fonttools-4.56.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f20e2c0dfab82983a90f3d00703ac0960412036153e5023eed2b4641d7d5e692", size = 2735127 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/59/db/d2c7c9b6dd5cbd46f183e650a47403ffb88fca17484eb7c4b1cd88f9e513/fonttools-4.56.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f36a0868f47b7566237640c026c65a86d09a3d9ca5df1cd039e30a1da73098a0", size = 2272519 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4d/a2/da62d779c34a0e0c06415f02eab7fa3466de5d46df459c0275a255cefc65/fonttools-4.56.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62b4c6802fa28e14dba010e75190e0e6228513573f1eeae57b11aa1a39b7e5b1", size = 4762423 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/be/6a/fd4018e0448c8a5e12138906411282c5eab51a598493f080a9f0960e658f/fonttools-4.56.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a05d1f07eb0a7d755fbe01fee1fd255c3a4d3730130cf1bfefb682d18fd2fcea", size = 4834442 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6d/63/fa1dec8efb35bc11ef9c39b2d74754b45d48a3ccb2cf78c0109c0af639e8/fonttools-4.56.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0073b62c3438cf0058488c002ea90489e8801d3a7af5ce5f7c05c105bee815c3", size = 4742800 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/dd/f4/963247ae8c73ccc4cf2929e7162f595c81dbe17997d1d0ea77da24a217c9/fonttools-4.56.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cad98c94833465bcf28f51c248aaf07ca022efc6a3eba750ad9c1e0256d278", size = 4963746 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ea/e0/46f9600c39c644b54e4420f941f75fa200d9288c9ae171e5d80918b8cbb9/fonttools-4.56.0-cp313-cp313-win32.whl", hash = "sha256:d0cb73ccf7f6d7ca8d0bc7ea8ac0a5b84969a41c56ac3ac3422a24df2680546f", size = 2140927 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/27/6d/3edda54f98a550a0473f032d8050315fbc8f1b76a0d9f3879b72ebb2cdd6/fonttools-4.56.0-cp313-cp313-win_amd64.whl", hash = "sha256:62cc1253827d1e500fde9dbe981219fea4eb000fd63402283472d38e7d8aa1c6", size = 2186709 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/bf/ff/44934a031ce5a39125415eb405b9efb76fe7f9586b75291d66ae5cbfc4e6/fonttools-4.56.0-py3-none-any.whl", hash = "sha256:1088182f68c303b50ca4dc0c82d42083d176cba37af1937e1a976a31149d4d14", size = 1089800 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fsspec"
|
name = "fsspec"
|
||||||
version = "2025.3.0"
|
version = "2025.3.0"
|
||||||
@@ -401,13 +259,11 @@ name = "immich-model-exporter"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "clip-benchmark" },
|
|
||||||
{ name = "huggingface-hub" },
|
{ name = "huggingface-hub" },
|
||||||
{ name = "multilingual-clip" },
|
{ name = "multilingual-clip" },
|
||||||
{ name = "onnx" },
|
{ name = "onnx" },
|
||||||
{ name = "onnxruntime" },
|
{ name = "onnxruntime" },
|
||||||
{ name = "open-clip-torch" },
|
{ name = "open-clip-torch" },
|
||||||
{ name = "polars" },
|
|
||||||
{ name = "rknn-toolkit2" },
|
{ name = "rknn-toolkit2" },
|
||||||
{ name = "tenacity" },
|
{ name = "tenacity" },
|
||||||
{ name = "transformers" },
|
{ name = "transformers" },
|
||||||
@@ -423,13 +279,11 @@ dev = [
|
|||||||
|
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "clip-benchmark", specifier = ">=1.6.1" },
|
|
||||||
{ name = "huggingface-hub", specifier = ">=0.29.3" },
|
{ name = "huggingface-hub", specifier = ">=0.29.3" },
|
||||||
{ name = "multilingual-clip", specifier = ">=1.0.10" },
|
{ name = "multilingual-clip", specifier = ">=1.0.10" },
|
||||||
{ name = "onnx", specifier = ">=1.14.1" },
|
{ name = "onnx", specifier = ">=1.14.1" },
|
||||||
{ name = "onnxruntime", specifier = ">=1.16.0" },
|
{ name = "onnxruntime", specifier = ">=1.16.0" },
|
||||||
{ name = "open-clip-torch", specifier = ">=2.31.0" },
|
{ name = "open-clip-torch", specifier = ">=2.31.0" },
|
||||||
{ name = "polars", specifier = ">=1.25.2" },
|
|
||||||
{ name = "rknn-toolkit2", specifier = ">=2.3.0" },
|
{ name = "rknn-toolkit2", specifier = ">=2.3.0" },
|
||||||
{ name = "tenacity", specifier = ">=9.0.0" },
|
{ name = "tenacity", specifier = ">=9.0.0" },
|
||||||
{ name = "transformers", specifier = ">=4.49.0" },
|
{ name = "transformers", specifier = ">=4.49.0" },
|
||||||
@@ -455,102 +309,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 },
|
{ url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "joblib"
|
|
||||||
version = "1.4.2"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "kiwisolver"
|
|
||||||
version = "1.4.8"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/82/59/7c91426a8ac292e1cdd53a63b6d9439abd573c875c3f92c146767dd33faf/kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e", size = 97538 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/47/5f/4d8e9e852d98ecd26cdf8eaf7ed8bc33174033bba5e07001b289f07308fd/kiwisolver-1.4.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88c6f252f6816a73b1f8c904f7bbe02fd67c09a69f7cb8a0eecdbf5ce78e63db", size = 124623 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/1d/70/7f5af2a18a76fe92ea14675f8bd88ce53ee79e37900fa5f1a1d8e0b42998/kiwisolver-1.4.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72941acb7b67138f35b879bbe85be0f6c6a70cab78fe3ef6db9c024d9223e5b", size = 66720 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c6/13/e15f804a142353aefd089fadc8f1d985561a15358c97aca27b0979cb0785/kiwisolver-1.4.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce2cf1e5688edcb727fdf7cd1bbd0b6416758996826a8be1d958f91880d0809d", size = 65413 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ce/6d/67d36c4d2054e83fb875c6b59d0809d5c530de8148846b1370475eeeece9/kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c8bf637892dc6e6aad2bc6d4d69d08764166e5e3f69d469e55427b6ac001b19d", size = 1650826 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/de/c6/7b9bb8044e150d4d1558423a1568e4f227193662a02231064e3824f37e0a/kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:034d2c891f76bd3edbdb3ea11140d8510dca675443da7304205a2eaa45d8334c", size = 1628231 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b6/38/ad10d437563063eaaedbe2c3540a71101fc7fb07a7e71f855e93ea4de605/kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47b28d1dfe0793d5e96bce90835e17edf9a499b53969b03c6c47ea5985844c3", size = 1408938 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/52/ce/c0106b3bd7f9e665c5f5bc1e07cc95b5dabd4e08e3dad42dbe2faad467e7/kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb158fe28ca0c29f2260cca8c43005329ad58452c36f0edf298204de32a9a3ed", size = 1422799 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d0/87/efb704b1d75dc9758087ba374c0f23d3254505edaedd09cf9d247f7878b9/kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5536185fce131780ebd809f8e623bf4030ce1b161353166c49a3c74c287897f", size = 1354362 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/eb/b3/fd760dc214ec9a8f208b99e42e8f0130ff4b384eca8b29dd0efc62052176/kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:369b75d40abedc1da2c1f4de13f3482cb99e3237b38726710f4a793432b1c5ff", size = 2222695 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a2/09/a27fb36cca3fc01700687cc45dae7a6a5f8eeb5f657b9f710f788748e10d/kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:641f2ddf9358c80faa22e22eb4c9f54bd3f0e442e038728f500e3b978d00aa7d", size = 2370802 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3d/c3/ba0a0346db35fe4dc1f2f2cf8b99362fbb922d7562e5f911f7ce7a7b60fa/kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d561d2d8883e0819445cfe58d7ddd673e4015c3c57261d7bdcd3710d0d14005c", size = 2334646 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/41/52/942cf69e562f5ed253ac67d5c92a693745f0bed3c81f49fc0cbebe4d6b00/kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1732e065704b47c9afca7ffa272f845300a4eb959276bf6970dc07265e73b605", size = 2467260 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/32/26/2d9668f30d8a494b0411d4d7d4ea1345ba12deb6a75274d58dd6ea01e951/kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcb1ebc3547619c3b58a39e2448af089ea2ef44b37988caf432447374941574e", size = 2288633 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/98/99/0dd05071654aa44fe5d5e350729961e7bb535372935a45ac89a8924316e6/kiwisolver-1.4.8-cp310-cp310-win_amd64.whl", hash = "sha256:89c107041f7b27844179ea9c85d6da275aa55ecf28413e87624d033cf1f6b751", size = 71885 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6c/fc/822e532262a97442989335394d441cd1d0448c2e46d26d3e04efca84df22/kiwisolver-1.4.8-cp310-cp310-win_arm64.whl", hash = "sha256:b5773efa2be9eb9fcf5415ea3ab70fc785d598729fd6057bea38d539ead28271", size = 65175 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/da/ed/c913ee28936c371418cb167b128066ffb20bbf37771eecc2c97edf8a6e4c/kiwisolver-1.4.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a4d3601908c560bdf880f07d94f31d734afd1bb71e96585cace0e38ef44c6d84", size = 124635 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4c/45/4a7f896f7467aaf5f56ef093d1f329346f3b594e77c6a3c327b2d415f521/kiwisolver-1.4.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856b269c4d28a5c0d5e6c1955ec36ebfd1651ac00e1ce0afa3e28da95293b561", size = 66717 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/5f/b4/c12b3ac0852a3a68f94598d4c8d569f55361beef6159dce4e7b624160da2/kiwisolver-1.4.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c2b9a96e0f326205af81a15718a9073328df1173a2619a68553decb7097fd5d7", size = 65413 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a9/98/1df4089b1ed23d83d410adfdc5947245c753bddfbe06541c4aae330e9e70/kiwisolver-1.4.8-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5020c83e8553f770cb3b5fc13faac40f17e0b205bd237aebd21d53d733adb03", size = 1343994 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8d/bf/b4b169b050c8421a7c53ea1ea74e4ef9c335ee9013216c558a047f162d20/kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dace81d28c787956bfbfbbfd72fdcef014f37d9b48830829e488fdb32b49d954", size = 1434804 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/66/5a/e13bd341fbcf73325ea60fdc8af752addf75c5079867af2e04cc41f34434/kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11e1022b524bd48ae56c9b4f9296bce77e15a2e42a502cceba602f804b32bb79", size = 1450690 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9b/4f/5955dcb376ba4a830384cc6fab7d7547bd6759fe75a09564910e9e3bb8ea/kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b9b4d2892fefc886f30301cdd80debd8bb01ecdf165a449eb6e78f79f0fabd6", size = 1376839 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3a/97/5edbed69a9d0caa2e4aa616ae7df8127e10f6586940aa683a496c2c280b9/kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a96c0e790ee875d65e340ab383700e2b4891677b7fcd30a699146f9384a2bb0", size = 1435109 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/13/fc/e756382cb64e556af6c1809a1bbb22c141bbc2445049f2da06b420fe52bf/kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23454ff084b07ac54ca8be535f4174170c1094a4cff78fbae4f73a4bcc0d4dab", size = 2245269 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/76/15/e59e45829d7f41c776d138245cabae6515cb4eb44b418f6d4109c478b481/kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:87b287251ad6488e95b4f0b4a79a6d04d3ea35fde6340eb38fbd1ca9cd35bbbc", size = 2393468 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e9/39/483558c2a913ab8384d6e4b66a932406f87c95a6080112433da5ed668559/kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b21dbe165081142b1232a240fc6383fd32cdd877ca6cc89eab93e5f5883e1c25", size = 2355394 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/01/aa/efad1fbca6570a161d29224f14b082960c7e08268a133fe5dc0f6906820e/kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:768cade2c2df13db52475bd28d3a3fac8c9eff04b0e9e2fda0f3760f20b3f7fc", size = 2490901 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c9/4f/15988966ba46bcd5ab9d0c8296914436720dd67fca689ae1a75b4ec1c72f/kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d47cfb2650f0e103d4bf68b0b5804c68da97272c84bb12850d877a95c056bd67", size = 2312306 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2d/27/bdf1c769c83f74d98cbc34483a972f221440703054894a37d174fba8aa68/kiwisolver-1.4.8-cp311-cp311-win_amd64.whl", hash = "sha256:ed33ca2002a779a2e20eeb06aea7721b6e47f2d4b8a8ece979d8ba9e2a167e34", size = 71966 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4a/c9/9642ea855604aeb2968a8e145fc662edf61db7632ad2e4fb92424be6b6c0/kiwisolver-1.4.8-cp311-cp311-win_arm64.whl", hash = "sha256:16523b40aab60426ffdebe33ac374457cf62863e330a90a0383639ce14bf44b2", size = 65311 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/fc/aa/cea685c4ab647f349c3bc92d2daf7ae34c8e8cf405a6dcd3a497f58a2ac3/kiwisolver-1.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6af5e8815fd02997cb6ad9bbed0ee1e60014438ee1a5c2444c96f87b8843502", size = 124152 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c5/0b/8db6d2e2452d60d5ebc4ce4b204feeb16176a851fd42462f66ade6808084/kiwisolver-1.4.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bade438f86e21d91e0cf5dd7c0ed00cda0f77c8c1616bd83f9fc157fa6760d31", size = 66555 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/60/26/d6a0db6785dd35d3ba5bf2b2df0aedc5af089962c6eb2cbf67a15b81369e/kiwisolver-1.4.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b83dc6769ddbc57613280118fb4ce3cd08899cc3369f7d0e0fab518a7cf37fdb", size = 65067 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c9/ed/1d97f7e3561e09757a196231edccc1bcf59d55ddccefa2afc9c615abd8e0/kiwisolver-1.4.8-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111793b232842991be367ed828076b03d96202c19221b5ebab421ce8bcad016f", size = 1378443 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/29/61/39d30b99954e6b46f760e6289c12fede2ab96a254c443639052d1b573fbc/kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257af1622860e51b1a9d0ce387bf5c2c4f36a90594cb9514f55b074bcc787cfc", size = 1472728 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/0c/3e/804163b932f7603ef256e4a715e5843a9600802bb23a68b4e08c8c0ff61d/kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b5637c3f316cab1ec1c9a12b8c5f4750a4c4b71af9157645bf32830e39c03a", size = 1478388 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8a/9e/60eaa75169a154700be74f875a4d9961b11ba048bef315fbe89cb6999056/kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:782bb86f245ec18009890e7cb8d13a5ef54dcf2ebe18ed65f795e635a96a1c6a", size = 1413849 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/bc/b3/9458adb9472e61a998c8c4d95cfdfec91c73c53a375b30b1428310f923e4/kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc978a80a0db3a66d25767b03688f1147a69e6237175c0f4ffffaaedf744055a", size = 1475533 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e4/7a/0a42d9571e35798de80aef4bb43a9b672aa7f8e58643d7bd1950398ffb0a/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:36dbbfd34838500a31f52c9786990d00150860e46cd5041386f217101350f0d3", size = 2268898 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d9/07/1255dc8d80271400126ed8db35a1795b1a2c098ac3a72645075d06fe5c5d/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eaa973f1e05131de5ff3569bbba7f5fd07ea0595d3870ed4a526d486fe57fa1b", size = 2425605 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/84/df/5a3b4cf13780ef6f6942df67b138b03b7e79e9f1f08f57c49957d5867f6e/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a66f60f8d0c87ab7f59b6fb80e642ebb29fec354a4dfad687ca4092ae69d04f4", size = 2375801 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8f/10/2348d068e8b0f635c8c86892788dac7a6b5c0cb12356620ab575775aad89/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858416b7fb777a53f0c59ca08190ce24e9abbd3cffa18886a5781b8e3e26f65d", size = 2520077 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/32/d8/014b89fee5d4dce157d814303b0fce4d31385a2af4c41fed194b173b81ac/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:085940635c62697391baafaaeabdf3dd7a6c3643577dde337f4d66eba021b2b8", size = 2338410 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/bd/72/dfff0cc97f2a0776e1c9eb5bef1ddfd45f46246c6533b0191887a427bca5/kiwisolver-1.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:01c3d31902c7db5fb6182832713d3b4122ad9317c2c5877d0539227d96bb2e50", size = 71853 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/dc/85/220d13d914485c0948a00f0b9eb419efaf6da81b7d72e88ce2391f7aed8d/kiwisolver-1.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:a3c44cb68861de93f0c4a8175fbaa691f0aa22550c331fefef02b618a9dcb476", size = 65424 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/79/b3/e62464a652f4f8cd9006e13d07abad844a47df1e6537f73ddfbf1bc997ec/kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09", size = 124156 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8d/2d/f13d06998b546a2ad4f48607a146e045bbe48030774de29f90bdc573df15/kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1", size = 66555 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/59/e3/b8bd14b0a54998a9fd1e8da591c60998dc003618cb19a3f94cb233ec1511/kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c", size = 65071 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/f0/1c/6c86f6d85ffe4d0ce04228d976f00674f1df5dc893bf2dd4f1928748f187/kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b", size = 1378053 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4e/b9/1c6e9f6dcb103ac5cf87cb695845f5fa71379021500153566d8a8a9fc291/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47", size = 1472278 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ee/81/aca1eb176de671f8bda479b11acdc42c132b61a2ac861c883907dde6debb/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16", size = 1478139 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/49/f4/e081522473671c97b2687d380e9e4c26f748a86363ce5af48b4a28e48d06/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc", size = 1413517 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8f/e9/6a7d025d8da8c4931522922cd706105aa32b3291d1add8c5427cdcd66e63/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246", size = 1474952 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/82/13/13fa685ae167bee5d94b415991c4fc7bb0a1b6ebea6e753a87044b209678/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794", size = 2269132 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ef/92/bb7c9395489b99a6cb41d502d3686bac692586db2045adc19e45ee64ed23/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b", size = 2425997 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ed/12/87f0e9271e2b63d35d0d8524954145837dd1a6c15b62a2d8c1ebe0f182b4/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3", size = 2376060 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/02/6e/c8af39288edbce8bf0fa35dee427b082758a4b71e9c91ef18fa667782138/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957", size = 2520471 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/13/78/df381bc7b26e535c91469f77f16adcd073beb3e2dd25042efd064af82323/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb", size = 2338793 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d0/dc/c1abe38c37c071d0fc71c9a474fd0b9ede05d42f5a458d584619cfd2371a/kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2", size = 71855 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a0/b6/21529d595b126ac298fdd90b705d87d4c5693de60023e0efcb4f387ed99e/kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30", size = 65430 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/34/bd/b89380b7298e3af9b39f49334e3e2a4af0e04819789f04b43d560516c0c8/kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c", size = 126294 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/83/41/5857dc72e5e4148eaac5aa76e0703e594e4465f8ab7ec0fc60e3a9bb8fea/kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc", size = 67736 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e1/d1/be059b8db56ac270489fb0b3297fd1e53d195ba76e9bbb30e5401fa6b759/kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712", size = 66194 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e1/83/4b73975f149819eb7dcf9299ed467eba068ecb16439a98990dcb12e63fdd/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e", size = 1465942 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c7/2c/30a5cdde5102958e602c07466bce058b9d7cb48734aa7a4327261ac8e002/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880", size = 1595341 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ff/9b/1e71db1c000385aa069704f5990574b8244cce854ecd83119c19e83c9586/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062", size = 1598455 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/85/92/c8fec52ddf06231b31cbb779af77e99b8253cd96bd135250b9498144c78b/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7", size = 1522138 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/0b/51/9eb7e2cd07a15d8bdd976f6190c0164f92ce1904e5c0c79198c4972926b7/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed", size = 1582857 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/0f/95/c5a00387a5405e68ba32cc64af65ce881a39b98d73cc394b24143bebc5b8/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d", size = 2293129 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/44/83/eeb7af7d706b8347548313fa3a3a15931f404533cc54fe01f39e830dd231/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165", size = 2421538 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/05/f9/27e94c1b3eb29e6933b6986ffc5fa1177d2cd1f0c8efc5f02c91c9ac61de/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6", size = 2390661 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d9/d4/3c9735faa36ac591a4afcc2980d2691000506050b7a7e80bcfe44048daa7/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90", size = 2546710 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4c/fa/be89a49c640930180657482a74970cdcf6f7072c8d2471e1babe17a222dc/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85", size = 2349213 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/1f/f9/ae81c47a43e33b93b0a9819cac6723257f5da2a5a60daf46aa5c7226ea85/kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e7a019419b7b510f0f7c9dceff8c5eae2392037eae483a7f9162625233802b0a", size = 60403 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/58/ca/f92b5cb6f4ce0c1ebfcfe3e2e42b96917e16f7090e45b21102941924f18f/kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:286b18e86682fd2217a48fc6be6b0f20c1d0ed10958d8dc53453ad58d7be0bf8", size = 58657 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/80/28/ae0240f732f0484d3a4dc885d055653c47144bdf59b670aae0ec3c65a7c8/kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4191ee8dfd0be1c3666ccbac178c5a05d5f8d689bbe3fc92f3c4abec817f8fe0", size = 84948 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/5d/eb/78d50346c51db22c7203c1611f9b513075f35c4e0e4877c5dde378d66043/kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd2785b9391f2873ad46088ed7599a6a71e762e1ea33e87514b1a441ed1da1c", size = 81186 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/43/f8/7259f18c77adca88d5f64f9a522792e178b2691f3748817a8750c2d216ef/kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c07b29089b7ba090b6f1a669f1411f27221c3662b3a1b7010e67b59bb5a6f10b", size = 80279 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3a/1d/50ad811d1c5dae091e4cf046beba925bcae0a610e79ae4c538f996f63ed5/kiwisolver-1.4.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65ea09a5a3faadd59c2ce96dc7bf0f364986a315949dc6374f04396b0d60e09b", size = 71762 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "markdown-it-py"
|
name = "markdown-it-py"
|
||||||
version = "3.0.0"
|
version = "3.0.0"
|
||||||
@@ -621,58 +379,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 },
|
{ url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "matplotlib"
|
|
||||||
version = "3.10.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "contourpy" },
|
|
||||||
{ name = "cycler" },
|
|
||||||
{ name = "fonttools" },
|
|
||||||
{ name = "kiwisolver" },
|
|
||||||
{ name = "numpy" },
|
|
||||||
{ name = "packaging" },
|
|
||||||
{ name = "pillow" },
|
|
||||||
{ name = "pyparsing" },
|
|
||||||
{ name = "python-dateutil" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/2f/08/b89867ecea2e305f408fbb417139a8dd941ecf7b23a2e02157c36da546f0/matplotlib-3.10.1.tar.gz", hash = "sha256:e8d2d0e3881b129268585bf4765ad3ee73a4591d77b9a18c214ac7e3a79fb2ba", size = 36743335 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ee/b1/f70e27cf1cd76ce2a5e1aa5579d05afe3236052c6d9b9a96325bc823a17e/matplotlib-3.10.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ff2ae14910be903f4a24afdbb6d7d3a6c44da210fc7d42790b87aeac92238a16", size = 8163654 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/26/af/5ec3d4636106718bb62503a03297125d4514f98fe818461bd9e6b9d116e4/matplotlib-3.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0721a3fd3d5756ed593220a8b86808a36c5031fce489adb5b31ee6dbb47dd5b2", size = 8037943 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a1/3d/07f9003a71b698b848c9925d05979ffa94a75cd25d1a587202f0bb58aa81/matplotlib-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0673b4b8f131890eb3a1ad058d6e065fb3c6e71f160089b65f8515373394698", size = 8449510 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/12/87/9472d4513ff83b7cd864311821793ab72234fa201ab77310ec1b585d27e2/matplotlib-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e875b95ac59a7908978fe307ecdbdd9a26af7fa0f33f474a27fcf8c99f64a19", size = 8586585 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/31/9e/fe74d237d2963adae8608faeb21f778cf246dbbf4746cef87cffbc82c4b6/matplotlib-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2589659ea30726284c6c91037216f64a506a9822f8e50592d48ac16a2f29e044", size = 9397911 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b6/1b/025d3e59e8a4281ab463162ad7d072575354a1916aba81b6a11507dfc524/matplotlib-3.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a97ff127f295817bc34517255c9db6e71de8eddaab7f837b7d341dee9f2f587f", size = 8052998 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a5/14/a1b840075be247bb1834b22c1e1d558740b0f618fe3a823740181ca557a1/matplotlib-3.10.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:057206ff2d6ab82ff3e94ebd94463d084760ca682ed5f150817b859372ec4401", size = 8174669 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/0a/e4/300b08e3e08f9c98b0d5635f42edabf2f7a1d634e64cb0318a71a44ff720/matplotlib-3.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a144867dd6bf8ba8cb5fc81a158b645037e11b3e5cf8a50bd5f9917cb863adfe", size = 8047996 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/75/f9/8d99ff5a2498a5f1ccf919fb46fb945109623c6108216f10f96428f388bc/matplotlib-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56c5d9fcd9879aa8040f196a235e2dcbdf7dd03ab5b07c0696f80bc6cf04bedd", size = 8461612 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/40/b8/53fa08a5eaf78d3a7213fd6da1feec4bae14a81d9805e567013811ff0e85/matplotlib-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f69dc9713e4ad2fb21a1c30e37bd445d496524257dfda40ff4a8efb3604ab5c", size = 8602258 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/40/87/4397d2ce808467af86684a622dd112664553e81752ea8bf61bdd89d24a41/matplotlib-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c59af3e8aca75d7744b68e8e78a669e91ccbcf1ac35d0102a7b1b46883f1dd7", size = 9408896 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d7/68/0d03098b3feb786cbd494df0aac15b571effda7f7cbdec267e8a8d398c16/matplotlib-3.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:11b65088c6f3dae784bc72e8d039a2580186285f87448babb9ddb2ad0082993a", size = 8061281 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/7c/1d/5e0dc3b59c034e43de16f94deb68f4ad8a96b3ea00f4b37c160b7474928e/matplotlib-3.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:66e907a06e68cb6cfd652c193311d61a12b54f56809cafbed9736ce5ad92f107", size = 8175488 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/7a/81/dae7e14042e74da658c3336ab9799128e09a1ee03964f2d89630b5d12106/matplotlib-3.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b4bb156abb8fa5e5b2b460196f7db7264fc6d62678c03457979e7d5254b7be", size = 8046264 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/21/c4/22516775dcde10fc9c9571d155f90710761b028fc44f660508106c363c97/matplotlib-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1985ad3d97f51307a2cbfc801a930f120def19ba22864182dacef55277102ba6", size = 8452048 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/63/23/c0615001f67ce7c96b3051d856baedc0c818a2ed84570b9bf9bde200f85d/matplotlib-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c96f2c2f825d1257e437a1482c5a2cf4fee15db4261bd6fc0750f81ba2b4ba3d", size = 8597111 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ca/c0/a07939a82aed77770514348f4568177d7dadab9787ebc618a616fe3d665e/matplotlib-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35e87384ee9e488d8dd5a2dd7baf471178d38b90618d8ea147aced4ab59c9bea", size = 9402771 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a6/b6/a9405484fb40746fdc6ae4502b16a9d6e53282ba5baaf9ebe2da579f68c4/matplotlib-3.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:cfd414bce89cc78a7e1d25202e979b3f1af799e416010a20ab2b5ebb3a02425c", size = 8063742 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/60/73/6770ff5e5523d00f3bc584acb6031e29ee5c8adc2336b16cd1d003675fe0/matplotlib-3.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c42eee41e1b60fd83ee3292ed83a97a5f2a8239b10c26715d8a6172226988d7b", size = 8176112 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/08/97/b0ca5da0ed54a3f6599c3ab568bdda65269bc27c21a2c97868c1625e4554/matplotlib-3.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4f0647b17b667ae745c13721602b540f7aadb2a32c5b96e924cd4fea5dcb90f1", size = 8046931 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/df/9a/1acbdc3b165d4ce2dcd2b1a6d4ffb46a7220ceee960c922c3d50d8514067/matplotlib-3.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa3854b5f9473564ef40a41bc922be978fab217776e9ae1545c9b3a5cf2092a3", size = 8453422 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/51/d0/2bc4368abf766203e548dc7ab57cf7e9c621f1a3c72b516cc7715347b179/matplotlib-3.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e496c01441be4c7d5f96d4e40f7fca06e20dcb40e44c8daa2e740e1757ad9e6", size = 8596819 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ab/1b/8b350f8a1746c37ab69dda7d7528d1fc696efb06db6ade9727b7887be16d/matplotlib-3.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d45d3f5245be5b469843450617dcad9af75ca50568acf59997bed9311131a0b", size = 9402782 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/89/06/f570373d24d93503988ba8d04f213a372fa1ce48381c5eb15da985728498/matplotlib-3.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:8e8e25b1209161d20dfe93037c8a7f7ca796ec9aa326e6e4588d8c4a5dd1e473", size = 8063812 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/fc/e0/8c811a925b5a7ad75135f0e5af46408b78af88bbb02a1df775100ef9bfef/matplotlib-3.10.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:19b06241ad89c3ae9469e07d77efa87041eac65d78df4fcf9cac318028009b01", size = 8214021 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4a/34/319ec2139f68ba26da9d00fce2ff9f27679fb799a6c8e7358539801fd629/matplotlib-3.10.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01e63101ebb3014e6e9f80d9cf9ee361a8599ddca2c3e166c563628b39305dbb", size = 8090782 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/77/ea/9812124ab9a99df5b2eec1110e9b2edc0b8f77039abf4c56e0a376e84a29/matplotlib-3.10.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f06bad951eea6422ac4e8bdebcf3a70c59ea0a03338c5d2b109f57b64eb3972", size = 8478901 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c9/db/b05bf463689134789b06dea85828f8ebe506fa1e37593f723b65b86c9582/matplotlib-3.10.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3dfb036f34873b46978f55e240cff7a239f6c4409eac62d8145bad3fc6ba5a3", size = 8613864 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c2/04/41ccec4409f3023a7576df3b5c025f1a8c8b81fbfe922ecfd837ac36e081/matplotlib-3.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dc6ab14a7ab3b4d813b88ba957fc05c79493a037f54e246162033591e770de6f", size = 9409487 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ac/c2/0d5aae823bdcc42cc99327ecdd4d28585e15ccd5218c453b7bcd827f3421/matplotlib-3.10.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bc411ebd5889a78dabbc457b3fa153203e22248bfa6eedc6797be5df0164dbf9", size = 8134832 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c8/f6/10adb696d8cbeed2ab4c2e26ecf1c80dd3847bbf3891f4a0c362e0e08a5a/matplotlib-3.10.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:648406f1899f9a818cef8c0231b44dcfc4ff36f167101c3fd1c9151f24220fdc", size = 8158685 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3f/84/0603d917406072763e7f9bb37747d3d74d7ecd4b943a8c947cc3ae1cf7af/matplotlib-3.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:02582304e352f40520727984a5a18f37e8187861f954fea9be7ef06569cf85b4", size = 8035491 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/fd/7d/6a8b31dd07ed856b3eae001c9129670ef75c4698fa1c2a6ac9f00a4a7054/matplotlib-3.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3809916157ba871bcdd33d3493acd7fe3037db5daa917ca6e77975a94cef779", size = 8590087 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mdurl"
|
name = "mdurl"
|
||||||
version = "0.1.2"
|
version = "0.1.2"
|
||||||
@@ -791,124 +497,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/16/2e/86f24451c2d530c88daf997cb8d6ac622c1d40d19f5a031ed68a4b73a374/numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818", size = 15517754 },
|
{ url = "https://files.pythonhosted.org/packages/16/2e/86f24451c2d530c88daf997cb8d6ac622c1d40d19f5a031ed68a4b73a374/numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818", size = 15517754 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cublas-cu12"
|
|
||||||
version = "12.4.5.8"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ae/71/1c91302526c45ab494c23f61c7a84aa568b8c1f9d196efa5993957faf906/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl", hash = "sha256:2fc8da60df463fdefa81e323eef2e36489e1c94335b5358bcb38360adf75ac9b", size = 363438805 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cuda-cupti-cu12"
|
|
||||||
version = "12.4.127"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/67/42/f4f60238e8194a3106d06a058d494b18e006c10bb2b915655bd9f6ea4cb1/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hash = "sha256:9dec60f5ac126f7bb551c055072b69d85392b13311fcc1bcda2202d172df30fb", size = 13813957 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cuda-nvrtc-cu12"
|
|
||||||
version = "12.4.127"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2c/14/91ae57cd4db3f9ef7aa99f4019cfa8d54cb4caa7e00975df6467e9725a9f/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hash = "sha256:a178759ebb095827bd30ef56598ec182b85547f1508941a3d560eb7ea1fbf338", size = 24640306 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cuda-runtime-cu12"
|
|
||||||
version = "12.4.127"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ea/27/1795d86fe88ef397885f2e580ac37628ed058a92ed2c39dc8eac3adf0619/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hash = "sha256:64403288fa2136ee8e467cdc9c9427e0434110899d07c779f25b5c068934faa5", size = 883737 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cudnn-cu12"
|
|
||||||
version = "9.1.0.70"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
|
||||||
]
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9f/fd/713452cd72343f682b1c7b9321e23829f00b842ceaedcda96e742ea0b0b3/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl", hash = "sha256:165764f44ef8c61fcdfdfdbe769d687e06374059fbb388b6c89ecb0e28793a6f", size = 664752741 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cufft-cu12"
|
|
||||||
version = "11.2.1.3"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
|
||||||
]
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/27/94/3266821f65b92b3138631e9c8e7fe1fb513804ac934485a8d05776e1dd43/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f083fc24912aa410be21fa16d157fed2055dab1cc4b6934a0e03cba69eb242b9", size = 211459117 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-curand-cu12"
|
|
||||||
version = "10.3.5.147"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8a/6d/44ad094874c6f1b9c654f8ed939590bdc408349f137f9b98a3a23ccec411/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl", hash = "sha256:a88f583d4e0bb643c49743469964103aa59f7f708d862c3ddb0fc07f851e3b8b", size = 56305206 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cusolver-cu12"
|
|
||||||
version = "11.6.1.9"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
|
||||||
{ name = "nvidia-cusparse-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
|
||||||
{ name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
|
||||||
]
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3a/e1/5b9089a4b2a4790dfdea8b3a006052cfecff58139d5a4e34cb1a51df8d6f/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl", hash = "sha256:19e33fa442bcfd085b3086c4ebf7e8debc07cfe01e11513cc6d332fd918ac260", size = 127936057 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cusparse-cu12"
|
|
||||||
version = "12.3.1.170"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
|
||||||
]
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/db/f7/97a9ea26ed4bbbfc2d470994b8b4f338ef663be97b8f677519ac195e113d/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ea4f11a2904e2a8dc4b1833cc1b5181cde564edd0d5cd33e3c168eff2d1863f1", size = 207454763 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-cusparselt-cu12"
|
|
||||||
version = "0.6.2"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/78/a8/bcbb63b53a4b1234feeafb65544ee55495e1bb37ec31b999b963cbccfd1d/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:df2c24502fd76ebafe7457dbc4716b2fec071aabaed4fb7691a201cde03704d9", size = 150057751 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-nccl-cu12"
|
|
||||||
version = "2.21.5"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/df/99/12cd266d6233f47d00daf3a72739872bdc10267d0383508b0b9c84a18bb6/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl", hash = "sha256:8579076d30a8c24988834445f8d633c697d42397e92ffc3f63fa26766d25e0a0", size = 188654414 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-nvjitlink-cu12"
|
|
||||||
version = "12.4.127"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ff/ff/847841bacfbefc97a00036e0fce5a0f086b640756dc38caea5e1bb002655/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hash = "sha256:06b3b9b25bf3f8af351d664978ca26a16d2c5127dbd53c0497e28d1fb9611d57", size = 21066810 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "nvidia-nvtx-cu12"
|
|
||||||
version = "12.4.127"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/87/20/199b8713428322a2f22b722c62b8cc278cc53dffa9705d744484b5035ee9/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hash = "sha256:781e950d9b9f60d8241ccea575b32f5105a5baf4c2351cab5256a24869f12a1a", size = 99144 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "onnx"
|
name = "onnx"
|
||||||
version = "1.17.0"
|
version = "1.17.0"
|
||||||
@@ -996,8 +584,10 @@ dependencies = [
|
|||||||
{ name = "regex" },
|
{ name = "regex" },
|
||||||
{ name = "safetensors" },
|
{ name = "safetensors" },
|
||||||
{ name = "timm" },
|
{ name = "timm" },
|
||||||
{ name = "torch" },
|
{ name = "torch", version = "2.6.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "torchvision" },
|
{ name = "torch", version = "2.6.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
|
||||||
|
{ name = "torchvision", version = "0.21.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or sys_platform == 'darwin'" },
|
||||||
|
{ name = "torchvision", version = "0.21.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
||||||
{ name = "tqdm" },
|
{ name = "tqdm" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/23/2d/df12ee8417c918fde4c8c6af470ae2c2d2dc75971dc1e3cc7f108a3cd92a/open_clip_torch-2.31.0.tar.gz", hash = "sha256:a3998b5ac13a1d11b003e6147f2dea834c7a48b3fd7d902fc17a0fff7638e6ee", size = 1486178 }
|
sdist = { url = "https://files.pythonhosted.org/packages/23/2d/df12ee8417c918fde4c8c6af470ae2c2d2dc75971dc1e3cc7f108a3cd92a/open_clip_torch-2.31.0.tar.gz", hash = "sha256:a3998b5ac13a1d11b003e6147f2dea834c7a48b3fd7d902fc17a0fff7638e6ee", size = 1486178 }
|
||||||
@@ -1116,20 +706,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439 },
|
{ url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "polars"
|
|
||||||
version = "1.25.2"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/57/56/d8a13c3a1990c92cc2c4f1887e97ea15aabf5685b1e826f875ca3e4e6c9e/polars-1.25.2.tar.gz", hash = "sha256:c6bd9b1b17c86e49bcf8aac44d2238b77e414d7df890afc3924812a5c989a4fe", size = 4501858 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/bd/ec/61ae653b7848769baa5c5aaa00f3b3eaedaec56c3f1203a90dafe893a368/polars-1.25.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:59f2a34520ea4307a22e18b832310f8045a8a348606ca99ae785499b31eb4170", size = 34539929 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/58/80/54f8cbb048558114ca519d7c40a994130c5a537246923ecce47cf269eaa6/polars-1.25.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:e9fe45bdc2327c2e2b64e8849a992b6d3bd4a7e7848b8a7a3a439cca9674dc87", size = 31326982 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/cd/92/db411b7c83f694dca1b8348fa57a120c27c67cf622b85fa88c7ecf463adb/polars-1.25.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7fcbb4f476784384ccda48757fca4e8c2e2c5a0a3aef3717aaf56aee4e30e09", size = 35121263 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9f/a5/5ff200ce3bc643d5f12d91eddb9720fa083267c45fe395bcf0046e97cc2d/polars-1.25.2-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:9dd91885c9ee5ffad8725c8591f73fb7bd2632c740277ee641f0453176b3d4b8", size = 32254697 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/70/d5/7a5458d05d5a0af816b1c7034aa1d026b7b8176a8de41e96dac70fcf29e2/polars-1.25.2-cp39-abi3-win_amd64.whl", hash = "sha256:a547796643b9a56cb2959be87d7cb87ff80a5c8ae9367f32fe1ad717039e9afc", size = 35318381 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/24/df/60d35c4ae8ec357a5fb9914eb253bd1bad9e0f5332eda2bd2c6371dd3668/polars-1.25.2-cp39-abi3-win_arm64.whl", hash = "sha256:a2488e9d4b67bf47b18088f7264999180559e6ec2637ed11f9d0d4f98a74a37c", size = 31619833 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "protobuf"
|
name = "protobuf"
|
||||||
version = "3.20.3"
|
version = "3.20.3"
|
||||||
@@ -1158,51 +734,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885 },
|
{ url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pycocoevalcap"
|
|
||||||
version = "1.2"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "pycocotools" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/ae/d7/6b77c7cddc3832ec4c551633c787aeeda168cc2e0ff173649ce145f1b85c/pycocoevalcap-1.2.tar.gz", hash = "sha256:7857f4d596ca2fa0b1a9a3c2067588a4257556077b7ad614d00b2b7b8f57cdde", size = 104309308 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/08/f9/466f289f1628296b5e368940f89e3cfcfb066d15ddc02ff536dc532b1c93/pycocoevalcap-1.2-py3-none-any.whl", hash = "sha256:083ed7910f1aec000b0a237ef6665f74edf19954204d0b1cbdb8399ed132228d", size = 104312215 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pycocotools"
|
|
||||||
version = "2.0.8"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "matplotlib" },
|
|
||||||
{ name = "numpy" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/6b/1a/cdfce175d663568215b3a6b6170ad2a526932cc1021dffabda56a5c3f189/pycocotools-2.0.8.tar.gz", hash = "sha256:8f2bcedb786ba26c367a3680f9c4eb5b2ad9dccb2b34eaeb205e0a021e1dfb8d", size = 24993 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/e1/03/8738c457ca04aed97f79781827b20862e78262da7ccc8062bcc6d6e857e2/pycocotools-2.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9a66886f45b04cee1ff0492e9f5e25d430d8aa3eb63e63c4ebc620945caa11b9", size = 162301 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ad/0a/bcd4592a85896a4281bb8ec5dd034ce12d82bb26b6e73e73b3c435377db1/pycocotools-2.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257130b65b7b0f122ce1ed62942867ca9789e56a68109682796cc85c9770c74a", size = 410644 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6a/03/6c0bf810a5df7876caaf11f5b113e7ffd4b2fa9767d360489c6fdcefe8e5/pycocotools-2.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:663c14cd471913aabecb17ddb52b3b254a65dcaba26ccfea408c52c75cc3862c", size = 427769 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/03/76/587579abcf3bab2b5a9b89ee28e78bef3df3198d724a4980b0875f69586b/pycocotools-2.0.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:35a6ef931448632efe1c83eb2ac3c37c53b3c080a5432bc6ff1858944a603a2d", size = 408920 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6d/d2/57421216b31920eb942bd8a81cead5e9b42dfd433e15d682cd7e156b6f84/pycocotools-2.0.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e7b4ee8b15539d6f789857faefe7d3eef81755f7b17f60903798524e4f321a5c", size = 426178 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8d/06/b9bdedfdcbf2fb5ba55252f1a5ff5e8e02ae204fe392f7b4f5babbc14a2a/pycocotools-2.0.8-cp310-cp310-win_amd64.whl", hash = "sha256:889edd2dbf61f4d2fe77c2e8e5608476903d1911d2ed00f9911354eff23f2423", size = 84484 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/05/90/52de34f2f032e3de957c953fd1d4a9025175622714e5023ba4d6a9a96ece/pycocotools-2.0.8-cp310-cp310-win_arm64.whl", hash = "sha256:52e06a833fad735485cad5c1f8fe40e2b586261b2856806b5d6923b0b5a3c971", size = 70968 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6b/56/9eedccfd1cfdaf6553d527bed0b2b5572550567a5786a8beb098027a3e5e/pycocotools-2.0.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:92bf788e6936fc52b57ccaaa78ecdaeac81872eebbfc45b6fe16ae18b85709bd", size = 162868 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d5/9c/09cd808743338db170915deb35fa020b792d583238afe55f27c011f91c3c/pycocotools-2.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a07f57f991e379959c0f4a1b9ea35d875876433b7f45c6d8fe6b718e58834bc", size = 443318 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8b/d4/7279d072c0255d07c541326f6058effb1b08190f49695bf2c22aae666878/pycocotools-2.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5968a1e5421719af9eb7ccee4c540bfb18b1fc95d30d9a48571d0aaeb159a1ae", size = 458661 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/33/b7/886f5ceb83cfefe52d14b4df7da034deecddf714b4ff2c75d98ee35469cd/pycocotools-2.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:59eb7b1839f269262456347b6fe2bb88a8be56b32d87fab946483746e1f18a07", size = 438662 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/cf/0f/890e1e5d6c9f773fb5f5903ca8f75425b1c0cec8f71c1322f481f26a0138/pycocotools-2.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:05480f731fcd7c5d05389081f84198f3b8117f4560227185bc462cccb5c79181", size = 456444 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2e/f5/dfa78dc72e47dfe1ada7b37fedcb338454750470358a6dfcfdfda35fa337/pycocotools-2.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:e680e27e58b840c105fa09a3bb1d91706038c5c8d7b7bf09c2e5ecbd1b05ad7f", size = 85304 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/43/2a/7a461713fd3ff474bd12420b8e402c248b7821f295031f2ac632c0949740/pycocotools-2.0.8-cp311-cp311-win_arm64.whl", hash = "sha256:16c5a1d2c8726149b5a0e6fe95095ffc172d4012ece5dee9b5beeef708fc0284", size = 71417 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/20/b6/d3287bdb2f1954d5739337035a424b6ec012bc6fed0af476c92309cec001/pycocotools-2.0.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:dd4616621d062882db677de5c64b1b0f6efbcaed9fd284b61e7ba4b16ab24d7a", size = 162686 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ce/1d/3f32a8fd8b0d0c6f952f030ac90fceb318204c19de33b1cbc4cccee51a03/pycocotools-2.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5683ba2612c39094a2e8453d40349768a3da6673376786651481d6f553ff7b50", size = 429594 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3c/ce/e51566bce4067327c299fe8b6de18f9275e0c0ceaf8e4820ea9af689101c/pycocotools-2.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b89f399eb851d18f68dfa7f126380394ec0820915c7b3831dd37563bc58daa95", size = 443497 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/87/f2/038244a12c3297a2a7821bd6e72deaa350831c142b0380a14c9749009d83/pycocotools-2.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e6d528c4f35580347ee3cd57f92cf0926e9b6a688d0904b2ea8a814ae2e57a47", size = 428855 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/74/fd/88025b72eaff58fe4066823ebecb3232c3b59f2a080cb3d4c974e1082732/pycocotools-2.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:56bbe8be608def61da0b4430562b8d5ff14525f509631a667cfd8405325193da", size = 444322 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4a/9b/8f89d36e4a23166ccabe5c9fed00baffaa6a67609add316fc1334bbf4016/pycocotools-2.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:d004033e760a172b2ccbdf4a62d20d2bcf0c9b40dc3c0d1d724045b0a6944862", size = 83255 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/4d/82/73ba66a13b2288ecc60ed910dd8c16e6c584f3ca5407e706e5903d256712/pycocotools-2.0.8-cp312-cp312-win_arm64.whl", hash = "sha256:87853ca11e9b130e461d6b5284ea475efe35429060a915844e1998d206ba028e", size = 68922 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pygments"
|
name = "pygments"
|
||||||
version = "2.19.1"
|
version = "2.19.1"
|
||||||
@@ -1212,15 +743,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 },
|
{ url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pyparsing"
|
|
||||||
version = "3.2.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/8b/1a/3544f4f299a47911c2ab3710f534e52fea62a633c96806995da5d25be4b2/pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a", size = 1067694 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1", size = 107716 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyreadline3"
|
name = "pyreadline3"
|
||||||
version = "3.5.4"
|
version = "3.5.4"
|
||||||
@@ -1230,18 +752,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178 },
|
{ url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "python-dateutil"
|
|
||||||
version = "2.9.0.post0"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "six" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyyaml"
|
name = "pyyaml"
|
||||||
version = "6.0.2"
|
version = "6.0.2"
|
||||||
@@ -1399,7 +909,8 @@ dependencies = [
|
|||||||
{ name = "psutil" },
|
{ name = "psutil" },
|
||||||
{ name = "ruamel-yaml" },
|
{ name = "ruamel-yaml" },
|
||||||
{ name = "scipy" },
|
{ name = "scipy" },
|
||||||
{ name = "torch" },
|
{ name = "torch", version = "2.6.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
|
||||||
|
{ name = "torch", version = "2.6.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
|
||||||
{ name = "tqdm" },
|
{ name = "tqdm" },
|
||||||
]
|
]
|
||||||
wheels = [
|
wheels = [
|
||||||
@@ -1514,44 +1025,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/69/e2/b011c38e5394c4c18fb5500778a55ec43ad6106126e74723ffaee246f56e/safetensors-0.5.3-cp38-abi3-win_amd64.whl", hash = "sha256:836cbbc320b47e80acd40e44c8682db0e8ad7123209f69b093def21ec7cafd11", size = 308878 },
|
{ url = "https://files.pythonhosted.org/packages/69/e2/b011c38e5394c4c18fb5500778a55ec43ad6106126e74723ffaee246f56e/safetensors-0.5.3-cp38-abi3-win_amd64.whl", hash = "sha256:836cbbc320b47e80acd40e44c8682db0e8ad7123209f69b093def21ec7cafd11", size = 308878 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "scikit-learn"
|
|
||||||
version = "1.6.1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "joblib" },
|
|
||||||
{ name = "numpy" },
|
|
||||||
{ name = "scipy" },
|
|
||||||
{ name = "threadpoolctl" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/9e/a5/4ae3b3a0755f7b35a280ac90b28817d1f380318973cff14075ab41ef50d9/scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e", size = 7068312 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2e/3a/f4597eb41049110b21ebcbb0bcb43e4035017545daa5eedcfeb45c08b9c5/scikit_learn-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d056391530ccd1e501056160e3c9673b4da4805eb67eb2bdf4e983e1f9c9204e", size = 12067702 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/37/19/0423e5e1fd1c6ec5be2352ba05a537a473c1677f8188b9306097d684b327/scikit_learn-1.6.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0c8d036eb937dbb568c6242fa598d551d88fb4399c0344d95c001980ec1c7d36", size = 11112765 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/70/95/d5cb2297a835b0f5fc9a77042b0a2d029866379091ab8b3f52cc62277808/scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8634c4bd21a2a813e0a7e3900464e6d593162a29dd35d25bdf0103b3fce60ed5", size = 12643991 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b7/91/ab3c697188f224d658969f678be86b0968ccc52774c8ab4a86a07be13c25/scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:775da975a471c4f6f467725dff0ced5c7ac7bda5e9316b260225b48475279a1b", size = 13497182 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/17/04/d5d556b6c88886c092cc989433b2bab62488e0f0dafe616a1d5c9cb0efb1/scikit_learn-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:8a600c31592bd7dab31e1c61b9bbd6dea1b3433e67d264d17ce1017dbdce8002", size = 11125517 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6c/2a/e291c29670795406a824567d1dfc91db7b699799a002fdaa452bceea8f6e/scikit_learn-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72abc587c75234935e97d09aa4913a82f7b03ee0b74111dcc2881cba3c5a7b33", size = 12102620 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/25/92/ee1d7a00bb6b8c55755d4984fd82608603a3cc59959245068ce32e7fb808/scikit_learn-1.6.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:b3b00cdc8f1317b5f33191df1386c0befd16625f49d979fe77a8d44cae82410d", size = 11116234 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/30/cd/ed4399485ef364bb25f388ab438e3724e60dc218c547a407b6e90ccccaef/scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc4765af3386811c3ca21638f63b9cf5ecf66261cc4815c1db3f1e7dc7b79db2", size = 12592155 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a8/f3/62fc9a5a659bb58a03cdd7e258956a5824bdc9b4bb3c5d932f55880be569/scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25fc636bdaf1cc2f4a124a116312d837148b5e10872147bdaf4887926b8c03d8", size = 13497069 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a1/a6/c5b78606743a1f28eae8f11973de6613a5ee87366796583fb74c67d54939/scikit_learn-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:fa909b1a36e000a03c382aade0bd2063fd5680ff8b8e501660c0f59f021a6415", size = 11139809 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/0a/18/c797c9b8c10380d05616db3bfb48e2a3358c767affd0857d56c2eb501caa/scikit_learn-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b", size = 12104516 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c4/b7/2e35f8e289ab70108f8cbb2e7a2208f0575dc704749721286519dcf35f6f/scikit_learn-1.6.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2", size = 11167837 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a4/f6/ff7beaeb644bcad72bcfd5a03ff36d32ee4e53a8b29a639f11bcb65d06cd/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f", size = 12253728 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/29/7a/8bce8968883e9465de20be15542f4c7e221952441727c4dad24d534c6d99/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86", size = 13147700 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/62/27/585859e72e117fe861c2079bcba35591a84f801e21bc1ab85bce6ce60305/scikit_learn-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52", size = 11110613 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/2e/59/8eb1872ca87009bdcdb7f3cdc679ad557b992c12f4b61f9250659e592c63/scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322", size = 12010001 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/9d/05/f2fc4effc5b32e525408524c982c468c29d22f828834f0625c5ef3d601be/scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1", size = 11096360 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c8/e4/4195d52cf4f113573fb8ebc44ed5a81bd511a92c0228889125fac2f4c3d1/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348", size = 12209004 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/94/be/47e16cdd1e7fcf97d95b3cb08bde1abb13e627861af427a3651fcb80b517/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97", size = 13171776 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/34/b0/ca92b90859070a1487827dbc672f998da95ce83edce1270fc23f96f1f61a/scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb", size = 11071865 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/12/ae/993b0fb24a356e71e9a894e42b8a9eec528d4c70217353a1cd7a48bc25d4/scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236", size = 11955804 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d6/54/32fa2ee591af44507eac86406fa6bba968d1eb22831494470d0a2e4a1eb1/scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35", size = 11100530 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/3f/58/55856da1adec655bdce77b502e94a267bf40a8c0b89f8622837f89503b5a/scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691", size = 12433852 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ff/4f/c83853af13901a574f8f13b645467285a48940f185b690936bb700a50863/scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f", size = 11337256 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scipy"
|
name = "scipy"
|
||||||
version = "1.15.2"
|
version = "1.15.2"
|
||||||
@@ -1626,15 +1099,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 },
|
{ url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "six"
|
|
||||||
version = "1.17.0"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sympy"
|
name = "sympy"
|
||||||
version = "1.13.1"
|
version = "1.13.1"
|
||||||
@@ -1656,15 +1120,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/b6/cb/b86984bed139586d01532a587464b5805f12e397594f19f931c4c2fbfa61/tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539", size = 28169 },
|
{ url = "https://files.pythonhosted.org/packages/b6/cb/b86984bed139586d01532a587464b5805f12e397594f19f931c4c2fbfa61/tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539", size = 28169 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "threadpoolctl"
|
|
||||||
version = "3.6.0"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "timm"
|
name = "timm"
|
||||||
version = "1.0.15"
|
version = "1.0.15"
|
||||||
@@ -1673,8 +1128,10 @@ dependencies = [
|
|||||||
{ name = "huggingface-hub" },
|
{ name = "huggingface-hub" },
|
||||||
{ name = "pyyaml" },
|
{ name = "pyyaml" },
|
||||||
{ name = "safetensors" },
|
{ name = "safetensors" },
|
||||||
{ name = "torch" },
|
{ name = "torch", version = "2.6.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "torchvision" },
|
{ name = "torch", version = "2.6.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'darwin'" },
|
||||||
|
{ name = "torchvision", version = "0.21.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or sys_platform == 'darwin'" },
|
||||||
|
{ name = "torchvision", version = "0.21.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/bc/0c/66b0f9b4a4cb9ffdac7b52b17b37c7d3c4f75623b469e388b0c6d89b4e88/timm-1.0.15.tar.gz", hash = "sha256:756a3bc30c96565f056e608a9b559daed904617eaadb6be536f96874879b1055", size = 2230258 }
|
sdist = { url = "https://files.pythonhosted.org/packages/bc/0c/66b0f9b4a4cb9ffdac7b52b17b37c7d3c4f75623b469e388b0c6d89b4e88/timm-1.0.15.tar.gz", hash = "sha256:756a3bc30c96565f056e608a9b559daed904617eaadb6be536f96874879b1055", size = 2230258 }
|
||||||
wheels = [
|
wheels = [
|
||||||
@@ -1748,79 +1205,118 @@ wheels = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "torch"
|
name = "torch"
|
||||||
version = "2.6.0"
|
version = "2.6.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://download.pytorch.org/whl/cpu" }
|
||||||
|
resolution-markers = [
|
||||||
|
"python_full_version >= '3.12' and sys_platform == 'darwin'",
|
||||||
|
"python_full_version == '3.11.*' and sys_platform == 'darwin'",
|
||||||
|
"python_full_version < '3.11' and sys_platform == 'darwin'",
|
||||||
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "filelock" },
|
{ name = "filelock", marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "fsspec" },
|
{ name = "fsspec", marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "jinja2" },
|
{ name = "jinja2", marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "networkx" },
|
{ name = "networkx", marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "nvidia-cublas-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
{ name = "setuptools", marker = "python_full_version >= '3.12' and sys_platform == 'darwin'" },
|
||||||
{ name = "nvidia-cuda-cupti-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
{ name = "sympy", marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "nvidia-cuda-nvrtc-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
{ name = "typing-extensions", marker = "sys_platform == 'darwin'" },
|
||||||
{ name = "nvidia-cuda-runtime-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-cudnn-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-cufft-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-curand-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-cusolver-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-cusparse-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-cusparselt-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-nccl-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-nvjitlink-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "nvidia-nvtx-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "setuptools", marker = "python_full_version >= '3.12'" },
|
|
||||||
{ name = "sympy" },
|
|
||||||
{ name = "triton", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" },
|
|
||||||
{ name = "typing-extensions" },
|
|
||||||
]
|
]
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/37/81/aa9ab58ec10264c1abe62c8b73f5086c3c558885d6beecebf699f0dbeaeb/torch-2.6.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:6860df13d9911ac158f4c44031609700e1eba07916fff62e21e6ffa0a9e01961", size = 766685561 },
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:09e06f9949e1a0518c5b09fe95295bc9661f219d9ecb6f9893e5123e10696628" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/86/86/e661e229df2f5bfc6eab4c97deb1286d598bbeff31ab0cdb99b3c0d53c6f/torch-2.6.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c4f103a49830ce4c7561ef4434cc7926e5a5fe4e5eb100c19ab36ea1e2b634ab", size = 95751887 },
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:94fc63b3b4bedd327af588696559f68c264440e2503cc9e6954019473d74ae21" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/20/e0/5cb2f8493571f0a5a7273cd7078f191ac252a402b5fb9cb6091f14879109/torch-2.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:56eeaf2ecac90da5d9e35f7f35eb286da82673ec3c582e310a8d1631a1c02341", size = 204165139 },
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:9a610afe216a85a8b9bc9f8365ed561535c93e804c2a317ef7fabcc5deda0989" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/e5/16/ea1b7842413a7b8a5aaa5e99e8eaf3da3183cc3ab345ad025a07ff636301/torch-2.6.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:09e06f9949e1a0518c5b09fe95295bc9661f219d9ecb6f9893e5123e10696628", size = 66520221 },
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:ff96f4038f8af9f7ec4231710ed4549da1bdebad95923953a25045dcf6fd87e2" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/78/a9/97cbbc97002fff0de394a2da2cdfa859481fdca36996d7bd845d50aa9d8d/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:7979834102cd5b7a43cc64e87f2f3b14bd0e1458f06e9f88ffa386d07c7446e1", size = 766715424 },
|
]
|
||||||
{ url = "https://files.pythonhosted.org/packages/6d/fa/134ce8f8a7ea07f09588c9cc2cea0d69249efab977707cf67669431dcf5c/torch-2.6.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:ccbd0320411fe1a3b3fec7b4d3185aa7d0c52adac94480ab024b5c8f74a0bf1d", size = 95759416 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/11/c5/2370d96b31eb1841c3a0883a492c15278a6718ccad61bb6a649c80d1d9eb/torch-2.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:46763dcb051180ce1ed23d1891d9b1598e07d051ce4c9d14307029809c4d64f7", size = 204164970 },
|
[[package]]
|
||||||
{ url = "https://files.pythonhosted.org/packages/0b/fa/f33a4148c6fb46ca2a3f8de39c24d473822d5774d652b66ed9b1214da5f7/torch-2.6.0-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:94fc63b3b4bedd327af588696559f68c264440e2503cc9e6954019473d74ae21", size = 66530713 },
|
name = "torch"
|
||||||
{ url = "https://files.pythonhosted.org/packages/e5/35/0c52d708144c2deb595cd22819a609f78fdd699b95ff6f0ebcd456e3c7c1/torch-2.6.0-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:2bb8987f3bb1ef2675897034402373ddfc8f5ef0e156e2d8cfc47cacafdda4a9", size = 766624563 },
|
version = "2.6.0+cpu"
|
||||||
{ url = "https://files.pythonhosted.org/packages/01/d6/455ab3fbb2c61c71c8842753b566012e1ed111e7a4c82e0e1c20d0c76b62/torch-2.6.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:b789069020c5588c70d5c2158ac0aa23fd24a028f34a8b4fcb8fcb4d7efcf5fb", size = 95607867 },
|
source = { registry = "https://download.pytorch.org/whl/cpu" }
|
||||||
{ url = "https://files.pythonhosted.org/packages/18/cf/ae99bd066571656185be0d88ee70abc58467b76f2f7c8bfeb48735a71fe6/torch-2.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:7e1448426d0ba3620408218b50aa6ada88aeae34f7a239ba5431f6c8774b1239", size = 204120469 },
|
resolution-markers = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/81/b4/605ae4173aa37fb5aa14605d100ff31f4f5d49f617928c9f486bb3aaec08/torch-2.6.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:9a610afe216a85a8b9bc9f8365ed561535c93e804c2a317ef7fabcc5deda0989", size = 66532538 },
|
"python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'",
|
||||||
{ url = "https://files.pythonhosted.org/packages/24/85/ead1349fc30fe5a32cadd947c91bda4a62fbfd7f8c34ee61f6398d38fb48/torch-2.6.0-cp313-cp313-manylinux1_x86_64.whl", hash = "sha256:4874a73507a300a5d089ceaff616a569e7bb7c613c56f37f63ec3ffac65259cf", size = 766626191 },
|
"(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')",
|
||||||
{ url = "https://files.pythonhosted.org/packages/dd/b0/26f06f9428b250d856f6d512413e9e800b78625f63801cbba13957432036/torch-2.6.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:a0d5e1b9874c1a6c25556840ab8920569a7a4137afa8a63a32cee0bc7d89bd4b", size = 95611439 },
|
"python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'",
|
||||||
{ url = "https://files.pythonhosted.org/packages/c2/9c/fc5224e9770c83faed3a087112d73147cd7c7bfb7557dcf9ad87e1dda163/torch-2.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:510c73251bee9ba02ae1cb6c9d4ee0907b3ce6020e62784e2d7598e0cfa4d6cc", size = 204126475 },
|
"(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')",
|
||||||
{ url = "https://files.pythonhosted.org/packages/88/8b/d60c0491ab63634763be1537ad488694d316ddc4a20eaadd639cedc53971/torch-2.6.0-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:ff96f4038f8af9f7ec4231710ed4549da1bdebad95923953a25045dcf6fd87e2", size = 66536783 },
|
"python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'",
|
||||||
|
"(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')",
|
||||||
|
]
|
||||||
|
dependencies = [
|
||||||
|
{ name = "filelock", marker = "sys_platform != 'darwin'" },
|
||||||
|
{ name = "fsspec", marker = "sys_platform != 'darwin'" },
|
||||||
|
{ name = "jinja2", marker = "sys_platform != 'darwin'" },
|
||||||
|
{ name = "networkx", marker = "sys_platform != 'darwin'" },
|
||||||
|
{ name = "setuptools", marker = "python_full_version >= '3.12' and sys_platform != 'darwin'" },
|
||||||
|
{ name = "sympy", marker = "sys_platform != 'darwin'" },
|
||||||
|
{ name = "typing-extensions", marker = "sys_platform != 'darwin'" },
|
||||||
|
]
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp310-cp310-linux_x86_64.whl", hash = "sha256:35a9e78b7e4096968b54c1a198687b981569c50ae93e661aa430f9fd208da102" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:90832f4d118c566b8652a2196ac695fc1f14cf420db27b5a1b41c7eaaf2141e9" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp310-cp310-win_amd64.whl", hash = "sha256:6e22f0b13db8d53e55bcb3b46c9dd4b6676d1c44051b56753e745cec3075b333" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp311-cp311-linux_x86_64.whl", hash = "sha256:5b6ae523bfb67088a17ca7734d131548a2e60346c622621e4248ed09dd0790cc" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:d3dab9fb0294f268aec28e8aaba834e9d006b90a50db5bc2fe2191a9d48c6084" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp311-cp311-win_amd64.whl", hash = "sha256:24c9d3d13b9ea769dd7bd5c11cfa1fc463fd7391397156565484565ca685d908" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp312-cp312-linux_x86_64.whl", hash = "sha256:59e78aa0c690f70734e42670036d6b541930b8eabbaa18d94e090abf14cc4d91" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:318290e8924353c61b125cdc8768d15208704e279e7757c113b9620740deca98" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:4027d982eb2781c93825ab9527f17fbbb12dbabf422298e4b954be60016f87d8" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp313-cp313-linux_x86_64.whl", hash = "sha256:e70ee2e37ad27a90201d101a41c2e10df7cf15a9ebd17c084f54cf2518c57bdf" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:b5e7e8d561b263b5ad8049736281cd12c78e51e7bc1a913fd4098fd0e0b96347" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:b436a6c62d086dc5b32f5721b59f0ca8ad3bf9de09ee9b5b83dbf1e7a7e22c60" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp313-cp313t-linux_x86_64.whl", hash = "sha256:fb34d6cc4e6e20e66d74852c3d84e0301dc5e1a7c822076ef288886f978390f0" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:7cac05af909ee1c5c2915e8f3efaa1ea015e7e414be0ff53071402b9e4f3c7df" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "torchvision"
|
name = "torchvision"
|
||||||
version = "0.21.0"
|
version = "0.21.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://download.pytorch.org/whl/cpu" }
|
||||||
|
resolution-markers = [
|
||||||
|
"python_full_version >= '3.12' and sys_platform == 'darwin'",
|
||||||
|
"python_full_version >= '3.12' and platform_machine == 'aarch64' and sys_platform == 'linux'",
|
||||||
|
"python_full_version == '3.11.*' and sys_platform == 'darwin'",
|
||||||
|
"python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'",
|
||||||
|
"python_full_version < '3.11' and sys_platform == 'darwin'",
|
||||||
|
"python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'",
|
||||||
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "numpy" },
|
{ name = "numpy", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or sys_platform == 'darwin'" },
|
||||||
{ name = "pillow" },
|
{ name = "pillow", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or sys_platform == 'darwin'" },
|
||||||
{ name = "torch" },
|
{ name = "torch", version = "2.6.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" },
|
||||||
|
{ name = "torch", version = "2.6.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "platform_machine == 'aarch64' and sys_platform == 'linux'" },
|
||||||
]
|
]
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/a9/20/72eb0b5b08fa293f20fc41c374e37cf899f0033076f0144d2cdc48f9faee/torchvision-0.21.0-1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:5568c5a1ff1b2ec33127b629403adb530fab81378d9018ca4ed6508293f76e2b", size = 2327643 },
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0-cp310-cp310-linux_aarch64.whl", hash = "sha256:54815e0a56dde95cc6ec952577f67e0dc151eadd928e8d9f6a7f821d69a4a734" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4e/3d/b7241abfa3e6651c6e00796f5de2bd1ce4d500bf5159bcbfeea47e711b93/torchvision-0.21.0-1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:ff96666b94a55e802ea6796cabe788541719e6f4905fc59c380fed3517b6a64d", size = 2329320 },
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:044ea420b8c6c3162a234cada8e2025b9076fa82504758cd11ec5d0f8cd9fa37" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/52/5b/76ca113a853b19c7b1da761f8a72cb6429b3bd0bf932537d8df4657f47c3/torchvision-0.21.0-1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:ffa2a16499508fe6798323e455f312c7c55f2a88901c9a7c0fb1efa86cf7e327", size = 2329878 },
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0-cp311-cp311-linux_aarch64.whl", hash = "sha256:54454923a50104c66a9ab6bd8b73a11c2fc218c964b1006d5d1fe5b442c3dcb6" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4e/fe/5e193353706dab96fe73ae100d5a633ff635ce310e0d92f3bc2958d075b1/torchvision-0.21.0-1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:7e9e9afa150e40cd2a8f0701c43cb82a8d724f512896455c0918b987f94b84a4", size = 2280711 },
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:110d115333524d60e9e474d53c7d20f096dbd8a080232f88dddb90566f90064c" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8e/0d/143bd264876fad17c82096b6c2d433f1ac9b29cdc69ee45023096976ee3d/torchvision-0.21.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:044ea420b8c6c3162a234cada8e2025b9076fa82504758cd11ec5d0f8cd9fa37", size = 1784140 },
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0-cp312-cp312-linux_aarch64.whl", hash = "sha256:5083a5b1fec2351bf5ea9900a741d54086db75baec4b1d21e39451e00977f1b1" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/5e/44/32e2d2d174391374d5ff3c4691b802e8efda9ae27ab9062eca2255b006af/torchvision-0.21.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:b0c0b264b89ab572888244f2e0bad5b7eaf5b696068fc0b93e96f7c3c198953f", size = 7237187 },
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:97a5814a93c793aaf0179cfc7f916024f4b63218929aee977b645633d074a49f" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/0e/6b/4fca9373eda42c1b04096758306b7bd55f7d8f78ba273446490855a0f25d/torchvision-0.21.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:54815e0a56dde95cc6ec952577f67e0dc151eadd928e8d9f6a7f821d69a4a734", size = 14699067 },
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0-cp313-cp313-linux_aarch64.whl", hash = "sha256:5045a3a5f21ec3eea6962fa5f2fa2d4283f854caec25ada493fcf4aab2925467" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/aa/f7/799ddd538b21017cbf80294c92e9efbf6db08dff6efee37c3be114a81845/torchvision-0.21.0-cp310-cp310-win_amd64.whl", hash = "sha256:abbf1d7b9d52c00d2af4afa8dac1fb3e2356f662a4566bd98dfaaa3634f4eb34", size = 1560542 },
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:659b76c86757cb2ee4ca2db245e0740cfc3081fef46f0f1064d11adb4a8cee31" },
|
||||||
{ url = "https://files.pythonhosted.org/packages/29/88/00c69db213ee2443ada8886ec60789b227e06bb869d85ee324578221a7f7/torchvision-0.21.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:110d115333524d60e9e474d53c7d20f096dbd8a080232f88dddb90566f90064c", size = 1784141 },
|
]
|
||||||
{ url = "https://files.pythonhosted.org/packages/be/a2/b0cedf0a411f1a5d75cfc0b87cde56dd1ddc1878be46a42c905cd8580220/torchvision-0.21.0-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:3891cd086c5071bda6b4ee9d266bb2ac39c998c045c2ebcd1e818b8316fb5d41", size = 7237719 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/8c/a1/ee962ef9d0b2bf7a6f8b14cb95acb70e05cd2101af521032a09e43f8582f/torchvision-0.21.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:54454923a50104c66a9ab6bd8b73a11c2fc218c964b1006d5d1fe5b442c3dcb6", size = 14700617 },
|
[[package]]
|
||||||
{ url = "https://files.pythonhosted.org/packages/88/53/4ad334b9b1d8dd99836869fec139cb74a27781298360b91b9506c53f1d10/torchvision-0.21.0-cp311-cp311-win_amd64.whl", hash = "sha256:49bcfad8cfe2c27dee116c45d4f866d7974bcf14a5a9fbef893635deae322f2f", size = 1560523 },
|
name = "torchvision"
|
||||||
{ url = "https://files.pythonhosted.org/packages/6e/1b/28f527b22d5e8800184d0bc847f801ae92c7573a8c15979d92b7091c0751/torchvision-0.21.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:97a5814a93c793aaf0179cfc7f916024f4b63218929aee977b645633d074a49f", size = 1784140 },
|
version = "0.21.0+cpu"
|
||||||
{ url = "https://files.pythonhosted.org/packages/36/63/0722e153fd27d64d5b0af45b5c8cb0e80b35a68cf0130303bc9a8bb095c7/torchvision-0.21.0-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:b578bcad8a4083b40d34f689b19ca9f7c63e511758d806510ea03c29ac568f7b", size = 7238673 },
|
source = { registry = "https://download.pytorch.org/whl/cpu" }
|
||||||
{ url = "https://files.pythonhosted.org/packages/bb/ea/03541ed901cdc30b934f897060d09bbf7a98466a08ad1680320f9ce0cbe0/torchvision-0.21.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:5083a5b1fec2351bf5ea9900a741d54086db75baec4b1d21e39451e00977f1b1", size = 14701186 },
|
resolution-markers = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/4c/6a/c7752603060d076dfed95135b78b047dc71792630cbcb022e3693d6f32ef/torchvision-0.21.0-cp312-cp312-win_amd64.whl", hash = "sha256:6eb75d41e3bbfc2f7642d0abba9383cc9ae6c5a4ca8d6b00628c225e1eaa63b3", size = 1560520 },
|
"(python_full_version >= '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.12' and sys_platform != 'darwin' and sys_platform != 'linux')",
|
||||||
{ url = "https://files.pythonhosted.org/packages/f9/56/47d456b61c3bbce7bed4af3925c83d405bb87468e659fd3cf3d9840c3b51/torchvision-0.21.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:659b76c86757cb2ee4ca2db245e0740cfc3081fef46f0f1064d11adb4a8cee31", size = 1784141 },
|
"(python_full_version == '3.11.*' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version == '3.11.*' and sys_platform != 'darwin' and sys_platform != 'linux')",
|
||||||
{ url = "https://files.pythonhosted.org/packages/cb/4c/99880813aa50e64447fb1c4c6c804a793d2d78f7f7c53e99ddee7fa175fa/torchvision-0.21.0-cp313-cp313-manylinux1_x86_64.whl", hash = "sha256:084ac3f5a1f50c70d630a488d19bf62f323018eae1b1c1232f2b7047d3a7b76d", size = 7238714 },
|
"(python_full_version < '3.11' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version < '3.11' and sys_platform != 'darwin' and sys_platform != 'linux')",
|
||||||
{ url = "https://files.pythonhosted.org/packages/0b/2d/3c3ee10608310a395594aac7da8640372ed79c6585910ccae6919658dcdc/torchvision-0.21.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5045a3a5f21ec3eea6962fa5f2fa2d4283f854caec25ada493fcf4aab2925467", size = 2281252 },
|
]
|
||||||
{ url = "https://files.pythonhosted.org/packages/ed/b4/fc60e3bc003879d3de842baea258fffc3586f4b49cd435a5ba1e09c33315/torchvision-0.21.0-cp313-cp313-win_amd64.whl", hash = "sha256:9147f5e096a9270684e3befdee350f3cacafd48e0c54ab195f45790a9c146d67", size = 1560519 },
|
dependencies = [
|
||||||
|
{ name = "numpy", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
||||||
|
{ name = "pillow", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
||||||
|
{ name = "torch", version = "2.6.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
|
||||||
|
]
|
||||||
|
wheels = [
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0%2Bcpu-cp310-cp310-linux_x86_64.whl", hash = "sha256:4ed0a1be50676a7c589ba83b62c9dc0267a87e852b8cd9b7d6db27ab36c6d552" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0%2Bcpu-cp310-cp310-win_amd64.whl", hash = "sha256:554ca0f5948ac89911299f8bfb6f23936d867387ea213ab235adc2814b510d0c" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0%2Bcpu-cp311-cp311-linux_x86_64.whl", hash = "sha256:d67081026aad9642c46d3b14035f8ae69117468c09a07d628f3eafc7ae74841f" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0%2Bcpu-cp311-cp311-win_amd64.whl", hash = "sha256:852b96738a68592223f01a04e4bcc1b3906bef7eee41c99f27f3be5706046862" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0%2Bcpu-cp312-cp312-linux_x86_64.whl", hash = "sha256:d6874431e678ba107b60a83f255c33f3755f06bad587b1b919aa514ec325dcd8" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:667f3d983240f41eaff5a3f78bdcbc144473978a37cd15a4db6dad92b1e8b6f0" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0%2Bcpu-cp313-cp313-linux_x86_64.whl", hash = "sha256:a76478c0f547e032116282d61a5a7d943142cf040f6c7d97941d7e96813c4c14" },
|
||||||
|
{ url = "https://download.pytorch.org/whl/cpu/torchvision-0.21.0%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:883f8668b923781f1152a20d75e75ad94a4f1016328d86a7b889006a9156fb14" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1856,17 +1352,6 @@ wheels = [
|
|||||||
{ url = "https://files.pythonhosted.org/packages/20/37/1f29af63e9c30156a3ed6ebc2754077016577c094f31de7b2631e5d379eb/transformers-4.49.0-py3-none-any.whl", hash = "sha256:6b4fded1c5fee04d384b1014495b4235a2b53c87503d7d592423c06128cbbe03", size = 9970275 },
|
{ url = "https://files.pythonhosted.org/packages/20/37/1f29af63e9c30156a3ed6ebc2754077016577c094f31de7b2631e5d379eb/transformers-4.49.0-py3-none-any.whl", hash = "sha256:6b4fded1c5fee04d384b1014495b4235a2b53c87503d7d592423c06128cbbe03", size = 9970275 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "triton"
|
|
||||||
version = "3.2.0"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/01/65/3ffa90e158a2c82f0716eee8d26a725d241549b7d7aaf7e4f44ac03ebd89/triton-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3e54983cd51875855da7c68ec05c05cf8bb08df361b1d5b69e05e40b0c9bd62", size = 253090354 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/a7/2e/757d2280d4fefe7d33af7615124e7e298ae7b8e3bc4446cdb8e88b0f9bab/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8009a1fb093ee8546495e96731336a33fb8856a38e45bb4ab6affd6dbc3ba220", size = 253157636 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/06/00/59500052cb1cf8cf5316be93598946bc451f14072c6ff256904428eaf03c/triton-3.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d9b215efc1c26fa7eefb9a157915c92d52e000d2bf83e5f69704047e63f125c", size = 253159365 },
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/c7/30/37a3384d1e2e9320331baca41e835e90a3767303642c7a80d4510152cbcf/triton-3.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5dfa23ba84541d7c0a531dfce76d8bcd19159d50a4a8b14ad01e91734a5c1b0", size = 253154278 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typer"
|
name = "typer"
|
||||||
version = "0.15.2"
|
version = "0.15.2"
|
||||||
@@ -1908,17 +1393,3 @@ sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc
|
|||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 },
|
{ url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "webdataset"
|
|
||||||
version = "0.2.111"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "braceexpand" },
|
|
||||||
{ name = "numpy" },
|
|
||||||
{ name = "pyyaml" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/dc/13/27b4a05a01bcf96e451f624d36d3637101e92b25970295546f7d949b38e9/webdataset-0.2.111.tar.gz", hash = "sha256:5b2835386a25601307a9ded9bcc0dbd1e81a9eee017784152528e77dd8619511", size = 79970 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/6e/e1/c1140ab6533668930895512ac5cbf07972fa41ebab275f5f5cdd432bc3c7/webdataset-0.2.111-py3-none-any.whl", hash = "sha256:57a70eb5d7029303ce2262d900ee3f16443bb5e9cf25f634775ce972859bcee4", size = 85514 },
|
|
||||||
]
|
|
||||||
|
|||||||
@@ -1,179 +0,0 @@
|
|||||||
commit 16839b58d9b3c3162a67ce5d776b36d4d24e801f
|
|
||||||
Author: mertalev <101130780+mertalev@users.noreply.github.com>
|
|
||||||
Date: Wed Mar 5 11:25:38 2025 -0500
|
|
||||||
|
|
||||||
disable algo caching (attributed to @dmnieto in https://github.com/microsoft/onnxruntime/pull/19567)
|
|
||||||
|
|
||||||
diff --git a/onnxruntime/core/providers/rocm/nn/conv.cc b/onnxruntime/core/providers/rocm/nn/conv.cc
|
|
||||||
index d7f47d07a8..4060a2af52 100644
|
|
||||||
--- a/onnxruntime/core/providers/rocm/nn/conv.cc
|
|
||||||
+++ b/onnxruntime/core/providers/rocm/nn/conv.cc
|
|
||||||
@@ -127,7 +127,6 @@ Status Conv<T, NHWC>::UpdateState(OpKernelContext* context, bool bias_expected)
|
|
||||||
|
|
||||||
if (w_dims_changed) {
|
|
||||||
s_.last_w_dims = gsl::make_span(w_dims);
|
|
||||||
- s_.cached_benchmark_fwd_results.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
ORT_RETURN_IF_ERROR(conv_attrs_.ValidateInputShape(X->Shape(), W->Shape(), channels_last, channels_last));
|
|
||||||
@@ -277,35 +276,6 @@ Status Conv<T, NHWC>::UpdateState(OpKernelContext* context, bool bias_expected)
|
|
||||||
HIP_CALL_THROW(hipMalloc(&s_.b_zero, malloc_size));
|
|
||||||
HIP_CALL_THROW(hipMemsetAsync(s_.b_zero, 0, malloc_size, Stream(context)));
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- if (!s_.cached_benchmark_fwd_results.contains(x_dims_miopen)) {
|
|
||||||
- miopenConvAlgoPerf_t perf;
|
|
||||||
- int algo_count = 1;
|
|
||||||
- const ROCMExecutionProvider* rocm_ep = static_cast<const ROCMExecutionProvider*>(this->Info().GetExecutionProvider());
|
|
||||||
- static constexpr int num_algos = MIOPEN_CONVOLUTION_FWD_ALGO_COUNT;
|
|
||||||
- size_t max_ws_size = rocm_ep->GetMiopenConvUseMaxWorkspace() ? GetMaxWorkspaceSize(GetMiopenHandle(context), s_, kAllAlgos, num_algos, rocm_ep->GetDeviceId())
|
|
||||||
- : AlgoSearchWorkspaceSize;
|
|
||||||
- IAllocatorUniquePtr<void> algo_search_workspace = GetTransientScratchBuffer<void>(max_ws_size);
|
|
||||||
- MIOPEN_RETURN_IF_ERROR(miopenFindConvolutionForwardAlgorithm(
|
|
||||||
- GetMiopenHandle(context),
|
|
||||||
- s_.x_tensor,
|
|
||||||
- s_.x_data,
|
|
||||||
- s_.w_desc,
|
|
||||||
- s_.w_data,
|
|
||||||
- s_.conv_desc,
|
|
||||||
- s_.y_tensor,
|
|
||||||
- s_.y_data,
|
|
||||||
- 1, // requestedAlgoCount
|
|
||||||
- &algo_count, // returnedAlgoCount
|
|
||||||
- &perf,
|
|
||||||
- algo_search_workspace.get(),
|
|
||||||
- max_ws_size,
|
|
||||||
- false)); // Do not do exhaustive algo search.
|
|
||||||
- s_.cached_benchmark_fwd_results.insert(x_dims_miopen, {perf.fwd_algo, perf.memory});
|
|
||||||
- }
|
|
||||||
- const auto& perf = s_.cached_benchmark_fwd_results.at(x_dims_miopen);
|
|
||||||
- s_.fwd_algo = perf.fwd_algo;
|
|
||||||
- s_.workspace_bytes = perf.memory;
|
|
||||||
} else {
|
|
||||||
// set Y
|
|
||||||
s_.Y = context->Output(0, TensorShape(s_.y_dims));
|
|
||||||
@@ -319,6 +289,31 @@ Status Conv<T, NHWC>::UpdateState(OpKernelContext* context, bool bias_expected)
|
|
||||||
s_.y_data = reinterpret_cast<HipT*>(s_.Y->MutableData<T>());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ miopenConvAlgoPerf_t perf;
|
|
||||||
+ int algo_count = 1;
|
|
||||||
+ const ROCMExecutionProvider* rocm_ep = static_cast<const ROCMExecutionProvider*>(this->Info().GetExecutionProvider());
|
|
||||||
+ static constexpr int num_algos = MIOPEN_CONVOLUTION_FWD_ALGO_COUNT;
|
|
||||||
+ size_t max_ws_size = rocm_ep->GetMiopenConvUseMaxWorkspace() ? GetMaxWorkspaceSize(GetMiopenHandle(context), s_, kAllAlgos, num_algos, rocm_ep->GetDeviceId())
|
|
||||||
+ : AlgoSearchWorkspaceSize;
|
|
||||||
+ IAllocatorUniquePtr<void> algo_search_workspace = GetTransientScratchBuffer<void>(max_ws_size);
|
|
||||||
+ MIOPEN_RETURN_IF_ERROR(miopenFindConvolutionForwardAlgorithm(
|
|
||||||
+ GetMiopenHandle(context),
|
|
||||||
+ s_.x_tensor,
|
|
||||||
+ s_.x_data,
|
|
||||||
+ s_.w_desc,
|
|
||||||
+ s_.w_data,
|
|
||||||
+ s_.conv_desc,
|
|
||||||
+ s_.y_tensor,
|
|
||||||
+ s_.y_data,
|
|
||||||
+ 1, // requestedAlgoCount
|
|
||||||
+ &algo_count, // returnedAlgoCount
|
|
||||||
+ &perf,
|
|
||||||
+ algo_search_workspace.get(),
|
|
||||||
+ max_ws_size,
|
|
||||||
+ false)); // Do not do exhaustive algo search.
|
|
||||||
+ s_.fwd_algo = perf.fwd_algo;
|
|
||||||
+ s_.workspace_bytes = perf.memory;
|
|
||||||
return Status::OK();
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/onnxruntime/core/providers/rocm/nn/conv.h b/onnxruntime/core/providers/rocm/nn/conv.h
|
|
||||||
index bc9846203e..d54218f258 100644
|
|
||||||
--- a/onnxruntime/core/providers/rocm/nn/conv.h
|
|
||||||
+++ b/onnxruntime/core/providers/rocm/nn/conv.h
|
|
||||||
@@ -108,9 +108,6 @@ class lru_unordered_map {
|
|
||||||
list_type lru_list_;
|
|
||||||
};
|
|
||||||
|
|
||||||
-// cached miopen descriptors
|
|
||||||
-constexpr size_t MAX_CACHED_ALGO_PERF_RESULTS = 10000;
|
|
||||||
-
|
|
||||||
template <typename AlgoPerfType>
|
|
||||||
struct MiopenConvState {
|
|
||||||
// if x/w dims changed, update algo and miopenTensors
|
|
||||||
@@ -148,9 +145,6 @@ struct MiopenConvState {
|
|
||||||
decltype(AlgoPerfType().memory) memory;
|
|
||||||
};
|
|
||||||
|
|
||||||
- lru_unordered_map<TensorShapeVector, PerfFwdResultParams, vector_hash> cached_benchmark_fwd_results{MAX_CACHED_ALGO_PERF_RESULTS};
|
|
||||||
- lru_unordered_map<TensorShapeVector, PerfBwdResultParams, vector_hash> cached_benchmark_bwd_results{MAX_CACHED_ALGO_PERF_RESULTS};
|
|
||||||
-
|
|
||||||
// Some properties needed to support asymmetric padded Conv nodes
|
|
||||||
bool post_slicing_required;
|
|
||||||
TensorShapeVector slice_starts;
|
|
||||||
diff --git a/onnxruntime/core/providers/rocm/nn/conv_transpose.cc b/onnxruntime/core/providers/rocm/nn/conv_transpose.cc
|
|
||||||
index 7447113fdf..a662e35b2e 100644
|
|
||||||
--- a/onnxruntime/core/providers/rocm/nn/conv_transpose.cc
|
|
||||||
+++ b/onnxruntime/core/providers/rocm/nn/conv_transpose.cc
|
|
||||||
@@ -76,7 +76,6 @@ Status ConvTranspose<T, NHWC>::DoConvTranspose(OpKernelContext* context, bool dy
|
|
||||||
|
|
||||||
if (w_dims_changed) {
|
|
||||||
s_.last_w_dims = gsl::make_span(w_dims);
|
|
||||||
- s_.cached_benchmark_bwd_results.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
ConvTransposeAttributes::Prepare p;
|
|
||||||
@@ -126,35 +125,29 @@ Status ConvTranspose<T, NHWC>::DoConvTranspose(OpKernelContext* context, bool dy
|
|
||||||
}
|
|
||||||
|
|
||||||
y_data = reinterpret_cast<HipT*>(p.Y->MutableData<T>());
|
|
||||||
-
|
|
||||||
- if (!s_.cached_benchmark_bwd_results.contains(x_dims)) {
|
|
||||||
- IAllocatorUniquePtr<void> algo_search_workspace = GetScratchBuffer<void>(AlgoSearchWorkspaceSize, context->GetComputeStream());
|
|
||||||
-
|
|
||||||
- miopenConvAlgoPerf_t perf;
|
|
||||||
- int algo_count = 1;
|
|
||||||
- MIOPEN_RETURN_IF_ERROR(miopenFindConvolutionBackwardDataAlgorithm(
|
|
||||||
- GetMiopenHandle(context),
|
|
||||||
- s_.x_tensor,
|
|
||||||
- x_data,
|
|
||||||
- s_.w_desc,
|
|
||||||
- w_data,
|
|
||||||
- s_.conv_desc,
|
|
||||||
- s_.y_tensor,
|
|
||||||
- y_data,
|
|
||||||
- 1,
|
|
||||||
- &algo_count,
|
|
||||||
- &perf,
|
|
||||||
- algo_search_workspace.get(),
|
|
||||||
- AlgoSearchWorkspaceSize,
|
|
||||||
- false));
|
|
||||||
- s_.cached_benchmark_bwd_results.insert(x_dims, {perf.bwd_data_algo, perf.memory});
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- const auto& perf = s_.cached_benchmark_bwd_results.at(x_dims);
|
|
||||||
- s_.bwd_data_algo = perf.bwd_data_algo;
|
|
||||||
- s_.workspace_bytes = perf.memory;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ IAllocatorUniquePtr<void> algo_search_workspace = GetScratchBuffer<void>(AlgoSearchWorkspaceSize, context->GetComputeStream());
|
|
||||||
+ miopenConvAlgoPerf_t perf;
|
|
||||||
+ int algo_count = 1;
|
|
||||||
+ MIOPEN_RETURN_IF_ERROR(miopenFindConvolutionBackwardDataAlgorithm(
|
|
||||||
+ GetMiopenHandle(context),
|
|
||||||
+ s_.x_tensor,
|
|
||||||
+ x_data,
|
|
||||||
+ s_.w_desc,
|
|
||||||
+ w_data,
|
|
||||||
+ s_.conv_desc,
|
|
||||||
+ s_.y_tensor,
|
|
||||||
+ y_data,
|
|
||||||
+ 1,
|
|
||||||
+ &algo_count,
|
|
||||||
+ &perf,
|
|
||||||
+ algo_search_workspace.get(),
|
|
||||||
+ AlgoSearchWorkspaceSize,
|
|
||||||
+ false));
|
|
||||||
+ s_.bwd_data_algo = perf.bwd_data_algo;
|
|
||||||
+ s_.workspace_bytes = perf.memory;
|
|
||||||
+
|
|
||||||
// The following block will be executed in case there has been no change in the shapes of the
|
|
||||||
// input and the filter compared to the previous run
|
|
||||||
if (!y_data) {
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
|
|
||||||
index d90a2a355..bb1a7de12 100644
|
|
||||||
--- a/cmake/CMakeLists.txt
|
|
||||||
+++ b/cmake/CMakeLists.txt
|
|
||||||
@@ -295,7 +295,7 @@ if (onnxruntime_USE_ROCM)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT CMAKE_HIP_ARCHITECTURES)
|
|
||||||
- set(CMAKE_HIP_ARCHITECTURES "gfx908;gfx90a;gfx1030;gfx1100;gfx1101;gfx940;gfx941;gfx942;gfx1200;gfx1201")
|
|
||||||
+ set(CMAKE_HIP_ARCHITECTURES "gfx900;gfx908;gfx90a;gfx1030;gfx1100;gfx1101;gfx1102;gfx940;gfx941;gfx942;gfx1200;gfx1201")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
file(GLOB rocm_cmake_components ${onnxruntime_ROCM_HOME}/lib/cmake/*)
|
|
||||||
@@ -52,7 +52,6 @@ cuda = ["onnxruntime-gpu>=1.17.0,<2"]
|
|||||||
openvino = ["onnxruntime-openvino>=1.17.1,<1.19.0"]
|
openvino = ["onnxruntime-openvino>=1.17.1,<1.19.0"]
|
||||||
armnn = ["onnxruntime>=1.15.0,<2"]
|
armnn = ["onnxruntime>=1.15.0,<2"]
|
||||||
rknn = ["onnxruntime>=1.15.0,<2", "rknn-toolkit-lite2>=2.3.0,<3"]
|
rknn = ["onnxruntime>=1.15.0,<2", "rknn-toolkit-lite2>=2.3.0,<3"]
|
||||||
rocm = []
|
|
||||||
|
|
||||||
[tool.uv]
|
[tool.uv]
|
||||||
compile-bytecode = true
|
compile-bytecode = true
|
||||||
|
|||||||
@@ -2,19 +2,16 @@
|
|||||||
|
|
||||||
echo "Initializing Immich ML $IMMICH_SOURCE_REF"
|
echo "Initializing Immich ML $IMMICH_SOURCE_REF"
|
||||||
|
|
||||||
|
lib_path="/usr/lib/$(arch)-linux-gnu/libmimalloc.so.2"
|
||||||
|
# mimalloc seems to increase memory usage dramatically with openvino, need to investigate
|
||||||
if ! [ "$DEVICE" = "openvino" ]; then
|
if ! [ "$DEVICE" = "openvino" ]; then
|
||||||
|
export LD_PRELOAD="$lib_path"
|
||||||
|
export LD_BIND_NOW=1
|
||||||
: "${MACHINE_LEARNING_WORKER_TIMEOUT:=120}"
|
: "${MACHINE_LEARNING_WORKER_TIMEOUT:=120}"
|
||||||
else
|
else
|
||||||
: "${MACHINE_LEARNING_WORKER_TIMEOUT:=300}"
|
: "${MACHINE_LEARNING_WORKER_TIMEOUT:=300}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# mimalloc seems to increase memory usage dramatically with openvino, need to investigate
|
|
||||||
if ! [ "$DEVICE" = "openvino" ] && ! [ "$DEVICE" = "rocm" ]; then
|
|
||||||
lib_path="/usr/lib/$(arch)-linux-gnu/libmimalloc.so.2"
|
|
||||||
export LD_PRELOAD="$lib_path"
|
|
||||||
export LD_BIND_NOW=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
: "${IMMICH_HOST:=[::]}"
|
: "${IMMICH_HOST:=[::]}"
|
||||||
: "${IMMICH_PORT:=3003}"
|
: "${IMMICH_PORT:=3003}"
|
||||||
: "${MACHINE_LEARNING_WORKERS:=1}"
|
: "${MACHINE_LEARNING_WORKERS:=1}"
|
||||||
|
|||||||
Generated
+45
-45
@@ -876,7 +876,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "huggingface-hub"
|
name = "huggingface-hub"
|
||||||
version = "0.29.3"
|
version = "0.29.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "filelock" },
|
{ name = "filelock" },
|
||||||
@@ -887,9 +887,9 @@ dependencies = [
|
|||||||
{ name = "tqdm" },
|
{ name = "tqdm" },
|
||||||
{ name = "typing-extensions" },
|
{ name = "typing-extensions" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/e5/f9/851f34b02970e8143d41d4001b2d49e54ef113f273902103823b8bc95ada/huggingface_hub-0.29.3.tar.gz", hash = "sha256:64519a25716e0ba382ba2d3fb3ca082e7c7eb4a2fc634d200e8380006e0760e5", size = 390123 }
|
sdist = { url = "https://files.pythonhosted.org/packages/58/b2/f8b3c9842a794e8203448725aefa02d7c9e0da42d5f22f4ed806057cc36e/huggingface_hub-0.29.2.tar.gz", hash = "sha256:590b29c0dcbd0ee4b7b023714dc1ad8563fe4a68a91463438b74e980d28afaf3", size = 389816 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/40/0c/37d380846a2e5c9a3c6a73d26ffbcfdcad5fc3eacf42fdf7cff56f2af634/huggingface_hub-0.29.3-py3-none-any.whl", hash = "sha256:0b25710932ac649c08cdbefa6c6ccb8e88eef82927cacdb048efb726429453aa", size = 468997 },
|
{ url = "https://files.pythonhosted.org/packages/13/5f/088ff08dc41808fcd99d9972b9bcfa7e3a35e30e8b0a3155b57938f1611c/huggingface_hub-0.29.2-py3-none-any.whl", hash = "sha256:c56f20fca09ef19da84dcde2b76379ecdaddf390b083f59f166715584953307d", size = 468087 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1050,7 +1050,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "locust"
|
name = "locust"
|
||||||
version = "2.33.2"
|
version = "2.33.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "configargparse" },
|
{ name = "configargparse" },
|
||||||
@@ -1069,9 +1069,9 @@ dependencies = [
|
|||||||
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
||||||
{ name = "werkzeug" },
|
{ name = "werkzeug" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/a2/9e/09ee87dc12b240248731080bfd460c7d384aadb3171f6d03a4e7314cd0e1/locust-2.33.2.tar.gz", hash = "sha256:e626ed0156f36cec94c3c6b030fc91046469e7e2f5c2e91a99aab0f28b84977e", size = 2237716 }
|
sdist = { url = "https://files.pythonhosted.org/packages/f8/d4/873b1415c8a667982c5f229c6b74abed9fe0ead29ad87d862e5116ea2679/locust-2.33.0.tar.gz", hash = "sha256:ba291b7ab2349cc2db540adb8888bc93feb89ea4e4e10d80b935e5065091e8e9", size = 2237622 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/9c/c7/bb55ac53173d3e92b1b2577d0f36439500406ca5be476a27b7bc01ae8a75/locust-2.33.2-py3-none-any.whl", hash = "sha256:a2f3b53dcd5ed22cecee874cd989912749663d82ec9b030637d3e43044e5878e", size = 2254591 },
|
{ url = "https://files.pythonhosted.org/packages/1d/e5/57b58d9a545fbb2981de59ca25534d5ab4abb6742e6400bb49576ecab5ec/locust-2.33.0-py3-none-any.whl", hash = "sha256:77fcc5cc35cceee5e12d99f5bb23bc441d145bdef6967c2e93d6e4d93451553e", size = 2254520 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1180,7 +1180,7 @@ requires-dist = [
|
|||||||
{ name = "tokenizers", specifier = ">=0.15.0,<1.0" },
|
{ name = "tokenizers", specifier = ">=0.15.0,<1.0" },
|
||||||
{ name = "uvicorn", extras = ["standard"], specifier = ">=0.22.0,<1.0" },
|
{ name = "uvicorn", extras = ["standard"], specifier = ">=0.22.0,<1.0" },
|
||||||
]
|
]
|
||||||
provides-extras = ["cpu", "cuda", "openvino", "armnn", "rknn", "rocm"]
|
provides-extras = ["cpu", "cuda", "openvino", "armnn", "rknn"]
|
||||||
|
|
||||||
[package.metadata.requires-dev]
|
[package.metadata.requires-dev]
|
||||||
dev = [
|
dev = [
|
||||||
@@ -2210,27 +2210,27 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "ruff"
|
||||||
version = "0.11.0"
|
version = "0.9.9"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/77/2b/7ca27e854d92df5e681e6527dc0f9254c9dc06c8408317893cf96c851cdd/ruff-0.11.0.tar.gz", hash = "sha256:e55c620690a4a7ee6f1cccb256ec2157dc597d109400ae75bbf944fc9d6462e2", size = 3799407 }
|
sdist = { url = "https://files.pythonhosted.org/packages/6f/c3/418441a8170e8d53d05c0b9dad69760dbc7b8a12c10dbe6db1e1205d2377/ruff-0.9.9.tar.gz", hash = "sha256:0062ed13f22173e85f8f7056f9a24016e692efeea8704d1a5e8011b8aa850933", size = 3717448 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/48/40/3d0340a9e5edc77d37852c0cd98c5985a5a8081fc3befaeb2ae90aaafd2b/ruff-0.11.0-py3-none-linux_armv6l.whl", hash = "sha256:dc67e32bc3b29557513eb7eeabb23efdb25753684b913bebb8a0c62495095acb", size = 10098158 },
|
{ url = "https://files.pythonhosted.org/packages/bc/c3/2c4afa9ba467555d074b146d9aed0633a56ccdb900839fb008295d037b89/ruff-0.9.9-py3-none-linux_armv6l.whl", hash = "sha256:628abb5ea10345e53dff55b167595a159d3e174d6720bf19761f5e467e68d367", size = 10027252 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ec/a9/d8f5abb3b87b973b007649ac7bf63665a05b2ae2b2af39217b09f52abbbf/ruff-0.11.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:38c23fd9bdec4eb437b4c1e3595905a0a8edfccd63a790f818b28c78fe345639", size = 10879071 },
|
{ url = "https://files.pythonhosted.org/packages/33/d1/439e58487cf9eac26378332e25e7d5ade4b800ce1eec7dc2cfc9b0d7ca96/ruff-0.9.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b6cd1428e834b35d7493354723543b28cc11dc14d1ce19b685f6e68e07c05ec7", size = 10840721 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ab/62/aaa198614c6211677913ec480415c5e6509586d7b796356cec73a2f8a3e6/ruff-0.11.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7c8661b0be91a38bd56db593e9331beaf9064a79028adee2d5f392674bbc5e88", size = 10247944 },
|
{ url = "https://files.pythonhosted.org/packages/50/44/fead822c38281ba0122f1b76b460488a175a9bd48b130650a6fb6dbcbcf9/ruff-0.9.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5ee162652869120ad260670706f3cd36cd3f32b0c651f02b6da142652c54941d", size = 10161439 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9f/52/59e0a9f2cf1ce5e6cbe336b6dd0144725c8ea3b97cac60688f4e7880bf13/ruff-0.11.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6c0e8d3d2db7e9f6efd884f44b8dc542d5b6b590fc4bb334fdbc624d93a29a2", size = 10421725 },
|
{ url = "https://files.pythonhosted.org/packages/11/ae/d404a2ab8e61ddf6342e09cc6b7f7846cce6b243e45c2007dbe0ca928a5d/ruff-0.9.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3aa0f6b75082c9be1ec5a1db78c6d4b02e2375c3068438241dc19c7c306cc61a", size = 10336264 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a6/c3/dcd71acc6dff72ce66d13f4be5bca1dbed4db678dff2f0f6f307b04e5c02/ruff-0.11.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c3156d3f4b42e57247275a0a7e15a851c165a4fc89c5e8fa30ea6da4f7407b8", size = 9954435 },
|
{ url = "https://files.pythonhosted.org/packages/6a/4e/7c268aa7d84cd709fb6f046b8972313142cffb40dfff1d2515c5e6288d54/ruff-0.9.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:584cc66e89fb5f80f84b05133dd677a17cdd86901d6479712c96597a3f28e7fe", size = 9908774 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a6/9a/342d336c7c52dbd136dee97d4c7797e66c3f92df804f8f3b30da59b92e9c/ruff-0.11.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:490b1e147c1260545f6d041c4092483e3f6d8eba81dc2875eaebcf9140b53905", size = 11492664 },
|
{ url = "https://files.pythonhosted.org/packages/cc/26/c618a878367ef1b76270fd027ca93692657d3f6122b84ba48911ef5f2edc/ruff-0.9.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf3369325761a35aba75cd5c55ba1b5eb17d772f12ab168fbfac54be85cf18c", size = 11428127 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/84/35/6e7defd2d7ca95cc385ac1bd9f7f2e4a61b9cc35d60a263aebc8e590c462/ruff-0.11.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:1bc09a7419e09662983b1312f6fa5dab829d6ab5d11f18c3760be7ca521c9329", size = 12207856 },
|
{ url = "https://files.pythonhosted.org/packages/d7/9a/c5588a93d9bfed29f565baf193fe802fa676a0c837938137ea6cf0576d8c/ruff-0.9.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3403a53a32a90ce929aa2f758542aca9234befa133e29f4933dcef28a24317be", size = 12133187 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/22/78/da669c8731bacf40001c880ada6d31bcfb81f89cc996230c3b80d319993e/ruff-0.11.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bcfa478daf61ac8002214eb2ca5f3e9365048506a9d52b11bea3ecea822bb844", size = 11645156 },
|
{ url = "https://files.pythonhosted.org/packages/3e/ff/e7980a7704a60905ed7e156a8d73f604c846d9bd87deda9cabfa6cba073a/ruff-0.9.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18454e7fa4e4d72cffe28a37cf6a73cb2594f81ec9f4eca31a0aaa9ccdfb1590", size = 11602937 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ee/47/e27d17d83530a208f4a9ab2e94f758574a04c51e492aa58f91a3ed7cbbcb/ruff-0.11.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6fbb2aed66fe742a6a3a0075ed467a459b7cedc5ae01008340075909d819df1e", size = 13884167 },
|
{ url = "https://files.pythonhosted.org/packages/24/78/3690444ad9e3cab5c11abe56554c35f005b51d1d118b429765249095269f/ruff-0.9.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fadfe2c88724c9617339f62319ed40dcdadadf2888d5afb88bf3adee7b35bfb", size = 13771698 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/9f/5e/42ffbb0a5d4b07bbc642b7d58357b4e19a0f4774275ca6ca7d1f7b5452cd/ruff-0.11.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92c0c1ff014351c0b0cdfdb1e35fa83b780f1e065667167bb9502d47ca41e6db", size = 11348311 },
|
{ url = "https://files.pythonhosted.org/packages/6e/bf/e477c2faf86abe3988e0b5fd22a7f3520e820b2ee335131aca2e16120038/ruff-0.9.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6df104d08c442a1aabcfd254279b8cc1e2cbf41a605aa3e26610ba1ec4acf0b0", size = 11249026 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/c8/51/dc3ce0c5ce1a586727a3444a32f98b83ba99599bb1ebca29d9302886e87f/ruff-0.11.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e4fd5ff5de5f83e0458a138e8a869c7c5e907541aec32b707f57cf9a5e124445", size = 10305039 },
|
{ url = "https://files.pythonhosted.org/packages/f7/82/cdaffd59e5a8cb5b14c408c73d7a555a577cf6645faaf83e52fe99521715/ruff-0.9.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d7c62939daf5b2a15af48abbd23bea1efdd38c312d6e7c4cedf5a24e03207e17", size = 10220432 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/60/e0/475f0c2f26280f46f2d6d1df1ba96b3399e0234cf368cc4c88e6ad10dcd9/ruff-0.11.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:96bc89a5c5fd21a04939773f9e0e276308be0935de06845110f43fd5c2e4ead7", size = 9937939 },
|
{ url = "https://files.pythonhosted.org/packages/fe/a4/2507d0026225efa5d4412b6e294dfe54725a78652a5c7e29e6bd0fc492f3/ruff-0.9.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:9494ba82a37a4b81b6a798076e4a3251c13243fc37967e998efe4cce58c8a8d1", size = 9874602 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/e2/d3/3e61b7fd3e9cdd1e5b8c7ac188bec12975c824e51c5cd3d64caf81b0331e/ruff-0.11.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a9352b9d767889ec5df1483f94870564e8102d4d7e99da52ebf564b882cdc2c7", size = 10923259 },
|
{ url = "https://files.pythonhosted.org/packages/d5/be/f3aab1813846b476c4bcffe052d232244979c3cd99d751c17afb530ca8e4/ruff-0.9.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:4efd7a96ed6d36ef011ae798bf794c5501a514be369296c672dab7921087fa57", size = 10851212 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/30/32/cd74149ebb40b62ddd14bd2d1842149aeb7f74191fb0f49bd45c76909ff2/ruff-0.11.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:049a191969a10897fe052ef9cc7491b3ef6de79acd7790af7d7897b7a9bfbcb6", size = 11406212 },
|
{ url = "https://files.pythonhosted.org/packages/8b/45/8e5fd559bea0d2f57c4e12bf197a2fade2fac465aa518284f157dfbca92b/ruff-0.9.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ab90a7944c5a1296f3ecb08d1cbf8c2da34c7e68114b1271a431a3ad30cb660e", size = 11327490 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/00/ef/033022a6b104be32e899b00de704d7c6d1723a54d4c9e09d147368f14b62/ruff-0.11.0-py3-none-win32.whl", hash = "sha256:3191e9116b6b5bbe187447656f0c8526f0d36b6fd89ad78ccaad6bdc2fad7df2", size = 10310905 },
|
{ url = "https://files.pythonhosted.org/packages/42/55/e6c90f13880aeef327746052907e7e930681f26a164fe130ddac28b08269/ruff-0.9.9-py3-none-win32.whl", hash = "sha256:6b4c376d929c25ecd6d87e182a230fa4377b8e5125a4ff52d506ee8c087153c1", size = 10227912 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ed/8a/163f2e78c37757d035bd56cd60c8d96312904ca4a6deeab8442d7b3cbf89/ruff-0.11.0-py3-none-win_amd64.whl", hash = "sha256:c58bfa00e740ca0a6c43d41fb004cd22d165302f360aaa56f7126d544db31a21", size = 11411730 },
|
{ url = "https://files.pythonhosted.org/packages/35/b2/da925693cb82a1208aa34966c0f36cb222baca94e729dd22a587bc22d0f3/ruff-0.9.9-py3-none-win_amd64.whl", hash = "sha256:837982ea24091d4c1700ddb2f63b7070e5baec508e43b01de013dc7eff974ff1", size = 11355632 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4e/f7/096f6efabe69b49d7ca61052fc70289c05d8d35735c137ef5ba5ef423662/ruff-0.11.0-py3-none-win_arm64.whl", hash = "sha256:868364fc23f5aa122b00c6f794211e85f7e78f5dffdf7c590ab90b8c4e69b657", size = 10538956 },
|
{ url = "https://files.pythonhosted.org/packages/31/d8/de873d1c1b020d668d8ec9855d390764cb90cf8f6486c0983da52be8b7b7/ruff-0.9.9-py3-none-win_arm64.whl", hash = "sha256:3ac78f127517209fe6d96ab00f3ba97cafe38718b23b1db3e96d8b2d39e37ddf", size = 10435860 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2398,27 +2398,27 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokenizers"
|
name = "tokenizers"
|
||||||
version = "0.21.1"
|
version = "0.21.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "huggingface-hub" },
|
{ name = "huggingface-hub" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/92/76/5ac0c97f1117b91b7eb7323dcd61af80d72f790b4df71249a7850c195f30/tokenizers-0.21.1.tar.gz", hash = "sha256:a1bb04dc5b448985f86ecd4b05407f5a8d97cb2c0532199b2a302a604a0165ab", size = 343256 }
|
sdist = { url = "https://files.pythonhosted.org/packages/20/41/c2be10975ca37f6ec40d7abd7e98a5213bb04f284b869c1a24e6504fd94d/tokenizers-0.21.0.tar.gz", hash = "sha256:ee0894bf311b75b0c03079f33859ae4b2334d675d4e93f5a4132e1eae2834fe4", size = 343021 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/a5/1f/328aee25f9115bf04262e8b4e5a2050b7b7cf44b59c74e982db7270c7f30/tokenizers-0.21.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e78e413e9e668ad790a29456e677d9d3aa50a9ad311a40905d6861ba7692cf41", size = 2780767 },
|
{ url = "https://files.pythonhosted.org/packages/b0/5c/8b09607b37e996dc47e70d6a7b6f4bdd4e4d5ab22fe49d7374565c7fefaf/tokenizers-0.21.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:3c4c93eae637e7d2aaae3d376f06085164e1660f89304c0ab2b1d08a406636b2", size = 2647461 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ae/1a/4526797f3719b0287853f12c5ad563a9be09d446c44ac784cdd7c50f76ab/tokenizers-0.21.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:cd51cd0a91ecc801633829fcd1fda9cf8682ed3477c6243b9a095539de4aecf3", size = 2650555 },
|
{ url = "https://files.pythonhosted.org/packages/22/7a/88e58bb297c22633ed1c9d16029316e5b5ac5ee44012164c2edede599a5e/tokenizers-0.21.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:f53ea537c925422a2e0e92a24cce96f6bc5046bbef24a1652a5edc8ba975f62e", size = 2563639 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/4d/7a/a209b29f971a9fdc1da86f917fe4524564924db50d13f0724feed37b2a4d/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28da6b72d4fb14ee200a1bd386ff74ade8992d7f725f2bde2c495a9a98cf4d9f", size = 2937541 },
|
{ url = "https://files.pythonhosted.org/packages/f7/14/83429177c19364df27d22bc096d4c2e431e0ba43e56c525434f1f9b0fd00/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b177fb54c4702ef611de0c069d9169f0004233890e0c4c5bd5508ae05abf193", size = 2903304 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/3c/1e/b788b50ffc6191e0b1fc2b0d49df8cff16fe415302e5ceb89f619d12c5bc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:34d8cfde551c9916cb92014e040806122295a6800914bab5865deb85623931cf", size = 2819058 },
|
{ url = "https://files.pythonhosted.org/packages/7e/db/3433eab42347e0dc5452d8fcc8da03f638c9accffefe5a7c78146666964a/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6b43779a269f4629bebb114e19c3fca0223296ae9fea8bb9a7a6c6fb0657ff8e", size = 2804378 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/36/aa/3626dfa09a0ecc5b57a8c58eeaeb7dd7ca9a37ad9dd681edab5acd55764c/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaa852d23e125b73d283c98f007e06d4595732104b65402f46e8ef24b588d9f8", size = 3133278 },
|
{ url = "https://files.pythonhosted.org/packages/57/8b/7da5e6f89736c2ade02816b4733983fca1c226b0c42980b1ae9dc8fcf5cc/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9aeb255802be90acfd363626753fda0064a8df06031012fe7d52fd9a905eb00e", size = 3095488 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a4/4d/8fbc203838b3d26269f944a89459d94c858f5b3f9a9b6ee9728cdcf69161/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a21a15d5c8e603331b8a59548bbe113564136dc0f5ad8306dd5033459a226da0", size = 3144253 },
|
{ url = "https://files.pythonhosted.org/packages/4d/f6/5ed6711093dc2c04a4e03f6461798b12669bc5a17c8be7cce1240e0b5ce8/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d8b09dbeb7a8d73ee204a70f94fc06ea0f17dcf0844f16102b9f414f0b7463ba", size = 3121410 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/d8/1b/2bd062adeb7c7511b847b32e356024980c0ffcf35f28947792c2d8ad2288/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fdbd4c067c60a0ac7eca14b6bd18a5bebace54eb757c706b47ea93204f7a37c", size = 3398225 },
|
{ url = "https://files.pythonhosted.org/packages/81/42/07600892d48950c5e80505b81411044a2d969368cdc0d929b1c847bf6697/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:400832c0904f77ce87c40f1a8a27493071282f785724ae62144324f171377273", size = 3388821 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/8a/63/38be071b0c8e06840bc6046991636bcb30c27f6bb1e670f4f4bc87cf49cc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dd9a0061e403546f7377df940e866c3e678d7d4e9643d0461ea442b4f89e61a", size = 3038874 },
|
{ url = "https://files.pythonhosted.org/packages/22/06/69d7ce374747edaf1695a4f61b83570d91cc8bbfc51ccfecf76f56ab4aac/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84ca973b3a96894d1707e189c14a774b701596d579ffc7e69debfc036a61a04", size = 3008868 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ec/83/afa94193c09246417c23a3c75a8a0a96bf44ab5630a3015538d0c316dd4b/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:db9484aeb2e200c43b915a1a0150ea885e35f357a5a8fabf7373af333dcc8dbf", size = 9014448 },
|
{ url = "https://files.pythonhosted.org/packages/c8/69/54a0aee4d576045b49a0eb8bffdc495634309c823bf886042e6f46b80058/tokenizers-0.21.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:eb7202d231b273c34ec67767378cd04c767e967fda12d4a9e36208a34e2f137e", size = 8975831 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ae/b3/0e1a37d4f84c0f014d43701c11eb8072704f6efe8d8fc2dcdb79c47d76de/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed248ab5279e601a30a4d67bdb897ecbe955a50f1e7bb62bd99f07dd11c2f5b6", size = 8937877 },
|
{ url = "https://files.pythonhosted.org/packages/f7/f3/b776061e4f3ebf2905ba1a25d90380aafd10c02d406437a8ba22d1724d76/tokenizers-0.21.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:089d56db6782a73a27fd8abf3ba21779f5b85d4a9f35e3b493c7bbcbbf0d539b", size = 8920746 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ac/33/ff08f50e6d615eb180a4a328c65907feb6ded0b8f990ec923969759dc379/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:9ac78b12e541d4ce67b4dfd970e44c060a2147b9b2a21f509566d556a509c67d", size = 9186645 },
|
{ url = "https://files.pythonhosted.org/packages/d8/ee/ce83d5ec8b6844ad4c3ecfe3333d58ecc1adc61f0878b323a15355bcab24/tokenizers-0.21.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:c87ca3dc48b9b1222d984b6b7490355a6fdb411a2d810f6f05977258400ddb74", size = 9161814 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/5f/aa/8ae85f69a9f6012c6f8011c6f4aa1c96154c816e9eea2e1b758601157833/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e5a69c1a4496b81a5ee5d2c1f3f7fbdf95e90a0196101b0ee89ed9956b8a168f", size = 9384380 },
|
{ url = "https://files.pythonhosted.org/packages/18/07/3e88e65c0ed28fa93aa0c4d264988428eef3df2764c3126dc83e243cb36f/tokenizers-0.21.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4145505a973116f91bc3ac45988a92e618a6f83eb458f49ea0790df94ee243ff", size = 9357138 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/e8/5b/a5d98c89f747455e8b7a9504910c865d5e51da55e825a7ae641fb5ff0a58/tokenizers-0.21.1-cp39-abi3-win32.whl", hash = "sha256:1039a3a5734944e09de1d48761ade94e00d0fa760c0e0551151d4dd851ba63e3", size = 2239506 },
|
{ url = "https://files.pythonhosted.org/packages/15/b0/dc4572ca61555fc482ebc933f26cb407c6aceb3dc19c301c68184f8cad03/tokenizers-0.21.0-cp39-abi3-win32.whl", hash = "sha256:eb1702c2f27d25d9dd5b389cc1f2f51813e99f8ca30d9e25348db6585a97e24a", size = 2202266 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/e6/b6/072a8e053ae600dcc2ac0da81a23548e3b523301a442a6ca900e92ac35be/tokenizers-0.21.1-cp39-abi3-win_amd64.whl", hash = "sha256:0f0dcbcc9f6e13e675a66d7a5f2f225a736745ce484c1a4e07476a89ccdad382", size = 2435481 },
|
{ url = "https://files.pythonhosted.org/packages/44/69/d21eb253fa91622da25585d362a874fa4710be600f0ea9446d8d0217cec1/tokenizers-0.21.0-cp39-abi3-win_amd64.whl", hash = "sha256:87841da5a25a3a5f70c102de371db120f41873b854ba65e52bccd57df5a3780c", size = 2389192 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2465,14 +2465,14 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "types-setuptools"
|
name = "types-setuptools"
|
||||||
version = "76.0.0.20250313"
|
version = "75.8.2.20250305"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "setuptools" },
|
{ name = "setuptools" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/b8/0f/2d1d000c2be3919bcdea15e5da48456bf1e55c18d02c5509ea59dade1408/types_setuptools-76.0.0.20250313.tar.gz", hash = "sha256:b2be66f550f95f3cad2a7d46177b273c7e9c80df7d257fa57addbbcfc8126a9e", size = 43627 }
|
sdist = { url = "https://files.pythonhosted.org/packages/4f/18/a996861f5225e7d533a8d8b6aa61bcc9183429a6b8bc93b850aa2e22974d/types_setuptools-75.8.2.20250305.tar.gz", hash = "sha256:a987269b49488f21961a1d99aa8d281b611625883def6392a93855b31544e405", size = 42609 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/ca/89/ea9669a0a76b160ffb312d0b02b15bad053c1bc81d2a54e42e3a402ca754/types_setuptools-76.0.0.20250313-py3-none-any.whl", hash = "sha256:bf454b2a49b8cfd7ebcf5844d4dd5fe4c8666782df1e3663c5866fd51a47460e", size = 65845 },
|
{ url = "https://files.pythonhosted.org/packages/d9/5b/bb33f99239a6d54ed1d8220a088d96d2ccacac7abb317df0d68d2500f3be/types_setuptools-75.8.2.20250305-py3-none-any.whl", hash = "sha256:ba80953fd1f5f49e552285c024f75b5223096a38a5138a54d18ddd3fa8f6a2d4", size = 63727 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"flutter": "3.29.2"
|
"flutter": "3.29.1"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ custom_lint:
|
|||||||
- lib/entities/*.entity.dart
|
- lib/entities/*.entity.dart
|
||||||
- lib/repositories/{album,asset,backup,database,etag,exif_info,user,timeline,partner}.repository.dart
|
- lib/repositories/{album,asset,backup,database,etag,exif_info,user,timeline,partner}.repository.dart
|
||||||
- lib/infrastructure/entities/*.entity.dart
|
- lib/infrastructure/entities/*.entity.dart
|
||||||
- lib/infrastructure/repositories/*.repository.dart
|
- lib/infrastructure/repositories/{store,db,log,exif}.repository.dart
|
||||||
- lib/providers/infrastructure/db.provider.dart
|
- lib/providers/infrastructure/db.provider.dart
|
||||||
# acceptable exceptions for the time being (until Isar is fully replaced)
|
# acceptable exceptions for the time being (until Isar is fully replaced)
|
||||||
- lib/providers/app_life_cycle.provider.dart
|
- lib/providers/app_life_cycle.provider.dart
|
||||||
@@ -93,7 +93,6 @@ custom_lint:
|
|||||||
- lib/infrastructure/utils/*.converter.dart
|
- lib/infrastructure/utils/*.converter.dart
|
||||||
# acceptable exceptions for the time being
|
# acceptable exceptions for the time being
|
||||||
- lib/entities/{album,asset,exif_info,user}.entity.dart # to convert DTOs to entities
|
- lib/entities/{album,asset,exif_info,user}.entity.dart # to convert DTOs to entities
|
||||||
- lib/infrastructure/utils/*.converter.dart
|
|
||||||
- lib/utils/{image_url_builder,openapi_patching}.dart # utils are fine
|
- lib/utils/{image_url_builder,openapi_patching}.dart # utils are fine
|
||||||
- test/modules/utils/openapi_patching_test.dart # filename is self-explanatory...
|
- test/modules/utils/openapi_patching_test.dart # filename is self-explanatory...
|
||||||
- lib/domain/services/sync_stream.service.dart # Making sure to comply with the type from database
|
- lib/domain/services/sync_stream.service.dart # Making sure to comply with the type from database
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
|
||||||
<!-- Flutter needs it to communicate with the running application
|
<!-- Flutter needs it to communicate with the running application
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
-->
|
-->
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
</manifest>
|
||||||
<application android:label="Immich-Debug" tools:replace="android:label">
|
|
||||||
</application>
|
|
||||||
</manifest>
|
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ platform :android do
|
|||||||
task: 'bundle',
|
task: 'bundle',
|
||||||
build_type: 'Release',
|
build_type: 'Release',
|
||||||
properties: {
|
properties: {
|
||||||
"android.injected.version.code" => 188,
|
"android.injected.version.code" => 187,
|
||||||
"android.injected.version.name" => "1.130.0",
|
"android.injected.version.name" => "1.129.0",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab')
|
upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab')
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "تحرير التاريخ والوقت",
|
"control_bottom_app_bar_edit_time": "تحرير التاريخ والوقت",
|
||||||
"control_bottom_app_bar_favorite": "مفضل",
|
"control_bottom_app_bar_favorite": "مفضل",
|
||||||
"control_bottom_app_bar_share": "يشارك",
|
"control_bottom_app_bar_share": "يشارك",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "مشاركة إلى",
|
"control_bottom_app_bar_share_to": "مشاركة إلى",
|
||||||
"control_bottom_app_bar_stack": "تجميع",
|
"control_bottom_app_bar_stack": "تجميع",
|
||||||
"control_bottom_app_bar_trash_from_immich": "حذفه ونقله في سله المهملات",
|
"control_bottom_app_bar_trash_from_immich": "حذفه ونقله في سله المهملات",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "وحدة زمنية",
|
"edit_date_time_dialog_timezone": "وحدة زمنية",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "موقع",
|
"edit_location_dialog_title": "موقع",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "إضافة موقع",
|
"exif_bottom_sheet_location_add": "إضافة موقع",
|
||||||
"exif_bottom_sheet_people": "الناس",
|
"exif_bottom_sheet_people": "الناس",
|
||||||
"exif_bottom_sheet_person_add_person": "اضف اسما",
|
"exif_bottom_sheet_person_add_person": "اضف اسما",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "أعمال جارية",
|
"experimental_settings_new_asset_list_subtitle": "أعمال جارية",
|
||||||
"experimental_settings_new_asset_list_title": "تمكين شبكة الصور التجريبية",
|
"experimental_settings_new_asset_list_title": "تمكين شبكة الصور التجريبية",
|
||||||
"experimental_settings_subtitle": "استخدام على مسؤوليتك الخاصة!",
|
"experimental_settings_subtitle": "استخدام على مسؤوليتك الخاصة!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "لم يتم العثور على الأصول المفضلة",
|
"favorites_page_no_favorites": "لم يتم العثور على الأصول المفضلة",
|
||||||
"favorites_page_title": "المفضلة",
|
"favorites_page_title": "المفضلة",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "تمكين ردود الفعل اللمسية",
|
"haptic_feedback_switch": "تمكين ردود الفعل اللمسية",
|
||||||
|
|||||||
+307
-318
@@ -8,26 +8,26 @@
|
|||||||
"action_common_update": "Actualitzar",
|
"action_common_update": "Actualitzar",
|
||||||
"add_a_name": "Afegeix un nom",
|
"add_a_name": "Afegeix un nom",
|
||||||
"add_endpoint": "afegir endpoint",
|
"add_endpoint": "afegir endpoint",
|
||||||
"add_to_album_bottom_sheet_added": "Afegit a {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ja està a {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_log_level_title": "Nivell de registre: {}",
|
"advanced_settings_log_level_title": "Log level: {}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Alguns dispositius són molt lents en carregar miniatures dels elements del dispositiu. Activeu aquest paràmetre per carregar imatges remotes en el seu lloc.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
|
"advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
|
||||||
"advanced_settings_proxy_headers_subtitle": "Definiu les capçaleres de proxy que Immich per enviar amb cada sol·licitud de xarxa",
|
"advanced_settings_proxy_headers_subtitle": "Definiu les capçaleres de proxy que Immich per enviar amb cada sol·licitud de xarxa",
|
||||||
"advanced_settings_proxy_headers_title": "Capçaleres de proxy",
|
"advanced_settings_proxy_headers_title": "Capçaleres de proxy",
|
||||||
"advanced_settings_self_signed_ssl_subtitle": "Omet la verificació del certificat SSL del servidor. Requerit per a certificats autosignats.",
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
"advanced_settings_self_signed_ssl_title": "Permet certificats SSL autosignats",
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Configuració avançada de l'usuari",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Avançat",
|
"advanced_settings_tile_title": "Avançat",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Habilita funcions addicionals per a la resolució de problemes",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
"advanced_settings_troubleshooting_title": "Resolució de problemes",
|
"advanced_settings_troubleshooting_title": "Resolució de problemes",
|
||||||
"album_info_card_backup_album_excluded": "Exclosos",
|
"album_info_card_backup_album_excluded": "Exclosos",
|
||||||
"album_info_card_backup_album_included": "Inclosos",
|
"album_info_card_backup_album_included": "Inclosos",
|
||||||
"albums": "Àlbums",
|
"albums": "Àlbums",
|
||||||
"album_thumbnail_card_item": "1 element",
|
"album_thumbnail_card_item": "1 item",
|
||||||
"album_thumbnail_card_items": "{} elements",
|
"album_thumbnail_card_items": "{} items",
|
||||||
"album_thumbnail_card_shared": " · Compartit",
|
"album_thumbnail_card_shared": " · Shared",
|
||||||
"album_thumbnail_owned": "Propi",
|
"album_thumbnail_owned": "Owned",
|
||||||
"album_thumbnail_shared_by": "Compartit per {}",
|
"album_thumbnail_shared_by": "Compartit per {}",
|
||||||
"album_viewer_appbar_delete_confirm": "Confirmes que vols suprimir aquest àlbum del teu compte?",
|
"album_viewer_appbar_delete_confirm": "Confirmes que vols suprimir aquest àlbum del teu compte?",
|
||||||
"album_viewer_appbar_share_delete": "Esborra l'àlbum",
|
"album_viewer_appbar_share_delete": "Esborra l'àlbum",
|
||||||
@@ -37,28 +37,28 @@
|
|||||||
"album_viewer_appbar_share_err_title": "Error al modificar el títol de l'àlbum",
|
"album_viewer_appbar_share_err_title": "Error al modificar el títol de l'àlbum",
|
||||||
"album_viewer_appbar_share_leave": "Surt de l'àlbum",
|
"album_viewer_appbar_share_leave": "Surt de l'àlbum",
|
||||||
"album_viewer_appbar_share_remove": "Treu de l'àlbum",
|
"album_viewer_appbar_share_remove": "Treu de l'àlbum",
|
||||||
"album_viewer_appbar_share_to": "Comparteix amb",
|
"album_viewer_appbar_share_to": "Share To",
|
||||||
"album_viewer_page_share_add_users": "Afegeix usuaris",
|
"album_viewer_page_share_add_users": "Afegeix usuaris",
|
||||||
"all": "Tot",
|
"all": "Tot",
|
||||||
"all_people_page_title": "Persones",
|
"all_people_page_title": "Persones",
|
||||||
"all_videos_page_title": "Vídeos",
|
"all_videos_page_title": "Vídeos",
|
||||||
"app_bar_signout_dialog_content": "Estàs segur que vols tancar la sessió?",
|
"app_bar_signout_dialog_content": "Are you sure you want to sign out?",
|
||||||
"app_bar_signout_dialog_ok": "Sí",
|
"app_bar_signout_dialog_ok": "Yes",
|
||||||
"app_bar_signout_dialog_title": "Tanca la sessió",
|
"app_bar_signout_dialog_title": "Sign out",
|
||||||
"archived": "Arxivat",
|
"archived": "Arxivat",
|
||||||
"archive_page_no_archived_assets": "No s'ha trobat res arxivat",
|
"archive_page_no_archived_assets": "No s'ha trobat res arxivat",
|
||||||
"archive_page_title": "Arxiu({})",
|
"archive_page_title": "Arxiu({})",
|
||||||
"asset_action_delete_err_read_only": "No es poden esborrar el fitxer(s) de només lectura, ometent",
|
"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_action_share_err_offline": "No s'ha pogut obtenir el fitxer(s) sense connexió, ometent",
|
||||||
"asset_list_group_by_sub_title": "Agrupar per",
|
"asset_list_group_by_sub_title": "Agrupar per",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Disseny dinàmic",
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
||||||
"asset_list_layout_settings_group_automatically": "Automàtic",
|
"asset_list_layout_settings_group_automatically": "Automàtic",
|
||||||
"asset_list_layout_settings_group_by": "Agrupa elements per",
|
"asset_list_layout_settings_group_by": "Group assets by",
|
||||||
"asset_list_layout_settings_group_by_month": "Mes",
|
"asset_list_layout_settings_group_by_month": "Month",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Mes + dia",
|
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
||||||
"asset_list_layout_sub_title": "Disseny",
|
"asset_list_layout_sub_title": "Disseny",
|
||||||
"asset_list_settings_subtitle": "Configuració del disseny de la graella de fotos",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Graella de fotos",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
"asset_restored_successfully": "Element recuperat correctament",
|
"asset_restored_successfully": "Element recuperat correctament",
|
||||||
"assets_deleted_permanently": "{} element(s) esborrats permanentment",
|
"assets_deleted_permanently": "{} element(s) esborrats permanentment",
|
||||||
"assets_deleted_permanently_from_server": "{} element(s) esborrats permanentment del servidor d'Immich",
|
"assets_deleted_permanently_from_server": "{} element(s) esborrats permanentment del servidor d'Immich",
|
||||||
@@ -73,97 +73,97 @@
|
|||||||
"background_location_permission": "Permís d'ubicació en segon pla",
|
"background_location_permission": "Permís d'ubicació en segon pla",
|
||||||
"background_location_permission_content": "Per canviar de xarxa quan s'executa en segon pla, Immich ha de *sempre* tenir accés a la ubicació precisa perquè l'aplicació pugui llegir el nom de la xarxa Wi-Fi",
|
"background_location_permission_content": "Per canviar de xarxa quan s'executa en segon pla, Immich ha de *sempre* tenir accés a la ubicació precisa perquè l'aplicació pugui llegir el nom de la xarxa Wi-Fi",
|
||||||
"backup_album_selection_page_albums_device": "Àlbums al dispositiu ({})",
|
"backup_album_selection_page_albums_device": "Àlbums al dispositiu ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Un toc per incloure, doble toc per excloure",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
"backup_album_selection_page_assets_scatter": "Els elements poden dispersar-se en diversos àlbums. Per tant, els àlbums es poden incloure o excloure durant el procés de còpia de seguretat.",
|
"backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.",
|
||||||
"backup_album_selection_page_select_albums": "Selecciona àlbums",
|
"backup_album_selection_page_select_albums": "Selecciona àlbums",
|
||||||
"backup_album_selection_page_selection_info": "Informació de la selecció",
|
"backup_album_selection_page_selection_info": "Informació de la selecció",
|
||||||
"backup_album_selection_page_total_assets": "Total d'elements únics",
|
"backup_album_selection_page_total_assets": "Total d'elements únics",
|
||||||
"backup_all": "Tots",
|
"backup_all": "All",
|
||||||
"backup_background_service_backup_failed_message": "No s'ha pogut copiar els elements. Tornant a intentar…",
|
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
||||||
"backup_background_service_connection_failed_message": "No s'ha pogut connectar al servidor. Tornant a intentar…",
|
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
||||||
"backup_background_service_current_upload_notification": "Pujant {}",
|
"backup_background_service_current_upload_notification": "Pujant {}",
|
||||||
"backup_background_service_default_notification": "Cercant nous elements...",
|
"backup_background_service_default_notification": "Cercant nous elements...",
|
||||||
"backup_background_service_error_title": "Error copiant",
|
"backup_background_service_error_title": "Error copiant",
|
||||||
"backup_background_service_in_progress_notification": "Copiant els teus elements",
|
"backup_background_service_in_progress_notification": "Copiant els teus elements",
|
||||||
"backup_background_service_upload_failure_notification": "Error al pujar {}",
|
"backup_background_service_upload_failure_notification": "Error al pujar {}",
|
||||||
"backup_controller_page_albums": "Copia els àlbums",
|
"backup_controller_page_albums": "Copia els àlbums",
|
||||||
"backup_controller_page_background_app_refresh_disabled_content": "Activa l'actualització en segon pla de l'aplicació a Configuració > General > Actualització en segon pla per utilitzar la copia de seguretat en segon pla.",
|
"backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.",
|
||||||
"backup_controller_page_background_app_refresh_disabled_title": "Actualització en segon pla desactivada",
|
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
||||||
"backup_controller_page_background_app_refresh_enable_button_text": "Vés a configuració",
|
"backup_controller_page_background_app_refresh_enable_button_text": "Vés a configuració",
|
||||||
"backup_controller_page_background_battery_info_link": "Mostra'm com",
|
"backup_controller_page_background_battery_info_link": "Mostra'm com",
|
||||||
"backup_controller_page_background_battery_info_message": "Per obtenir la millor experiència de copia de seguretat en segon pla, desactiveu qualsevol optimització de bateria que restringeixi l'activitat en segon pla per a Immich.\n\nAtès que això és específic del dispositiu, busqueu la informació necessària per al fabricant del vostre dispositiu",
|
"backup_controller_page_background_battery_info_message": "For the best background backup experience, please disable any battery optimizations restricting background activity for Immich.\n\nSince this is device-specific, please lookup the required information for your device manufacturer.",
|
||||||
"backup_controller_page_background_battery_info_ok": "D'acord",
|
"backup_controller_page_background_battery_info_ok": "D'acord",
|
||||||
"backup_controller_page_background_battery_info_title": "Optimitzacions de bateria",
|
"backup_controller_page_background_battery_info_title": "Optimitzacions de bateria",
|
||||||
"backup_controller_page_background_charging": "Només mentre es carrega",
|
"backup_controller_page_background_charging": "Només mentre es carrega",
|
||||||
"backup_controller_page_background_configure_error": "No s'ha pogut configurar el servei en segon pla",
|
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
||||||
"backup_controller_page_background_delay": "Retard en la copia de seguretat de nous elements: {}",
|
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
||||||
"backup_controller_page_background_description": "Activeu el servei en segon pla per copiar automàticament tots els nous elements sense haver d'obrir l'aplicació.",
|
"backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app",
|
||||||
"backup_controller_page_background_is_off": "La còpia automàtica en segon pla està desactivada",
|
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
||||||
"backup_controller_page_background_is_on": "La còpia automàtica en segon pla està activada",
|
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
||||||
"backup_controller_page_background_turn_off": "Desactiva el servei en segon pla",
|
"backup_controller_page_background_turn_off": "Turn off background service",
|
||||||
"backup_controller_page_background_turn_on": "Activa el servei en segon pla",
|
"backup_controller_page_background_turn_on": "Turn on background service",
|
||||||
"backup_controller_page_background_wifi": "Només amb WiFi",
|
"backup_controller_page_background_wifi": "Only on WiFi",
|
||||||
"backup_controller_page_backup": "Còpia",
|
"backup_controller_page_backup": "Còpia",
|
||||||
"backup_controller_page_backup_selected": "Seleccionat: ",
|
"backup_controller_page_backup_selected": "Selected: ",
|
||||||
"backup_controller_page_backup_sub": "Fotografies i vídeos copiats",
|
"backup_controller_page_backup_sub": "Fotografies i vídeos copiats",
|
||||||
"backup_controller_page_cancel": "Cancel·la",
|
"backup_controller_page_cancel": "Cancel·la",
|
||||||
"backup_controller_page_created": "Creat el: {}",
|
"backup_controller_page_created": "Created on: {}",
|
||||||
"backup_controller_page_desc_backup": "Activeu la còpia de seguretat per pujar automàticament els nous elements al servidor en obrir l'aplicació.",
|
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
||||||
"backup_controller_page_excluded": "Exclosos:",
|
"backup_controller_page_excluded": "Exclosos:",
|
||||||
"backup_controller_page_failed": "Fallats ({})",
|
"backup_controller_page_failed": "Failed ({})",
|
||||||
"backup_controller_page_filename": "Nom de l'arxiu: {} [{}]",
|
"backup_controller_page_filename": "File name: {} [{}]",
|
||||||
"backup_controller_page_id": "ID: {}",
|
"backup_controller_page_id": "ID: {}",
|
||||||
"backup_controller_page_info": "Informació de la còpia",
|
"backup_controller_page_info": "Informació de la còpia",
|
||||||
"backup_controller_page_none_selected": "Cap seleccionat",
|
"backup_controller_page_none_selected": "None selected",
|
||||||
"backup_controller_page_remainder": "Restant",
|
"backup_controller_page_remainder": "Restant",
|
||||||
"backup_controller_page_remainder_sub": "Fotografies i vídeos restants per copiar de la selecció",
|
"backup_controller_page_remainder_sub": "Fotografies i vídeos restants per copiar de la selecció",
|
||||||
"backup_controller_page_select": "Selecciona",
|
"backup_controller_page_select": "Selecciona",
|
||||||
"backup_controller_page_server_storage": "Emmagatzematge del servidor",
|
"backup_controller_page_server_storage": "Server Storage",
|
||||||
"backup_controller_page_start_backup": "Inicia la còpia",
|
"backup_controller_page_start_backup": "Inicia la còpia",
|
||||||
"backup_controller_page_status_off": "La copia de seguretat està desactivada",
|
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
||||||
"backup_controller_page_status_on": "La copia de seguretat està activada",
|
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
||||||
"backup_controller_page_storage_format": "{} de {} utilitzats",
|
"backup_controller_page_storage_format": "{} of {} used",
|
||||||
"backup_controller_page_to_backup": "Àlbums a copiar",
|
"backup_controller_page_to_backup": "Àlbums a copiar",
|
||||||
"backup_controller_page_total": "Total",
|
"backup_controller_page_total": "Total",
|
||||||
"backup_controller_page_total_sub": "Totes les fotografies i vídeos dels àlbums seleccionats",
|
"backup_controller_page_total_sub": "Totes les fotografies i vídeos dels àlbums seleccionats",
|
||||||
"backup_controller_page_turn_off": "Desactiva la còpia de seguretat",
|
"backup_controller_page_turn_off": "Turn off foreground backup",
|
||||||
"backup_controller_page_turn_on": "Activa la còpia de seguretat",
|
"backup_controller_page_turn_on": "Turn on foreground backup",
|
||||||
"backup_controller_page_uploading_file_info": "S'està pujant la informació del fitxer",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "No es pot eliminar l'únic àlbum",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "elements",
|
"backup_info_card_assets": "elements",
|
||||||
"backup_manual_cancelled": "Cancel·lat",
|
"backup_manual_cancelled": "Cancelled",
|
||||||
"backup_manual_failed": "Fallat",
|
"backup_manual_failed": "Failed",
|
||||||
"backup_manual_in_progress": "La pujada ja està en curs. Torneu-ho a provar més tard",
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
"backup_manual_success": "Èxit",
|
"backup_manual_success": "Success",
|
||||||
"backup_manual_title": "Estat de pujada",
|
"backup_manual_title": "Upload status",
|
||||||
"backup_options_page_title": "Opcions de còpia de seguretat",
|
"backup_options_page_title": "Opcions de còpia de seguretat",
|
||||||
"backup_setting_subtitle": "Gestiona la configuració de càrrega en segon pla i en primer pla",
|
"backup_setting_subtitle": "Gestiona la configuració de càrrega en segon pla i en primer pla",
|
||||||
"cache_settings_album_thumbnails": "Miniatures de la pàgina de la biblioteca ({} elements)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Neteja la memòria cau",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"cache_settings_clear_cache_button_title": "Neteja la memòria cau de l'aplicació. Això impactarà significativament el rendiment fins que la memòria cau es torni a reconstruir.",
|
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
"cache_settings_duplicated_assets_clear_button": "NETEJA",
|
"cache_settings_duplicated_assets_clear_button": "CLEAR",
|
||||||
"cache_settings_duplicated_assets_subtitle": "Fotos i vídeos que estan a la llista negra de l'aplicació.",
|
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
|
||||||
"cache_settings_duplicated_assets_title": "Elements duplicats ({})",
|
"cache_settings_duplicated_assets_title": "Duplicated Assets ({})",
|
||||||
"cache_settings_image_cache_size": "Mida de la memòria cau de imatges ({} elements)",
|
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
||||||
"cache_settings_statistics_album": "Miniatures de la biblioteca",
|
"cache_settings_statistics_album": "Library thumbnails",
|
||||||
"cache_settings_statistics_assets": "{} elements ({})",
|
"cache_settings_statistics_assets": "{} elements ({})",
|
||||||
"cache_settings_statistics_full": "Imatges completes",
|
"cache_settings_statistics_full": "Imatges completes",
|
||||||
"cache_settings_statistics_shared": "Miniatures d'àlbums compartits",
|
"cache_settings_statistics_shared": "Shared album thumbnails",
|
||||||
"cache_settings_statistics_thumbnail": "Miniatures",
|
"cache_settings_statistics_thumbnail": "Miniatures",
|
||||||
"cache_settings_statistics_title": "Ús de memòria cau",
|
"cache_settings_statistics_title": "Ús de memòria cau",
|
||||||
"cache_settings_subtitle": "Controla el comportament de la memòria cau de l'aplicació mòbil Immich",
|
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
||||||
"cache_settings_thumbnail_size": "Mida de la memòria cau de les miniatures ({} elements)",
|
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
||||||
"cache_settings_tile_subtitle": "Controla el comportament de l'emmagatzematge local",
|
"cache_settings_tile_subtitle": "Control the local storage behaviour",
|
||||||
"cache_settings_tile_title": "Emmagatzematge local",
|
"cache_settings_tile_title": "Local Storage",
|
||||||
"cache_settings_title": "Configuració de la memòria cau",
|
"cache_settings_title": "Configuració de la memòria cau",
|
||||||
"cancel": "Cancel·la",
|
"cancel": "Cancel·la",
|
||||||
"canceled": "Cancel·lat",
|
"canceled": "Cancel·lat",
|
||||||
"change_display_order": "Canvia l'ordre de visualització",
|
"change_display_order": "Canvia l'ordre de visualització",
|
||||||
"change_password_form_confirm_password": "Confirma la contrasenya",
|
"change_password_form_confirm_password": "Confirma la contrasenya",
|
||||||
"change_password_form_description": "Hola {name},\n\nAquesta és la primera vegada que inicies sessió al sistema o bé s'ha sol·licitat canviar la teva contrasenya. Si us plau, introdueix la nova contrasenya a continuació.",
|
"change_password_form_description": "Hi {name},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
|
||||||
"change_password_form_new_password": "Nova contrasenya",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Les contrasenyes no coincideixen",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Torna a introduir la nova contrasenya",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
"check_corrupt_asset_backup": "Comprovar les còpies de seguretat corruptes",
|
"check_corrupt_asset_backup": "Comprovar les còpies de seguretat corruptes",
|
||||||
"check_corrupt_asset_backup_button": "Realitzar comprovació",
|
"check_corrupt_asset_backup_button": "Realitzar comprovació",
|
||||||
"check_corrupt_asset_backup_description": "Executeu aquesta comprovació només mitjançant Wi-Fi i un cop s'hagi fet una còpia de seguretat de tots els actius. El procediment pot trigar uns minuts.",
|
"check_corrupt_asset_backup_description": "Executeu aquesta comprovació només mitjançant Wi-Fi i un cop s'hagi fet una còpia de seguretat de tots els actius. El procediment pot trigar uns minuts.",
|
||||||
@@ -176,14 +176,14 @@
|
|||||||
"client_cert_remove_msg": "S'ha eliminat el certificat del client",
|
"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_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",
|
"client_cert_title": "Certificat de client SSL",
|
||||||
"common_add_to_album": "Afegir a l'àlbum",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Canvia la contrasenya",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Crea un àlbum nou",
|
"common_create_new_album": "Crea un àlbum nou",
|
||||||
"common_server_error": "Si us plau, comproveu la vostra connexió de xarxa, assegureu-vos que el servidor és accessible i que les versions de l'aplicació i del servidor són compatibles.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Compartit",
|
"common_shared": "Compartit",
|
||||||
"completed": "Completat",
|
"completed": "Completat",
|
||||||
"contextual_search": "Sortida del sol a la platja",
|
"contextual_search": "Sortida del sol a la platja",
|
||||||
"control_bottom_app_bar_add_to_album": "Afegir a l'àlbum",
|
"control_bottom_app_bar_add_to_album": "Add to album",
|
||||||
"control_bottom_app_bar_album_info": "{} elements",
|
"control_bottom_app_bar_album_info": "{} elements",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elements - Compartits",
|
"control_bottom_app_bar_album_info_shared": "{} elements - Compartits",
|
||||||
"control_bottom_app_bar_archive": "Arxiu",
|
"control_bottom_app_bar_archive": "Arxiu",
|
||||||
@@ -193,32 +193,31 @@
|
|||||||
"control_bottom_app_bar_delete_from_local": "Suprimeix del dispositiu",
|
"control_bottom_app_bar_delete_from_local": "Suprimeix del dispositiu",
|
||||||
"control_bottom_app_bar_download": "Descarrega",
|
"control_bottom_app_bar_download": "Descarrega",
|
||||||
"control_bottom_app_bar_edit": "Edita",
|
"control_bottom_app_bar_edit": "Edita",
|
||||||
"control_bottom_app_bar_edit_location": "Edita la ubicació",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edita data i hora",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Preferit",
|
"control_bottom_app_bar_favorite": "Preferit",
|
||||||
"control_bottom_app_bar_share": "Comparteix",
|
"control_bottom_app_bar_share": "Share",
|
||||||
"control_bottom_app_bar_share_link": "Comparteix l'enllaç",
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
"control_bottom_app_bar_share_to": "Comparteix a",
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_stack": "Apilar",
|
|
||||||
"control_bottom_app_bar_trash_from_immich": "Mou a paperera",
|
"control_bottom_app_bar_trash_from_immich": "Mou a paperera",
|
||||||
"control_bottom_app_bar_unarchive": "Desarxiva",
|
"control_bottom_app_bar_unarchive": "Desarxiva",
|
||||||
"control_bottom_app_bar_unfavorite": "No preferit",
|
"control_bottom_app_bar_unfavorite": "Unfavorite",
|
||||||
"control_bottom_app_bar_upload": "Puja",
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album": "Crear àlbum",
|
"create_album": "Crear àlbum",
|
||||||
"create_album_page_untitled": "Sense títol",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_new": "CREAR NOU",
|
"create_new": "CREAR NOU",
|
||||||
"create_shared_album_page_create": "Crea",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Comparteix",
|
"create_shared_album_page_share": "Comparteix",
|
||||||
"create_shared_album_page_share_add_assets": "AFEGEIX ELEMENTS",
|
"create_shared_album_page_share_add_assets": "AFEGEIX ELEMENTS",
|
||||||
"create_shared_album_page_share_select_photos": "Escull fotografies",
|
"create_shared_album_page_share_select_photos": "Escull fotografies",
|
||||||
"crop": "Retalla",
|
"crop": "Retalla",
|
||||||
"curated_location_page_title": "Localitzacions",
|
"curated_location_page_title": "Localitzacions",
|
||||||
"curated_object_page_title": "Coses",
|
"curated_object_page_title": "Coses",
|
||||||
"current_server_address": "Adreça actual del servidor",
|
"current_server_address": "Current server address",
|
||||||
"daily_title_text_date": "E, dd MMM",
|
"daily_title_text_date": "E, MMM dd",
|
||||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||||
"date_format": "E, d LLL, y • hh:mm",
|
"date_format": "E, LLL d, y • h:mm a",
|
||||||
"delete_dialog_alert": "Aquests elements seran eliminats de manera permanent d'Immich i del vostre dispositiu.",
|
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
|
||||||
"delete_dialog_alert_local": "Aquests elements s'eliminaran permanentment del vostre dispositiu, però encara estaran disponibles al servidor Immich",
|
"delete_dialog_alert_local": "Aquests elements s'eliminaran permanentment del vostre dispositiu, però encara estaran disponibles al servidor Immich",
|
||||||
"delete_dialog_alert_local_non_backed_up": "Alguns dels elements no tenen còpia de seguretat a Immich i s'eliminaran permanentment del dispositiu",
|
"delete_dialog_alert_local_non_backed_up": "Alguns dels elements no tenen còpia de seguretat a Immich i s'eliminaran permanentment del dispositiu",
|
||||||
"delete_dialog_alert_remote": "Aquests elements s'eliminaran permanentment del servidor Immich",
|
"delete_dialog_alert_remote": "Aquests elements s'eliminaran permanentment del servidor Immich",
|
||||||
@@ -228,11 +227,11 @@
|
|||||||
"delete_dialog_title": "Esborra permanentment",
|
"delete_dialog_title": "Esborra permanentment",
|
||||||
"delete_local_dialog_ok_backed_up_only": "Esborrar només les que tinguin còpia de seguretat",
|
"delete_local_dialog_ok_backed_up_only": "Esborrar només les que tinguin còpia de seguretat",
|
||||||
"delete_local_dialog_ok_force": "Suprimeix de totes maneres",
|
"delete_local_dialog_ok_force": "Suprimeix de totes maneres",
|
||||||
"delete_shared_link_dialog_content": "Esteu segurs que voleu eliminar aquest enllaç compartit?",
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
"delete_shared_link_dialog_title": "Suprimeix l'enllaç compartit",
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Afegeix descripció...",
|
"description_input_hint_text": "Afegeix descripció...",
|
||||||
"description_input_submit_error": "S'ha produït un error en actualitzar la descripció, comproveu el registre per a més detalls",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"description_search": "Jornada de senderisme al Pedraforca",
|
"description_search": "Jornada de senderisme a Sapa",
|
||||||
"download_canceled": "Descàrrega cancel·lada",
|
"download_canceled": "Descàrrega cancel·lada",
|
||||||
"download_complete": "Descàrrega completada",
|
"download_complete": "Descàrrega completada",
|
||||||
"download_enqueue": "Descàrrega en cua",
|
"download_enqueue": "Descàrrega en cua",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Zona horària",
|
"edit_date_time_dialog_timezone": "Zona horària",
|
||||||
"edit_image_title": "Editar",
|
"edit_image_title": "Editar",
|
||||||
"edit_location_dialog_title": "Ubicació",
|
"edit_location_dialog_title": "Ubicació",
|
||||||
"empty_folder": "Aquesta carpeta és buida",
|
|
||||||
"end_date": "Data final",
|
"end_date": "Data final",
|
||||||
"enqueued": "En cua",
|
"enqueued": "En cua",
|
||||||
"enter_wifi_name": "Introdueix el nom de WiFi",
|
"enter_wifi_name": "Introdueix el nom de WiFi",
|
||||||
@@ -262,32 +260,23 @@
|
|||||||
"exif_bottom_sheet_description": "Afegeix descripció",
|
"exif_bottom_sheet_description": "Afegeix descripció",
|
||||||
"exif_bottom_sheet_details": "DETALLS",
|
"exif_bottom_sheet_details": "DETALLS",
|
||||||
"exif_bottom_sheet_location": "UBICACIÓ",
|
"exif_bottom_sheet_location": "UBICACIÓ",
|
||||||
"exif_bottom_sheet_location_add": "Afegeix una ubicació",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PERSONES",
|
"exif_bottom_sheet_people": "PERSONES",
|
||||||
"exif_bottom_sheet_person_add_person": "Afegir nom",
|
"exif_bottom_sheet_person_add_person": "Afegir nom",
|
||||||
"exif_bottom_sheet_person_age": "Edat {}",
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
"exif_bottom_sheet_person_age_months": "Edat {} mesos",
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
"exif_bottom_sheet_person_age_year_months": "Edat 1 any, {} mesos",
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
"exif_bottom_sheet_person_age_years": "Edat {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Treball en curs",
|
|
||||||
"experimental_settings_new_asset_list_title": "Habilita la graella de fotos experimental",
|
|
||||||
"experimental_settings_subtitle": "Utilitzeu-ho sota la vostra responsabilitat!",
|
|
||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"external_network": "Xarxa externa",
|
"external_network": "Xarxa externa",
|
||||||
"external_network_sheet_info": "Quan no estigui a la xarxa WiFi preferida, l'aplicació es connectarà al servidor mitjançant el primer dels URL següents a què pot arribar, començant de dalt a baix.",
|
"external_network_sheet_info": "Quan no estigui a la xarxa WiFi preferida, l'aplicació es connectarà al servidor mitjançant el primer dels URL següents a què pot arribar, començant de dalt a baix.",
|
||||||
"failed": "Fallat",
|
"failed": "Fallat",
|
||||||
"failed_to_load_assets": "No s'han pogut carregar els elements",
|
"favorites": "Favorits",
|
||||||
"failed_to_load_folder": "No s'ha pogut carregar la carpeta",
|
|
||||||
"favorites": "Preferits",
|
|
||||||
"favorites_page_no_favorites": "No s'han trobat preferits",
|
"favorites_page_no_favorites": "No s'han trobat preferits",
|
||||||
"favorites_page_title": "Preferits",
|
"favorites_page_title": "Favorites",
|
||||||
"filename_search": "Nom o extensió del fitxer",
|
"filename_search": "Nom o extensió del fitxer",
|
||||||
"filter": "Filtrar",
|
"filter": "Filtrar",
|
||||||
"folder": "Carpeta",
|
|
||||||
"folder_not_found": "Carpeta no trobada",
|
|
||||||
"folders": "Carpetes",
|
|
||||||
"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",
|
"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",
|
||||||
"grant_permission": "Concedir permís",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Activa la resposta hàptica",
|
"haptic_feedback_switch": "Activa la resposta hàptica",
|
||||||
"haptic_feedback_title": "Resposta Hàptica",
|
"haptic_feedback_title": "Resposta Hàptica",
|
||||||
"header_settings_add_header_tip": "Afegeix Capçalera",
|
"header_settings_add_header_tip": "Afegeix Capçalera",
|
||||||
@@ -296,43 +285,43 @@
|
|||||||
"header_settings_header_value_input": "Valor de la capçalera",
|
"header_settings_header_value_input": "Valor de la capçalera",
|
||||||
"header_settings_page_title": "Capçaleres de proxy",
|
"header_settings_page_title": "Capçaleres de proxy",
|
||||||
"headers_settings_tile_subtitle": "Definiu les capçaleres de proxy que l'aplicació hauria d'enviar amb cada sol·licitud de xarxa",
|
"headers_settings_tile_subtitle": "Definiu les capçaleres de proxy que l'aplicació hauria d'enviar amb cada sol·licitud de xarxa",
|
||||||
"headers_settings_tile_title": "Capçaleres proxy personalitzades",
|
"headers_settings_tile_title": "Custom proxy headers",
|
||||||
"home_page_add_to_album_conflicts": "S'han afegit {added} elements a l'àlbum {album}. {failed} elements ja existeixen a l'àlbum.",
|
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
||||||
"home_page_add_to_album_err_local": "Encara no es poden afegir elements locals als àlbums, ometent",
|
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
||||||
"home_page_add_to_album_success": "S'han afegit {added} elements a l'àlbum {album}.",
|
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
||||||
"home_page_album_err_partner": "Encara no es poden afegir elements dels companys als àlbums, ometent",
|
"home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
|
||||||
"home_page_archive_err_local": "Encara no es poden arxivar elements locals, ometent",
|
"home_page_archive_err_local": "Can not archive local assets yet, skipping",
|
||||||
"home_page_archive_err_partner": "No es poden arxivar els elements de companys, ometent",
|
"home_page_archive_err_partner": "Can not archive partner assets, skipping",
|
||||||
"home_page_building_timeline": "Construint la línia de temps",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_delete_err_partner": "No es poden suprimir els elements de companys, ometent",
|
"home_page_delete_err_partner": "Can not delete partner assets, skipping",
|
||||||
"home_page_delete_remote_err_local": "Elements locals a la selecció d'eliminació remota, ometent",
|
"home_page_delete_remote_err_local": "Elements locals a la selecció d'eliminació remota, ometent",
|
||||||
"home_page_favorite_err_local": "Encara no es pot afegir a preferits elements locals, ometent",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"home_page_favorite_err_partner": "Encara no es pot afegir a preferits elements de companys, ometent",
|
"home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
|
||||||
"home_page_first_time_notice": "Si és la primera vegada que utilitzes l'app, si us plau, assegura't d'escollir un àlbum de còpia de seguretat perquè la línia de temps pugui carregar fotos i vídeos als àlbums.",
|
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
|
||||||
"home_page_share_err_local": "No es poden compartir els elements locals a través d'un enllaç, ometent",
|
"home_page_share_err_local": "Can not share local assets via link, skipping",
|
||||||
"home_page_upload_err_limit": "Només es poden pujar un màxim de 30 elements alhora, ometent",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"ignore_icloud_photos": "Ignora fotos d'iCloud",
|
"ignore_icloud_photos": "Ignora fotos d'iCloud",
|
||||||
"ignore_icloud_photos_description": "Les fotos emmagatzemades a iCloud no es penjaran al servidor Immich",
|
"ignore_icloud_photos_description": "Les fotos emmagatzemades a iCloud no es penjaran al servidor Immich",
|
||||||
"image_saved_successfully": "Imatge desada",
|
"image_saved_successfully": "Imatge desada",
|
||||||
"image_viewer_page_state_provider_download_error": "Error de baixada",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_started": "Baixada començada",
|
"image_viewer_page_state_provider_download_started": "Descàrrega començada",
|
||||||
"image_viewer_page_state_provider_download_success": "Baixada amb èxit",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Error en compartir",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"invalid_date": "Data invàlida",
|
"invalid_date": "Data invàlida",
|
||||||
"invalid_date_format": "Format de data invàlid",
|
"invalid_date_format": "Format de data invàlid",
|
||||||
"library": "Llibreria",
|
"library": "Llibreria",
|
||||||
"library_page_albums": "Àlbums",
|
"library_page_albums": "Àlbums",
|
||||||
"library_page_archive": "Arxiu",
|
"library_page_archive": "Arxiu",
|
||||||
"library_page_device_albums": "Àlbums al Dispositiu",
|
"library_page_device_albums": "Àlbums al Dispositiu",
|
||||||
"library_page_favorites": "Preferits",
|
"library_page_favorites": "Favorites",
|
||||||
"library_page_new_album": "Nou àlbum",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Compartint",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_asset_count": "Nombre d'elements",
|
"library_page_sort_asset_count": "Number of assets",
|
||||||
"library_page_sort_created": "Creat més recentment",
|
"library_page_sort_created": "Created date",
|
||||||
"library_page_sort_last_modified": "Darrera modificació",
|
"library_page_sort_last_modified": "Last modified",
|
||||||
"library_page_sort_most_oldest_photo": "Foto més antiga",
|
"library_page_sort_most_oldest_photo": "Oldest photo",
|
||||||
"library_page_sort_most_recent_photo": "Foto més recent",
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Títol de l'àlbum",
|
"library_page_sort_title": "Album title",
|
||||||
"local_network": "Xarxa local",
|
"local_network": "Xarxa local",
|
||||||
"local_network_sheet_info": "L'aplicació es connectarà al servidor mitjançant aquest URL quan utilitzeu la xarxa Wi-Fi especificada",
|
"local_network_sheet_info": "L'aplicació es connectarà al servidor mitjançant aquest URL quan utilitzeu la xarxa Wi-Fi especificada",
|
||||||
"location_permission": "Permís d'ubicació",
|
"location_permission": "Permís d'ubicació",
|
||||||
@@ -340,61 +329,61 @@
|
|||||||
"location_picker_choose_on_map": "Escollir en el mapa",
|
"location_picker_choose_on_map": "Escollir en el mapa",
|
||||||
"location_picker_latitude": "Latitud",
|
"location_picker_latitude": "Latitud",
|
||||||
"location_picker_latitude_error": "Introdueix una latitud vàlida",
|
"location_picker_latitude_error": "Introdueix una latitud vàlida",
|
||||||
"location_picker_latitude_hint": "Introdueix aquí la latitud",
|
"location_picker_latitude_hint": "Enter your latitude here",
|
||||||
"location_picker_longitude": "Longitud",
|
"location_picker_longitude": "Longitud",
|
||||||
"location_picker_longitude_error": "Introdueix una longitud vàlida",
|
"location_picker_longitude_error": "Introdueix una longitud vàlida",
|
||||||
"location_picker_longitude_hint": "Introdueix aquí la longitud",
|
"location_picker_longitude_hint": "Introdueix aquí la longitud",
|
||||||
"login_disabled": "S'ha desactivat l'inici de sessió",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "Excepció de l'API. Comproveu l'URL del servidor i torneu-ho a provar.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_back_button_text": "Enrere",
|
"login_form_back_button_text": "Back",
|
||||||
"login_form_button_text": "Entra",
|
"login_form_button_text": "Entra",
|
||||||
"login_form_email_hint": "elteu@correu.cat",
|
"login_form_email_hint": "elteu@correu.cat",
|
||||||
"login_form_endpoint_hint": "http://ip-del-servidor:port",
|
"login_form_endpoint_hint": "http://ip-del-servidor:port",
|
||||||
"login_form_endpoint_url": "URL del servidor",
|
"login_form_endpoint_url": "URL del servidor",
|
||||||
"login_form_err_http": "Especifica http:// o https://",
|
"login_form_err_http": "Especifica http:// o https://",
|
||||||
"login_form_err_invalid_email": "Adreça de correu electrònic no vàlida",
|
"login_form_err_invalid_email": "Adreça de correu electrònic no vàlida",
|
||||||
"login_form_err_invalid_url": "URL no vàlid",
|
"login_form_err_invalid_url": "Invalid URL",
|
||||||
"login_form_err_leading_whitespace": "Espai en blanc al principi",
|
"login_form_err_leading_whitespace": "Espai en blanc al principi",
|
||||||
"login_form_err_trailing_whitespace": "Espai en blanc al final",
|
"login_form_err_trailing_whitespace": "Espai en blanc al final",
|
||||||
"login_form_failed_get_oauth_server_config": "Error en iniciar sessió amb OAuth, comprova l'URL del servidor",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "La funcionalitat OAuth no està disponible en aquest servidor",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error en iniciar sessió, comprova l'URL del servidor, el correu electrònic i la contrasenya.",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
"login_form_handshake_exception": "S'ha produït una excepció de handshake amb el servidor. Activa el suport per certificats autofirmats a la configuració si estàs fent servir un certificat autofirmat.",
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Correu electrònic",
|
"login_form_label_email": "Correu electrònic",
|
||||||
"login_form_label_password": "Contrasenya",
|
"login_form_label_password": "Contrasenya",
|
||||||
"login_form_next_button": "Següent",
|
"login_form_next_button": "Següent",
|
||||||
"login_form_password_hint": "contrasenya",
|
"login_form_password_hint": "contrasenya",
|
||||||
"login_form_save_login": "Mantingues identificat",
|
"login_form_save_login": "Mantingues identificat",
|
||||||
"login_form_server_empty": "Introdueix l'URL del servidor.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "No s'ha pogut connectar al servidor.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
"login_password_changed_error": "S'ha produït un error en actualitzar la contrasenya",
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
"login_password_changed_success": "La contrasenya s'ha canviat correctament",
|
"login_password_changed_success": "Password updated successfully",
|
||||||
"map_assets_in_bound": "{} foto",
|
"map_assets_in_bound": "{} foto",
|
||||||
"map_assets_in_bounds": "{} fotos",
|
"map_assets_in_bounds": "{} fotos",
|
||||||
"map_cannot_get_user_location": "No es pot obtenir la ubicació de l'usuari",
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
"map_location_dialog_cancel": "Cancel·la",
|
"map_location_dialog_cancel": "Cancel",
|
||||||
"map_location_dialog_yes": "Sí",
|
"map_location_dialog_yes": "Yes",
|
||||||
"map_location_picker_page_use_location": "Utilitzar aquesta ubicació",
|
"map_location_picker_page_use_location": "Utilitzar aquesta ubicació",
|
||||||
"map_location_service_disabled_content": "El servei de localització s'ha d'activar per mostrar els elements de la teva ubicació actual. Vols activar-lo ara?",
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
"map_location_service_disabled_title": "Servei de localització desactivat",
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
"map_no_assets_in_bounds": "No hi ha fotos en aquesta zona",
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
"map_no_location_permission_content": "Es necessita el permís de localització per mostrar els elements de la teva ubicació actual. Vols permetre-ho ara?",
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
"map_no_location_permission_title": "Permís de localització denegat",
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
"map_settings_dark_mode": "Mode fosc",
|
"map_settings_dark_mode": "Dark mode",
|
||||||
"map_settings_date_range_option_all": "Tot",
|
"map_settings_date_range_option_all": "All",
|
||||||
"map_settings_date_range_option_day": "Últimes 24 hores",
|
"map_settings_date_range_option_day": "Últimes 24 hores",
|
||||||
"map_settings_date_range_option_days": "Darrers {} dies",
|
"map_settings_date_range_option_days": "Darrers {} dies",
|
||||||
"map_settings_date_range_option_year": "Any passat",
|
"map_settings_date_range_option_year": "Any passat",
|
||||||
"map_settings_date_range_option_years": "Darrers {} anys",
|
"map_settings_date_range_option_years": "Darrers {} anys",
|
||||||
"map_settings_dialog_cancel": "Cancel·la",
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
"map_settings_dialog_save": "Desa",
|
"map_settings_dialog_save": "Save",
|
||||||
"map_settings_dialog_title": "Configuració del mapa",
|
"map_settings_dialog_title": "Map Settings",
|
||||||
"map_settings_include_show_archived": "Incloure arxivats",
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
"map_settings_include_show_partners": "Incloure companys",
|
"map_settings_include_show_partners": "Incloure companys",
|
||||||
"map_settings_only_relative_range": "Rang de dates",
|
"map_settings_only_relative_range": "Date range",
|
||||||
"map_settings_only_show_favorites": "Mostra només preferits",
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
"map_settings_theme_settings": "Tema del Mapa",
|
"map_settings_theme_settings": "Tema del Mapa",
|
||||||
"map_zoom_to_see_photos": "Allunya per veure fotos",
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"memories_all_caught_up": "Posat al dia",
|
"memories_all_caught_up": "Posat al dia",
|
||||||
"memories_check_back_tomorrow": "Torna demà per veure més records",
|
"memories_check_back_tomorrow": "Torna demà per veure més records",
|
||||||
"memories_start_over": "Torna a començar",
|
"memories_start_over": "Torna a començar",
|
||||||
@@ -402,7 +391,7 @@
|
|||||||
"memories_year_ago": "Fa un any",
|
"memories_year_ago": "Fa un any",
|
||||||
"memories_years_ago": "Fa {} anys",
|
"memories_years_ago": "Fa {} anys",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Fotos en moviment",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"multiselect_grid_edit_date_time_err_read_only": "No es pot canviar la data del fitxer(s) de només lectura, ometent",
|
"multiselect_grid_edit_date_time_err_read_only": "No es pot canviar la data del fitxer(s) de només lectura, ometent",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "No es pot canviar la localització de fitxers de només lectura. Saltant.",
|
"multiselect_grid_edit_gps_err_read_only": "No es pot canviar la localització de fitxers de només lectura. Saltant.",
|
||||||
"my_albums": "Els meus àlbums",
|
"my_albums": "Els meus àlbums",
|
||||||
@@ -411,58 +400,58 @@
|
|||||||
"no_assets_to_show": "No hi ha elements per mostrar",
|
"no_assets_to_show": "No hi ha elements per mostrar",
|
||||||
"no_name": "Sense nom",
|
"no_name": "Sense nom",
|
||||||
"notification_permission_dialog_cancel": "Cancel·la",
|
"notification_permission_dialog_cancel": "Cancel·la",
|
||||||
"notification_permission_dialog_content": "Per activar les notificacions, aneu a Configuració i seleccioneu permet.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Configuració",
|
"notification_permission_dialog_settings": "Configuració",
|
||||||
"notification_permission_list_tile_content": "Atorga permís per a activar les notificacions.",
|
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
||||||
"notification_permission_list_tile_enable_button": "Activa les notificacions",
|
"notification_permission_list_tile_enable_button": "Activa les notificacions",
|
||||||
"notification_permission_list_tile_title": "Permís de notificacions",
|
"notification_permission_list_tile_title": "Notification Permission",
|
||||||
"not_selected": "No seleccionat",
|
"not_selected": "No seleccionat",
|
||||||
"on_this_device": "En aquest dispositiu",
|
"on_this_device": "En aquest dispositiu",
|
||||||
"partner_list_user_photos": "fotos de {user}",
|
"partner_list_user_photos": "fotos de {user}",
|
||||||
"partner_list_view_all": "Veure tot",
|
"partner_list_view_all": "Veure tot",
|
||||||
"partner_page_add_partner": "Afegeix company",
|
"partner_page_add_partner": "Afegeix company",
|
||||||
"partner_page_empty_message": "Les teves fotos encara no estan compartides amb cap company.",
|
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
||||||
"partner_page_no_more_users": "No hi ha més usuaris a afegir",
|
"partner_page_no_more_users": "No more users to add",
|
||||||
"partner_page_partner_add_failed": "No s'ha pogut afegir el company",
|
"partner_page_partner_add_failed": "Failed to add partner",
|
||||||
"partner_page_select_partner": "Escull company",
|
"partner_page_select_partner": "Escull company",
|
||||||
"partner_page_shared_to_title": "Compartit amb",
|
"partner_page_shared_to_title": "Compartit amb",
|
||||||
"partner_page_stop_sharing_content": "{} ja no podrà accedir a les teves fotos.",
|
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
||||||
"partner_page_stop_sharing_title": "Vols deixar de compartir les teves fotos?",
|
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
||||||
"partner_page_title": "Company",
|
"partner_page_title": "Company",
|
||||||
"partners": "Companys",
|
"partners": "Companys",
|
||||||
"paused": "Pausat",
|
"paused": "Pausat",
|
||||||
"people": "Persones",
|
"people": "Persones",
|
||||||
"permission_onboarding_back": "Torna",
|
"permission_onboarding_back": "Back",
|
||||||
"permission_onboarding_continue_anyway": "Continua de totes maneres",
|
"permission_onboarding_continue_anyway": "Continue anyway",
|
||||||
"permission_onboarding_get_started": "Comença",
|
"permission_onboarding_get_started": "Get started",
|
||||||
"permission_onboarding_go_to_settings": "Ves a la configuració",
|
"permission_onboarding_go_to_settings": "Go to settings",
|
||||||
"permission_onboarding_grant_permission": "Dona permisos",
|
"permission_onboarding_grant_permission": "Dona permisos",
|
||||||
"permission_onboarding_log_out": "Tanca la sessió",
|
"permission_onboarding_log_out": "Log out",
|
||||||
"permission_onboarding_permission_denied": "S'ha denegat el permís. Per utilitzar Immich, concediu permisos de fotos i vídeos a Configuració.",
|
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
||||||
"permission_onboarding_permission_granted": "Permís concedit! Tot a punt.",
|
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
||||||
"permission_onboarding_permission_limited": "Permís limitat. Per a permetre que Immich faci còpies de seguretat i gestioni tota la col·lecció de la galeria, concediu permisos de fotos i vídeos a Configuració.",
|
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
||||||
"permission_onboarding_request": "Immich requereix permís per veure les vostres fotos i vídeos.",
|
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
||||||
"places": "Llocs",
|
"places": "Llocs",
|
||||||
"preferences_settings_subtitle": "Gestiona les preferències de l'aplicació",
|
"preferences_settings_subtitle": "Gestiona les preferències de l'aplicació",
|
||||||
"preferences_settings_title": "Preferències",
|
"preferences_settings_title": "Preferències",
|
||||||
"profile_drawer_app_logs": "Registres",
|
"profile_drawer_app_logs": "Logs",
|
||||||
"profile_drawer_client_out_of_date_major": "L'aplicació mòbil està desactualitzada. Si us plau, actualitzeu a l'última versió major.",
|
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
|
||||||
"profile_drawer_client_out_of_date_minor": "L'aplicació mòbil està desactualitzada. Si us plau, actualitzeu a l'última versió menor.",
|
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
|
||||||
"profile_drawer_client_server_up_to_date": "El Client i el Servidor estan actualitzats",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_documentation": "Documentació",
|
"profile_drawer_documentation": "Documentation",
|
||||||
"profile_drawer_github": "GitHub",
|
"profile_drawer_github": "GitHub",
|
||||||
"profile_drawer_server_out_of_date_major": "L'aplicació mòbil està desactualitzada. Si us plau, actualitzeu a l'última versió major.",
|
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.",
|
||||||
"profile_drawer_server_out_of_date_minor": "L'aplicació mòbil està desactualitzada. Si us plau, actualitzeu a l'última versió menor.",
|
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.",
|
||||||
"profile_drawer_settings": "Configuració",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Tanca la sessió",
|
"profile_drawer_sign_out": "Tanca la sessió",
|
||||||
"profile_drawer_trash": "Paperera",
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added": "Afegit recentment",
|
"recently_added": "Afegit recentment",
|
||||||
"recently_added_page_title": "Afegit recentment",
|
"recently_added_page_title": "Recently Added",
|
||||||
"save": "Desa",
|
"save": "Desa",
|
||||||
"save_to_gallery": "Desa a galeria",
|
"save_to_gallery": "Desa a galeria",
|
||||||
"scaffold_body_error_occurred": "S'ha produït un error",
|
"scaffold_body_error_occurred": "S'ha produït un error",
|
||||||
"search_albums": "Cerca àlbums",
|
"search_albums": "Cerca àlbums",
|
||||||
"search_bar_hint": "Cerca les teves fotos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_filter_apply": "Aplicar filtre",
|
"search_filter_apply": "Aplicar filtre",
|
||||||
"search_filter_camera": "Càmera",
|
"search_filter_camera": "Càmera",
|
||||||
"search_filter_camera_make": "Marca",
|
"search_filter_camera_make": "Marca",
|
||||||
@@ -474,7 +463,7 @@
|
|||||||
"search_filter_date_title": "Selecciona un rang de dates",
|
"search_filter_date_title": "Selecciona un rang de dates",
|
||||||
"search_filter_description": "Cerca per descripció",
|
"search_filter_description": "Cerca per descripció",
|
||||||
"search_filter_display_option_archive": "Arxivat",
|
"search_filter_display_option_archive": "Arxivat",
|
||||||
"search_filter_display_option_favorite": "Preferit",
|
"search_filter_display_option_favorite": "Favorit",
|
||||||
"search_filter_display_option_not_in_album": "No en àlbum",
|
"search_filter_display_option_not_in_album": "No en àlbum",
|
||||||
"search_filter_display_options": "Opcions de Visualització",
|
"search_filter_display_options": "Opcions de Visualització",
|
||||||
"search_filter_display_options_title": "Opcions de visualització",
|
"search_filter_display_options_title": "Opcions de visualització",
|
||||||
@@ -497,60 +486,60 @@
|
|||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Preferides",
|
"search_page_favorites": "Preferides",
|
||||||
"search_page_motion_photos": "Fotografies animades",
|
"search_page_motion_photos": "Fotografies animades",
|
||||||
"search_page_no_objects": "No hi ha informació d'objectes disponibles",
|
"search_page_no_objects": "No Objects Info Available",
|
||||||
"search_page_no_places": "No hi ha informació de llocs disponibles",
|
"search_page_no_places": "No Places Info Available",
|
||||||
"search_page_people": "Persones",
|
"search_page_people": "Persones",
|
||||||
"search_page_person_add_name_dialog_cancel": "Cancel·la",
|
"search_page_person_add_name_dialog_cancel": "Cancel",
|
||||||
"search_page_person_add_name_dialog_hint": "Nom",
|
"search_page_person_add_name_dialog_hint": "Name",
|
||||||
"search_page_person_add_name_dialog_save": "Desa",
|
"search_page_person_add_name_dialog_save": "Save",
|
||||||
"search_page_person_add_name_dialog_title": "Afegeix un nom",
|
"search_page_person_add_name_dialog_title": "Add a name",
|
||||||
"search_page_person_add_name_subtitle": "Troba'ls ràpid buscant per nom",
|
"search_page_person_add_name_subtitle": "Find them fast by name with search",
|
||||||
"search_page_person_add_name_title": "Afegeix un nom",
|
"search_page_person_add_name_title": "Add a name",
|
||||||
"search_page_person_edit_name": "Edita el nom",
|
"search_page_person_edit_name": "Edit name",
|
||||||
"search_page_places": "Llocs",
|
"search_page_places": "Llocs",
|
||||||
"search_page_recently_added": "Afegit recentment",
|
"search_page_recently_added": "Afegit recentment",
|
||||||
"search_page_screenshots": "Captures de pantalla",
|
"search_page_screenshots": "Captures de pantalla",
|
||||||
"search_page_search_photos_videos": "Cerca les teves fotos i vídeos",
|
"search_page_search_photos_videos": "Cerca les teves fotos i vídeos",
|
||||||
"search_page_selfies": "Autofotos",
|
"search_page_selfies": "Autofotos",
|
||||||
"search_page_things": "Coses",
|
"search_page_things": "Coses",
|
||||||
"search_page_videos": "Vídeos",
|
"search_page_videos": "Videos",
|
||||||
"search_page_view_all_button": "Veure tot",
|
"search_page_view_all_button": "Veure tot",
|
||||||
"search_page_your_activity": "La teva activitat",
|
"search_page_your_activity": "Your activity",
|
||||||
"search_page_your_map": "El teu mapa",
|
"search_page_your_map": "Your Map",
|
||||||
"search_result_page_new_search_hint": "Cerca nova",
|
"search_result_page_new_search_hint": "Cerca nova",
|
||||||
"search_suggestion_list_smart_search_hint_1": "La cerca intel·ligent està habilitada per defecte, per a cercar metadades utilitzeu la sintaxi ",
|
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:el-teu-terme-de-cerca",
|
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Suggeriments",
|
"select_additional_user_for_sharing_page_suggestions": "Suggeriments",
|
||||||
"select_user_for_sharing_page_err_album": "Error al crear l'àlbum",
|
"select_user_for_sharing_page_err_album": "Error al crear l'àlbum",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Suggeriments",
|
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
||||||
"server_endpoint": "Endpoint de Servidor",
|
"server_endpoint": "Endpoint de Servidor",
|
||||||
"server_info_box_app_version": "Versió de l'aplicació",
|
"server_info_box_app_version": "Versió de l'aplicació",
|
||||||
"server_info_box_latest_release": "Última versió",
|
"server_info_box_latest_release": "Latest Version",
|
||||||
"server_info_box_server_url": "URL del servidor",
|
"server_info_box_server_url": "Server URL",
|
||||||
"server_info_box_server_version": "Versió del servidor",
|
"server_info_box_server_version": "Versió del servidor",
|
||||||
"setting_image_viewer_help": "El visor de detalls carrega primer la miniatura petita, després carrega la vista prèvia de mida mitjana (si està habilitada), finalment carrega l'original (si està habilitada).",
|
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
||||||
"setting_image_viewer_original_subtitle": "Activa per carregar la imatge en resolució original (molt gran!). Desactiva per reduir el consum de dades (tant de xarxa com de memòria cau).",
|
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
||||||
"setting_image_viewer_original_title": "Carrega la imatge original",
|
"setting_image_viewer_original_title": "Load original image",
|
||||||
"setting_image_viewer_preview_subtitle": "Activa per carregar una imatge de resolució mitjana. Desactiva per carregar directament la imatge original, o bé utilitzar només la miniatura.",
|
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.",
|
||||||
"setting_image_viewer_preview_title": "Carrega la imatge de vista prèvia",
|
"setting_image_viewer_preview_title": "Load preview image",
|
||||||
"setting_image_viewer_title": "Imatges",
|
"setting_image_viewer_title": "Imatges",
|
||||||
"setting_languages_apply": "Aplicar",
|
"setting_languages_apply": "Aplicar",
|
||||||
"setting_languages_subtitle": "Canvia el llenguatge de l'aplicació",
|
"setting_languages_subtitle": "Canvia el llenguatge de l'aplicació",
|
||||||
"setting_languages_title": "Idiomes",
|
"setting_languages_title": "Idiomes",
|
||||||
"setting_notifications_notify_failures_grace_period": "Notifica les fallades de la còpia de seguretat en segon pla: {}",
|
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
||||||
"setting_notifications_notify_hours": "{} hores",
|
"setting_notifications_notify_hours": "{} hours",
|
||||||
"setting_notifications_notify_immediately": "immediatament",
|
"setting_notifications_notify_immediately": "immediately",
|
||||||
"setting_notifications_notify_minutes": "{} minuts",
|
"setting_notifications_notify_minutes": "{} minutes",
|
||||||
"setting_notifications_notify_never": "mai",
|
"setting_notifications_notify_never": "never",
|
||||||
"setting_notifications_notify_seconds": "{} segons",
|
"setting_notifications_notify_seconds": "{} seconds",
|
||||||
"setting_notifications_single_progress_subtitle": "Informació detallada del progrés de la pujada de cada fitxer",
|
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
||||||
"setting_notifications_single_progress_title": "Mostra el progrés detallat de la còpia de seguretat en segon pla",
|
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
||||||
"setting_notifications_subtitle": "Ajusta les preferències de notificació",
|
"setting_notifications_subtitle": "Adjust your notification preferences",
|
||||||
"setting_notifications_title": "Notificacions",
|
"setting_notifications_title": "Notifications",
|
||||||
"setting_notifications_total_progress_subtitle": "Progrés general de la pujada (elements completats/total)",
|
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
||||||
"setting_notifications_total_progress_title": "Mostra el progrés total de la còpia de seguretat en segon pla",
|
"setting_notifications_total_progress_title": "Show background backup total progress",
|
||||||
"setting_pages_app_bar_settings": "Configuració",
|
"setting_pages_app_bar_settings": "Settings",
|
||||||
"settings_require_restart": "Si us plau, reinicieu Immich per a aplicar aquest canvi",
|
"settings_require_restart": "Please restart Immich to apply this setting",
|
||||||
"setting_video_viewer_looping_subtitle": "Habilita per reproduir automàticament un vídeo al visualitzador de detalls.",
|
"setting_video_viewer_looping_subtitle": "Habilita per reproduir automàticament un vídeo al visualitzador de detalls.",
|
||||||
"setting_video_viewer_looping_title": "Bucle",
|
"setting_video_viewer_looping_title": "Bucle",
|
||||||
"setting_video_viewer_original_video_subtitle": "Quan reproduïu un vídeo des del servidor, reproduïu l'original encara que hi hagi una transcodificació disponible. Pot conduir a l'amortització. Els vídeos disponibles localment es reprodueixen en qualitat original independentment d'aquesta configuració.",
|
"setting_video_viewer_original_video_subtitle": "Quan reproduïu un vídeo des del servidor, reproduïu l'original encara que hi hagi una transcodificació disponible. Pot conduir a l'amortització. Els vídeos disponibles localment es reprodueixen en qualitat original independentment d'aquesta configuració.",
|
||||||
@@ -561,33 +550,33 @@
|
|||||||
"share_add_title": "Afegeix un títol",
|
"share_add_title": "Afegeix un títol",
|
||||||
"share_assets_selected": "{} seleccionats",
|
"share_assets_selected": "{} seleccionats",
|
||||||
"share_create_album": "Crea un àlbum",
|
"share_create_album": "Crea un àlbum",
|
||||||
"shared_album_activities_input_disable": "Els comentaris estan desactivats",
|
"shared_album_activities_input_disable": "Comment is disabled",
|
||||||
"shared_album_activities_input_hint": "Digues alguna cosa",
|
"shared_album_activities_input_hint": "Say something",
|
||||||
"shared_album_activity_remove_content": "Voleu eliminar aquesta activitat?",
|
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
||||||
"shared_album_activity_remove_title": "Elimina l'activitat",
|
"shared_album_activity_remove_title": "Delete Activity",
|
||||||
"shared_album_activity_setting_subtitle": "Permet que altres responguin",
|
"shared_album_activity_setting_subtitle": "Let others respond",
|
||||||
"shared_album_activity_setting_title": "Comentaris i m'agrada",
|
"shared_album_activity_setting_title": "Comments & likes",
|
||||||
"shared_album_section_people_action_error": "S'ha produït un error en retirar-se/eliminar l'àlbum",
|
"shared_album_section_people_action_error": "Error leaving/removing from album",
|
||||||
"shared_album_section_people_action_leave": "Elimina l'usuari de l'àlbum",
|
"shared_album_section_people_action_leave": "Remove user from album",
|
||||||
"shared_album_section_people_action_remove_user": "Elimina l'usuari de l'àlbum",
|
"shared_album_section_people_action_remove_user": "Remove user from album",
|
||||||
"shared_album_section_people_owner_label": "Amo",
|
"shared_album_section_people_owner_label": "Owner",
|
||||||
"shared_album_section_people_title": "PERSONES",
|
"shared_album_section_people_title": "PEOPLE",
|
||||||
"share_dialog_preparing": "S'està preparant...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
"shared_intent_upload_button_progress_text": "{} / {} Pujat",
|
"shared_intent_upload_button_progress_text": "{} / {} Pujat",
|
||||||
"shared_link_app_bar_title": "Enllaços compartits",
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
"shared_link_clipboard_copied_massage": "S'ha copiat al porta-retalls",
|
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||||
"shared_link_clipboard_text": "Enllaç: {}\nContrasenya: {}",
|
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
||||||
"shared_link_create_app_bar_title": "Crea un enllaç per compartir",
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
"shared_link_create_error": "S'ha produït un error en crear l'enllaç compartit",
|
"shared_link_create_error": "Error while creating shared link",
|
||||||
"shared_link_create_info": "Permet que qualsevol persona amb l'enllaç vegi les fotografies seleccionades",
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
"shared_link_create_submit_button": "Crea enllaç",
|
"shared_link_create_submit_button": "Create link",
|
||||||
"shared_link_edit_allow_download": "Permet que usuaris públics descarreguin",
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
"shared_link_edit_allow_upload": "Permet que usuaris públics publiquin",
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
"shared_link_edit_app_bar_title": "Edita l'enllaç",
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
"shared_link_edit_change_expiry": "Canvia la data de caducitat",
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
"shared_link_edit_description": "Descripció",
|
"shared_link_edit_description": "Description",
|
||||||
"shared_link_edit_description_hint": "Introduïu la descripció de compartició",
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
"shared_link_edit_expire_after": "Caduca després de",
|
"shared_link_edit_expire_after": "Expire after",
|
||||||
"shared_link_edit_expire_after_option_day": "1 dia",
|
"shared_link_edit_expire_after_option_day": "1 dia",
|
||||||
"shared_link_edit_expire_after_option_days": "{} dies",
|
"shared_link_edit_expire_after_option_days": "{} dies",
|
||||||
"shared_link_edit_expire_after_option_hour": "1 hora",
|
"shared_link_edit_expire_after_option_hour": "1 hora",
|
||||||
@@ -595,98 +584,98 @@
|
|||||||
"shared_link_edit_expire_after_option_minute": "1 minut",
|
"shared_link_edit_expire_after_option_minute": "1 minut",
|
||||||
"shared_link_edit_expire_after_option_minutes": "{} minuts",
|
"shared_link_edit_expire_after_option_minutes": "{} minuts",
|
||||||
"shared_link_edit_expire_after_option_months": "{} mesos",
|
"shared_link_edit_expire_after_option_months": "{} mesos",
|
||||||
"shared_link_edit_expire_after_option_never": "Mai",
|
"shared_link_edit_expire_after_option_never": "Never",
|
||||||
"shared_link_edit_expire_after_option_year": "any {}",
|
"shared_link_edit_expire_after_option_year": "any {}",
|
||||||
"shared_link_edit_password": "Contrasenya",
|
"shared_link_edit_password": "Password",
|
||||||
"shared_link_edit_password_hint": "Introduïu la contrasenya de compartició",
|
"shared_link_edit_password_hint": "Enter the share password",
|
||||||
"shared_link_edit_show_meta": "Mostra metadades",
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
"shared_link_edit_submit_button": "Actualitza l'enllaç",
|
"shared_link_edit_submit_button": "Update link",
|
||||||
"shared_link_empty": "No tens cap enllaç compartit",
|
"shared_link_empty": "You don't have any shared links",
|
||||||
"shared_link_error_server_url_fetch": "No s'ha pogut obtenir l'URL del servidor",
|
"shared_link_error_server_url_fetch": "Cannot fetch the server url",
|
||||||
"shared_link_expired": "Caducat",
|
"shared_link_expired": "Expired",
|
||||||
"shared_link_expires_day": "Caduca d'aquí a {} dia",
|
"shared_link_expires_day": "Caduca d'aquí a {} dia",
|
||||||
"shared_link_expires_days": "Caduca d'aquí a {} dies",
|
"shared_link_expires_days": "Caduca d'aquí a {} dies",
|
||||||
"shared_link_expires_hour": "Caduca d'aquí a {} hora",
|
"shared_link_expires_hour": "Caduca d'aquí a {} hora",
|
||||||
"shared_link_expires_hours": "Caduca d'aquí a {} hores",
|
"shared_link_expires_hours": "Caduca d'aquí a {} hores",
|
||||||
"shared_link_expires_minute": "Caduca d'aquí a {} minut",
|
"shared_link_expires_minute": "Caduca d'aquí a {} minut",
|
||||||
"shared_link_expires_minutes": "Caduca d'aquí a {} minuts",
|
"shared_link_expires_minutes": "Expires in {} minutes",
|
||||||
"shared_link_expires_never": "Caduca ∞",
|
"shared_link_expires_never": "Expires ∞",
|
||||||
"shared_link_expires_second": "Caduca d'aquí a {} segon",
|
"shared_link_expires_second": "Caduca d'aquí a {} segon",
|
||||||
"shared_link_expires_seconds": "Caduca d'aquí a {} segons",
|
"shared_link_expires_seconds": "Expires in {} seconds",
|
||||||
"shared_link_individual_shared": "Individual compartit",
|
"shared_link_individual_shared": "Individual compartit",
|
||||||
"shared_link_info_chip_download": "Baixa",
|
"shared_link_info_chip_download": "Download",
|
||||||
"shared_link_info_chip_metadata": "EXIF",
|
"shared_link_info_chip_metadata": "EXIF",
|
||||||
"shared_link_info_chip_upload": "Puja",
|
"shared_link_info_chip_upload": "Puja",
|
||||||
"shared_link_manage_links": "Gestiona els enllaços compartits",
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
"shared_link_public_album": "Àlbum públic",
|
"shared_link_public_album": "Àlbum públic",
|
||||||
"shared_links": "Enllaços compartits",
|
"shared_links": "Enllaços compartits",
|
||||||
"share_done": "Fet",
|
"share_done": "Done",
|
||||||
"shared_with_me": "Compartit amb mi",
|
"shared_with_me": "Compartit amb mi",
|
||||||
"share_invite": "Convida a l'àlbum",
|
"share_invite": "Convida a l'àlbum",
|
||||||
"sharing_page_album": "Àlbums compartits",
|
"sharing_page_album": "Shared albums",
|
||||||
"sharing_page_description": "Crea àlbums compartits per compartir fotos i vídeos amb persones de la teva xarxa.",
|
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
||||||
"sharing_page_empty_list": "LLISTA BUIDA",
|
"sharing_page_empty_list": "EMPTY LIST",
|
||||||
"sharing_silver_appbar_create_shared_album": "Crea àlbum compartit",
|
"sharing_silver_appbar_create_shared_album": "Crea àlbum compartit",
|
||||||
"sharing_silver_appbar_shared_links": "Enllaços compartits",
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Comparteix amb un company",
|
"sharing_silver_appbar_share_partner": "Comparteix amb un company",
|
||||||
"start_date": "Data inicial",
|
"start_date": "Data inicial",
|
||||||
"sync": "Sincronitzar",
|
"sync": "Sincronitzar",
|
||||||
"sync_albums": "Sincronitzar àlbums",
|
"sync_albums": "Sincronitzar àlbums",
|
||||||
"sync_albums_manual_subtitle": "Sincronitza tots els vídeos i fotos penjats amb els àlbums de còpia de seguretat seleccionats",
|
"sync_albums_manual_subtitle": "Sincronitza tots els vídeos i fotos penjats amb els àlbums de còpia de seguretat seleccionats",
|
||||||
"sync_upload_album_setting_subtitle": "Creeu i pugeu les seves fotos i vídeos als àlbums seleccionats a Immich",
|
"sync_upload_album_setting_subtitle": "Creeu i pugeu les seves fotos i vídeos als àlbums seleccionats a Immich",
|
||||||
"tab_controller_nav_library": "Llibreria",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Fotografies",
|
"tab_controller_nav_photos": "Fotografies",
|
||||||
"tab_controller_nav_search": "Cerca",
|
"tab_controller_nav_search": "Cerca",
|
||||||
"tab_controller_nav_sharing": "Compartint",
|
"tab_controller_nav_sharing": "Compartint",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Mostra l'indicador d'emmagatzematge als títols dels elements",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Nombre d'elements per fila ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
"theme_setting_colorful_interface_subtitle": "Apliqueu color primari a les superfícies de fons.",
|
"theme_setting_colorful_interface_subtitle": "Apliqueu color primari a les superfícies de fons.",
|
||||||
"theme_setting_colorful_interface_title": "Interfície colorida",
|
"theme_setting_colorful_interface_title": "Interfície colorida",
|
||||||
"theme_setting_dark_mode_switch": "Tema fosc",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajusta la qualitat del visor de detalls d'imatges",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Qualitat del visor d'imatges",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
"theme_setting_primary_color_subtitle": "Trieu un color per a les accions i els accents principals.",
|
"theme_setting_primary_color_subtitle": "Trieu un color per a les accions i els accents principals.",
|
||||||
"theme_setting_primary_color_title": "Color primari",
|
"theme_setting_primary_color_title": "Color primari",
|
||||||
"theme_setting_system_primary_color_title": "Utilitza color de sistema",
|
"theme_setting_system_primary_color_title": "Utilitza color de sistema",
|
||||||
"theme_setting_system_theme_switch": "Automàtic (Segueix la configuració del sistema)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Trieu la configuració del tema de l'aplicació",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Activa la càrrega en tres etapes",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
"translated_text_options": "Opcions",
|
"translated_text_options": "Options",
|
||||||
"trash": "Paperera",
|
"trash": "Paperera",
|
||||||
"trash_emptied": "Paperera buidada",
|
"trash_emptied": "Paperera buidada",
|
||||||
"trash_page_delete": "Elimina",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Eliminar-ho tot",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Buida la paperera",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
"trash_page_empty_trash_dialog_content": "Segur que voleu eliminar els elements? Aquests elements seran eliminats permanentment de Immich",
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
"trash_page_empty_trash_dialog_ok": "Sí",
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
"trash_page_info": "Els elements que s'enviïn a la paperera s'eliminaran permanentment després de {} dies",
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
"trash_page_no_assets": "No hi ha elements a la paperera",
|
"trash_page_no_assets": "No trashed assets",
|
||||||
"trash_page_restore": "Restaura",
|
"trash_page_restore": "Restore",
|
||||||
"trash_page_restore_all": "Restaura-ho tot",
|
"trash_page_restore_all": "Restore All",
|
||||||
"trash_page_select_assets_btn": "Selecciona elements",
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
"trash_page_select_btn": "Selecciona",
|
"trash_page_select_btn": "Select",
|
||||||
"trash_page_title": "Paperera ({})",
|
"trash_page_title": "Trash ({})",
|
||||||
"upload": "Puja",
|
"upload": "Puja",
|
||||||
"upload_dialog_cancel": "Cancel·la",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Vols fer còpia de seguretat dels elements seleccionats al servidor?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Puja",
|
"upload_dialog_ok": "Upload",
|
||||||
"upload_dialog_title": "Puja elements",
|
"upload_dialog_title": "Upload Asset",
|
||||||
"uploading": "Pujant",
|
"uploading": "Pujant",
|
||||||
"upload_to_immich": "Puja a Immich ({})",
|
"upload_to_immich": "Puja a Immich ({})",
|
||||||
"use_current_connection": "utilitzar la connexió actual",
|
"use_current_connection": "utilitzar la connexió actual",
|
||||||
"validate_endpoint_error": "Per favor introdueix un URL vàlid",
|
"validate_endpoint_error": "Per favor introdueix un URL vàlid",
|
||||||
"version_announcement_overlay_ack": "D'acord",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "notes de llançament",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hola amic, hi ha una nova versió d'",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "si us plau, pren-te una estona per visitar les ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " i assegura't que la teva configuració de docker-compose i .env estiguin actualitzades per evitar qualsevol error de configuració, especialment si utilitzes WatchTower o qualsevol mecanisme que gestioni l'actualització automàtica de l'aplicació del servidor.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "Nova versió del servidor disponible \uD83C\uDF89",
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
"videos": "Vídeos",
|
"videos": "Vídeos",
|
||||||
"viewer_remove_from_stack": "Elimina de la pila",
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
"viewer_stack_use_as_main_asset": "Fes servir com a element principal",
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
"viewer_unstack": "Desapila",
|
"viewer_unstack": "Un-Stack",
|
||||||
"wifi_name": "Nom WiFi",
|
"wifi_name": "Nom WiFi",
|
||||||
"your_wifi_name": "El teu nom WiFi"
|
"your_wifi_name": "El teu nom WiFi"
|
||||||
}
|
}
|
||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Upravit datum a čas",
|
"control_bottom_app_bar_edit_time": "Upravit datum a čas",
|
||||||
"control_bottom_app_bar_favorite": "Oblíbené",
|
"control_bottom_app_bar_favorite": "Oblíbené",
|
||||||
"control_bottom_app_bar_share": "Sdílet",
|
"control_bottom_app_bar_share": "Sdílet",
|
||||||
"control_bottom_app_bar_share_link": "Sdílet odkaz",
|
|
||||||
"control_bottom_app_bar_share_to": "Sdílet v",
|
"control_bottom_app_bar_share_to": "Sdílet v",
|
||||||
"control_bottom_app_bar_stack": "Zásobník",
|
"control_bottom_app_bar_stack": "Zásobník",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Přesunout do koše",
|
"control_bottom_app_bar_trash_from_immich": "Přesunout do koše",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Časové pásmo",
|
"edit_date_time_dialog_timezone": "Časové pásmo",
|
||||||
"edit_image_title": "Upravit",
|
"edit_image_title": "Upravit",
|
||||||
"edit_location_dialog_title": "Poloha",
|
"edit_location_dialog_title": "Poloha",
|
||||||
"empty_folder": "Tato složka je prázdná",
|
|
||||||
"end_date": "Konečné datum",
|
"end_date": "Konečné datum",
|
||||||
"enqueued": "Ve frontě",
|
"enqueued": "Ve frontě",
|
||||||
"enter_wifi_name": "Zadejte název WiFi",
|
"enter_wifi_name": "Zadejte název WiFi",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Přidat polohu",
|
"exif_bottom_sheet_location_add": "Přidat polohu",
|
||||||
"exif_bottom_sheet_people": "LIDÉ",
|
"exif_bottom_sheet_people": "LIDÉ",
|
||||||
"exif_bottom_sheet_person_add_person": "Přidat jméno",
|
"exif_bottom_sheet_person_add_person": "Přidat jméno",
|
||||||
"exif_bottom_sheet_person_age": "{} let",
|
|
||||||
"exif_bottom_sheet_person_age_months": "{} měsíců",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "1 rok a {} měsíců",
|
|
||||||
"exif_bottom_sheet_person_age_years": "{} let",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Zpracovávám",
|
"experimental_settings_new_asset_list_subtitle": "Zpracovávám",
|
||||||
"experimental_settings_new_asset_list_title": "Povolení experimentální mřížky fotografií",
|
"experimental_settings_new_asset_list_title": "Povolení experimentální mřížky fotografií",
|
||||||
"experimental_settings_subtitle": "Používejte na vlastní riziko!",
|
"experimental_settings_subtitle": "Používejte na vlastní riziko!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "Externí síť",
|
"external_network": "Externí síť",
|
||||||
"external_network_sheet_info": "Pokud nejste v preferované síti WiFi, aplikace se připojí k serveru prostřednictvím první z níže uvedených adres URL, které může dosáhnout, počínaje shora dolů",
|
"external_network_sheet_info": "Pokud nejste v preferované síti WiFi, aplikace se připojí k serveru prostřednictvím první z níže uvedených adres URL, které může dosáhnout, počínaje shora dolů",
|
||||||
"failed": "Selhalo",
|
"failed": "Selhalo",
|
||||||
"failed_to_load_assets": "Nepodařilo se načíst položky",
|
|
||||||
"failed_to_load_folder": "Nepodařilo se načíst složku",
|
|
||||||
"favorites": "Oblíbené",
|
"favorites": "Oblíbené",
|
||||||
"favorites_page_no_favorites": "Nebyla nalezena žádná oblíbená média",
|
"favorites_page_no_favorites": "Nebyla nalezena žádná oblíbená média",
|
||||||
"favorites_page_title": "Oblíbené",
|
"favorites_page_title": "Oblíbené",
|
||||||
"filename_search": "Název nebo přípona souboru",
|
"filename_search": "Název nebo přípona souboru",
|
||||||
"filter": "Filtr",
|
"filter": "Filtr",
|
||||||
"folder": "Složka",
|
|
||||||
"folder_not_found": "Složka nebyla nalezena",
|
|
||||||
"folders": "Složky",
|
|
||||||
"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",
|
"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",
|
||||||
"grant_permission": "Udělit oprávnění",
|
"grant_permission": "Udělit oprávnění",
|
||||||
"haptic_feedback_switch": "Povolit dotykovou zpětnou vazbu",
|
"haptic_feedback_switch": "Povolit dotykovou zpětnou vazbu",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Rediger tid og dato",
|
"control_bottom_app_bar_edit_time": "Rediger tid og dato",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
"control_bottom_app_bar_share": "Del",
|
"control_bottom_app_bar_share": "Del",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Del til",
|
"control_bottom_app_bar_share_to": "Del til",
|
||||||
"control_bottom_app_bar_stack": "Stak",
|
"control_bottom_app_bar_stack": "Stak",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Flyt til papirkurv",
|
"control_bottom_app_bar_trash_from_immich": "Flyt til papirkurv",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Tidszone",
|
"edit_date_time_dialog_timezone": "Tidszone",
|
||||||
"edit_image_title": "Rediger",
|
"edit_image_title": "Rediger",
|
||||||
"edit_location_dialog_title": "Placering",
|
"edit_location_dialog_title": "Placering",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Indtast WiFi-navn",
|
"enter_wifi_name": "Indtast WiFi-navn",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Tilføj en placering",
|
"exif_bottom_sheet_location_add": "Tilføj en placering",
|
||||||
"exif_bottom_sheet_people": "PERSONER",
|
"exif_bottom_sheet_people": "PERSONER",
|
||||||
"exif_bottom_sheet_person_add_person": "Tilføj navn",
|
"exif_bottom_sheet_person_add_person": "Tilføj navn",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Under udarbejdelse",
|
"experimental_settings_new_asset_list_subtitle": "Under udarbejdelse",
|
||||||
"experimental_settings_new_asset_list_title": "Aktiver eksperimentelt fotogitter",
|
"experimental_settings_new_asset_list_title": "Aktiver eksperimentelt fotogitter",
|
||||||
"experimental_settings_subtitle": "Brug på eget ansvar!",
|
"experimental_settings_subtitle": "Brug på eget ansvar!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "Eksternt netværk",
|
"external_network": "Eksternt netværk",
|
||||||
"external_network_sheet_info": "Nå der er ikke er forbundet til det foretrukne WiFi-netværk, vil appen forbinde til den første URL, den kan forbinde til, på listen nedenfor. Startende med i toppen",
|
"external_network_sheet_info": "Nå der er ikke er forbundet til det foretrukne WiFi-netværk, vil appen forbinde til den første URL, den kan forbinde til, på listen nedenfor. Startende med i toppen",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favoritter",
|
"favorites": "Favoritter",
|
||||||
"favorites_page_no_favorites": "Ingen favoritter blev fundet",
|
"favorites_page_no_favorites": "Ingen favoritter blev fundet",
|
||||||
"favorites_page_title": "Favoritter",
|
"favorites_page_title": "Favoritter",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"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",
|
"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",
|
||||||
"grant_permission": "Giv tilladelse",
|
"grant_permission": "Giv tilladelse",
|
||||||
"haptic_feedback_switch": "Slå haptisk feedback til",
|
"haptic_feedback_switch": "Slå haptisk feedback til",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Datum und Uhrzeit bearbeiten",
|
"control_bottom_app_bar_edit_time": "Datum und Uhrzeit bearbeiten",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
"control_bottom_app_bar_share": "Teilen",
|
"control_bottom_app_bar_share": "Teilen",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Teilen mit",
|
"control_bottom_app_bar_share_to": "Teilen mit",
|
||||||
"control_bottom_app_bar_stack": "Stapeln",
|
"control_bottom_app_bar_stack": "Stapeln",
|
||||||
"control_bottom_app_bar_trash_from_immich": "in den Papierkorb schieben",
|
"control_bottom_app_bar_trash_from_immich": "in den Papierkorb schieben",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Zeitzone",
|
"edit_date_time_dialog_timezone": "Zeitzone",
|
||||||
"edit_image_title": "Bearbeiten",
|
"edit_image_title": "Bearbeiten",
|
||||||
"edit_location_dialog_title": "Ort bearbeiten",
|
"edit_location_dialog_title": "Ort bearbeiten",
|
||||||
"empty_folder": "Dieser Ordner ist leer",
|
|
||||||
"end_date": "Enddatum",
|
"end_date": "Enddatum",
|
||||||
"enqueued": "Eingereiht",
|
"enqueued": "Eingereiht",
|
||||||
"enter_wifi_name": "WLAN-Name eingeben",
|
"enter_wifi_name": "WLAN-Name eingeben",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Aufnahmeort hinzufügen",
|
"exif_bottom_sheet_location_add": "Aufnahmeort hinzufügen",
|
||||||
"exif_bottom_sheet_people": "PERSONEN",
|
"exif_bottom_sheet_people": "PERSONEN",
|
||||||
"exif_bottom_sheet_person_add_person": "Namen hinzufügen",
|
"exif_bottom_sheet_person_add_person": "Namen hinzufügen",
|
||||||
"exif_bottom_sheet_person_age": "Alter {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "In Arbeit",
|
"experimental_settings_new_asset_list_subtitle": "In Arbeit",
|
||||||
"experimental_settings_new_asset_list_title": "Experimentelles Fotogitter aktivieren",
|
"experimental_settings_new_asset_list_title": "Experimentelles Fotogitter aktivieren",
|
||||||
"experimental_settings_subtitle": "Benutzung auf eigene Gefahr!",
|
"experimental_settings_subtitle": "Benutzung auf eigene Gefahr!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "Externes Netzwerk",
|
"external_network": "Externes Netzwerk",
|
||||||
"external_network_sheet_info": "Wenn sich die App nicht im bevorzugten WLAN-Netzwerk befindet, verbindet sie sich mit dem Server über die erste der folgenden URLs, die sie erreichen kann (von oben nach unten)",
|
"external_network_sheet_info": "Wenn sich die App nicht im bevorzugten WLAN-Netzwerk befindet, verbindet sie sich mit dem Server über die erste der folgenden URLs, die sie erreichen kann (von oben nach unten)",
|
||||||
"failed": "Fehlgeschlagen",
|
"failed": "Fehlgeschlagen",
|
||||||
"failed_to_load_assets": "Fehler beim Laden von Daten",
|
|
||||||
"failed_to_load_folder": "Fehler beim Laden des Ordners",
|
|
||||||
"favorites": "Favoriten",
|
"favorites": "Favoriten",
|
||||||
"favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
|
"favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
|
||||||
"favorites_page_title": "Favoriten",
|
"favorites_page_title": "Favoriten",
|
||||||
"filename_search": "Dateiname oder Dateityp",
|
"filename_search": "Dateiname oder Dateityp",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Ordner",
|
|
||||||
"folder_not_found": "Ordner nicht gefunden",
|
|
||||||
"folders": "Ordner",
|
|
||||||
"get_wifiname_error": "WLAN-Name konnte nicht ermittelt werden. Vergewissere dich, dass die erforderlichen Berechtigungen erteilt wurden und du mit einem WLAN-Netzwerk verbunden bist.\n",
|
"get_wifiname_error": "WLAN-Name konnte nicht ermittelt werden. Vergewissere dich, dass die erforderlichen Berechtigungen erteilt wurden und du mit einem WLAN-Netzwerk verbunden bist.\n",
|
||||||
"grant_permission": "Erlaubnis gewähren",
|
"grant_permission": "Erlaubnis gewähren",
|
||||||
"haptic_feedback_switch": "Haptisches Feedback aktivieren",
|
"haptic_feedback_switch": "Haptisches Feedback aktivieren",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Επεξεργασία Ημερομηνίας & Ώρας",
|
"control_bottom_app_bar_edit_time": "Επεξεργασία Ημερομηνίας & Ώρας",
|
||||||
"control_bottom_app_bar_favorite": "Προσθήκη στα αγαπημένα",
|
"control_bottom_app_bar_favorite": "Προσθήκη στα αγαπημένα",
|
||||||
"control_bottom_app_bar_share": "Κοινοποίηση",
|
"control_bottom_app_bar_share": "Κοινοποίηση",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Κοινοποίηση Σε",
|
"control_bottom_app_bar_share_to": "Κοινοποίηση Σε",
|
||||||
"control_bottom_app_bar_stack": "Στοίβα",
|
"control_bottom_app_bar_stack": "Στοίβα",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Μετακίνηση στα Απορρίμματα",
|
"control_bottom_app_bar_trash_from_immich": "Μετακίνηση στα Απορρίμματα",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Ζώνη ώρας",
|
"edit_date_time_dialog_timezone": "Ζώνη ώρας",
|
||||||
"edit_image_title": "Επεξεργασία",
|
"edit_image_title": "Επεξεργασία",
|
||||||
"edit_location_dialog_title": "Τοποθεσία",
|
"edit_location_dialog_title": "Τοποθεσία",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Προσθήκη τοποθεσίας",
|
"exif_bottom_sheet_location_add": "Προσθήκη τοποθεσίας",
|
||||||
"exif_bottom_sheet_people": "ΑΝΘΡΩΠΟΙ",
|
"exif_bottom_sheet_people": "ΑΝΘΡΩΠΟΙ",
|
||||||
"exif_bottom_sheet_person_add_person": "Προσθήκη ονόματος",
|
"exif_bottom_sheet_person_add_person": "Προσθήκη ονόματος",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Σε εξέλιξη",
|
"experimental_settings_new_asset_list_subtitle": "Σε εξέλιξη",
|
||||||
"experimental_settings_new_asset_list_title": "Ενεργοποίηση πειραματικού πλέγματος φωτογραφιών",
|
"experimental_settings_new_asset_list_title": "Ενεργοποίηση πειραματικού πλέγματος φωτογραφιών",
|
||||||
"experimental_settings_subtitle": "Χρησιμοποιείτε με δική σας ευθύνη!",
|
"experimental_settings_subtitle": "Χρησιμοποιείτε με δική σας ευθύνη!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Αγαπημένα",
|
"favorites": "Αγαπημένα",
|
||||||
"favorites_page_no_favorites": "Δεν βρέθηκαν αγαπημένα στοιχεία",
|
"favorites_page_no_favorites": "Δεν βρέθηκαν αγαπημένα στοιχεία",
|
||||||
"favorites_page_title": "Αγαπημένα",
|
"favorites_page_title": "Αγαπημένα",
|
||||||
"filename_search": "Όνομα αρχείου ή επέκταση",
|
"filename_search": "Όνομα αρχείου ή επέκταση",
|
||||||
"filter": "Φίλτρο",
|
"filter": "Φίλτρο",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Ενεργοποίηση απτικής ανάδρασης",
|
"haptic_feedback_switch": "Ενεργοποίηση απτικής ανάδρασης",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Share To",
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
"control_bottom_app_bar_stack": "Stack",
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
@@ -266,9 +265,6 @@
|
|||||||
"exif_bottom_sheet_people": "PEOPLE",
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
"exif_bottom_sheet_person_age": "Age {}",
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
@@ -276,16 +272,16 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
"folders": "Folders",
|
||||||
|
"folder": "Folder",
|
||||||
|
"failed_to_load_folder": "Failed to load folder",
|
||||||
|
"failed_to_load_assets": "Failed to load assets",
|
||||||
|
"folder_not_found": "Folder not found",
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
@@ -689,4 +685,4 @@
|
|||||||
"viewer_unstack": "Un-Stack",
|
"viewer_unstack": "Un-Stack",
|
||||||
"wifi_name": "WiFi Name",
|
"wifi_name": "WiFi Name",
|
||||||
"your_wifi_name": "Your WiFi name"
|
"your_wifi_name": "Your WiFi name"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Editar fecha y hora",
|
"control_bottom_app_bar_edit_time": "Editar fecha y hora",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Enviar",
|
"control_bottom_app_bar_share_to": "Enviar",
|
||||||
"control_bottom_app_bar_stack": "Apilar",
|
"control_bottom_app_bar_stack": "Apilar",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Mover a la papelera",
|
"control_bottom_app_bar_trash_from_immich": "Mover a la papelera",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Zona horaria",
|
"edit_date_time_dialog_timezone": "Zona horaria",
|
||||||
"edit_image_title": "Editar",
|
"edit_image_title": "Editar",
|
||||||
"edit_location_dialog_title": "Ubicación",
|
"edit_location_dialog_title": "Ubicación",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Añadir ubicación",
|
"exif_bottom_sheet_location_add": "Añadir ubicación",
|
||||||
"exif_bottom_sheet_people": "PERSONAS",
|
"exif_bottom_sheet_people": "PERSONAS",
|
||||||
"exif_bottom_sheet_person_add_person": "Añadir nombre",
|
"exif_bottom_sheet_person_add_person": "Añadir nombre",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
||||||
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
||||||
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favoritos",
|
"favorites": "Favoritos",
|
||||||
"favorites_page_no_favorites": "No se encontraron elementos marcados como favoritos",
|
"favorites_page_no_favorites": "No se encontraron elementos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
"filename_search": "Nombre o extensión",
|
"filename_search": "Nombre o extensión",
|
||||||
"filter": "Filtrar",
|
"filter": "Filtrar",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Activar respuesta háptica",
|
"haptic_feedback_switch": "Activar respuesta háptica",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Enviar",
|
"control_bottom_app_bar_share_to": "Enviar",
|
||||||
"control_bottom_app_bar_stack": "Apilar",
|
"control_bottom_app_bar_stack": "Apilar",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Timezone",
|
"edit_date_time_dialog_timezone": "Timezone",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Location",
|
"edit_location_dialog_title": "Location",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Add a location",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PERSONAS",
|
"exif_bottom_sheet_people": "PERSONAS",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
||||||
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
||||||
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favoritos",
|
"favorites": "Favoritos",
|
||||||
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Enviar",
|
"control_bottom_app_bar_share_to": "Enviar",
|
||||||
"control_bottom_app_bar_stack": "Apilar",
|
"control_bottom_app_bar_stack": "Apilar",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Timezone",
|
"edit_date_time_dialog_timezone": "Timezone",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Location",
|
"edit_location_dialog_title": "Location",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Add a location",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PEOPLE",
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
||||||
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
||||||
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Compartir con",
|
"control_bottom_app_bar_share_to": "Compartir con",
|
||||||
"control_bottom_app_bar_stack": "Apilar",
|
"control_bottom_app_bar_stack": "Apilar",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Timezone",
|
"edit_date_time_dialog_timezone": "Timezone",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Location",
|
"edit_location_dialog_title": "Location",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Add a location",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PERSONAS",
|
"exif_bottom_sheet_people": "PERSONAS",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
||||||
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
||||||
"experimental_settings_subtitle": "¡Úsalo bajo tu propio riesgo!",
|
"experimental_settings_subtitle": "¡Úsalo bajo tu propio riesgo!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favoritos",
|
"favorites": "Favoritos",
|
||||||
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Muokkaa aikaa",
|
"control_bottom_app_bar_edit_time": "Muokkaa aikaa",
|
||||||
"control_bottom_app_bar_favorite": "Suosikki",
|
"control_bottom_app_bar_favorite": "Suosikki",
|
||||||
"control_bottom_app_bar_share": "Jaa",
|
"control_bottom_app_bar_share": "Jaa",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Jaa",
|
"control_bottom_app_bar_share_to": "Jaa",
|
||||||
"control_bottom_app_bar_stack": "Pinoa",
|
"control_bottom_app_bar_stack": "Pinoa",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Siirrä roskakoriin",
|
"control_bottom_app_bar_trash_from_immich": "Siirrä roskakoriin",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Aikavyöhyke",
|
"edit_date_time_dialog_timezone": "Aikavyöhyke",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Sijainti",
|
"edit_location_dialog_title": "Sijainti",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Lisää sijainti",
|
"exif_bottom_sheet_location_add": "Lisää sijainti",
|
||||||
"exif_bottom_sheet_people": "IHMISET",
|
"exif_bottom_sheet_people": "IHMISET",
|
||||||
"exif_bottom_sheet_person_add_person": "Lisää nimi",
|
"exif_bottom_sheet_person_add_person": "Lisää nimi",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Työn alla",
|
"experimental_settings_new_asset_list_subtitle": "Työn alla",
|
||||||
"experimental_settings_new_asset_list_title": "Ota käyttöön kokeellinen kuvaruudukko",
|
"experimental_settings_new_asset_list_title": "Ota käyttöön kokeellinen kuvaruudukko",
|
||||||
"experimental_settings_subtitle": "Käyttö omalla vastuulla!",
|
"experimental_settings_subtitle": "Käyttö omalla vastuulla!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "Suosikkikohteita ei löytynyt",
|
"favorites_page_no_favorites": "Suosikkikohteita ei löytynyt",
|
||||||
"favorites_page_title": "Suosikit",
|
"favorites_page_title": "Suosikit",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Ota haptinen palaute käyttöön",
|
"haptic_feedback_switch": "Ota haptinen palaute käyttöön",
|
||||||
|
|||||||
+282
-293
@@ -1,20 +1,20 @@
|
|||||||
{
|
{
|
||||||
"action_common_back": "Retour",
|
"action_common_back": "Back",
|
||||||
"action_common_cancel": "Annuler",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Vider",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirmer",
|
"action_common_confirm": "Confirm",
|
||||||
"action_common_save": "Sauvegarder",
|
"action_common_save": "Save",
|
||||||
"action_common_select": "Sélectionner",
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Mise à jour",
|
"action_common_update": "Update",
|
||||||
"add_a_name": "Ajouter un nom",
|
"add_a_name": "Add a name",
|
||||||
"add_endpoint": "Ajouter une adresse",
|
"add_endpoint": "Add endpoint",
|
||||||
"add_to_album_bottom_sheet_added": "Ajouté à {album}",
|
"add_to_album_bottom_sheet_added": "Ajouté à {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
|
"add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
|
||||||
"advanced_settings_log_level_title": "Niveau de log : {}",
|
"advanced_settings_log_level_title": "Log level: {}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Certains appareils sont très lents à charger des vignettes à partir de ressources présentes sur l'appareil. Activez ce paramètre pour charger des images externes à la place.",
|
"advanced_settings_prefer_remote_subtitle": "Certains appareils sont très lents à charger des vignettes à partir de ressources présentes sur l'appareil. Activez ce paramètre pour charger des images externes à la place.",
|
||||||
"advanced_settings_prefer_remote_title": "Préférer les images externes",
|
"advanced_settings_prefer_remote_title": "Préférer les images externes",
|
||||||
"advanced_settings_proxy_headers_subtitle": "Ajoutez des en-têtes personnalisés à chaque requête réseau",
|
"advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request",
|
||||||
"advanced_settings_proxy_headers_title": "En-têtes de proxy",
|
"advanced_settings_proxy_headers_title": "Proxy Headers",
|
||||||
"advanced_settings_self_signed_ssl_subtitle": "Permet d'ignorer la vérification du certificat SSL pour le point d'accès du serveur. Requis pour les certificats auto-signés.",
|
"advanced_settings_self_signed_ssl_subtitle": "Permet d'ignorer la vérification du certificat SSL pour le point d'accès du serveur. Requis pour les certificats auto-signés.",
|
||||||
"advanced_settings_self_signed_ssl_title": "Autoriser les certificats SSL auto-signés",
|
"advanced_settings_self_signed_ssl_title": "Autoriser les certificats SSL auto-signés",
|
||||||
"advanced_settings_tile_subtitle": "Paramètres d'utilisateur avancés",
|
"advanced_settings_tile_subtitle": "Paramètres d'utilisateur avancés",
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"album_thumbnail_card_shared": " · Partagé",
|
"album_thumbnail_card_shared": " · Partagé",
|
||||||
"album_thumbnail_owned": "Possédé",
|
"album_thumbnail_owned": "Possédé",
|
||||||
"album_thumbnail_shared_by": "Partagé par {}",
|
"album_thumbnail_shared_by": "Partagé par {}",
|
||||||
"album_viewer_appbar_delete_confirm": "Êtes-vous sur de vouloir supprimer cet album de votre compte ?",
|
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?",
|
||||||
"album_viewer_appbar_share_delete": "Supprimer l'album",
|
"album_viewer_appbar_share_delete": "Supprimer l'album",
|
||||||
"album_viewer_appbar_share_err_delete": "Échec de la suppression de l'album",
|
"album_viewer_appbar_share_err_delete": "Échec de la suppression de l'album",
|
||||||
"album_viewer_appbar_share_err_leave": "Impossible de quitter l'album",
|
"album_viewer_appbar_share_err_leave": "Impossible de quitter l'album",
|
||||||
@@ -39,39 +39,39 @@
|
|||||||
"album_viewer_appbar_share_remove": "Retirer de l'album",
|
"album_viewer_appbar_share_remove": "Retirer de l'album",
|
||||||
"album_viewer_appbar_share_to": "Partager à",
|
"album_viewer_appbar_share_to": "Partager à",
|
||||||
"album_viewer_page_share_add_users": "Ajouter des utilisateurs",
|
"album_viewer_page_share_add_users": "Ajouter des utilisateurs",
|
||||||
"all": "Tous",
|
"all": "All",
|
||||||
"all_people_page_title": "Personnes",
|
"all_people_page_title": "Personnes",
|
||||||
"all_videos_page_title": "Vidéos",
|
"all_videos_page_title": "Vidéos",
|
||||||
"app_bar_signout_dialog_content": "Êtes-vous sûr de vouloir vous déconnecter?",
|
"app_bar_signout_dialog_content": "Êtes-vous sûr de vouloir vous déconnecter?",
|
||||||
"app_bar_signout_dialog_ok": "Oui",
|
"app_bar_signout_dialog_ok": "Oui",
|
||||||
"app_bar_signout_dialog_title": "Se déconnecter",
|
"app_bar_signout_dialog_title": "Se déconnecter",
|
||||||
"archived": "Archives",
|
"archived": "Archived",
|
||||||
"archive_page_no_archived_assets": "Aucun élément archivé n'a été trouvé",
|
"archive_page_no_archived_assets": "Aucun élément archivé n'a été trouvé",
|
||||||
"archive_page_title": "Archive ({})",
|
"archive_page_title": "Archive ({})",
|
||||||
"asset_action_delete_err_read_only": "Impossible de supprimer le(s) élément(s) en lecture seule.",
|
"asset_action_delete_err_read_only": "Cannot delete read only asset(s), skipping",
|
||||||
"asset_action_share_err_offline": "Impossible de récupérer le(s) élément(s) hors ligne.",
|
"asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping",
|
||||||
"asset_list_group_by_sub_title": "Regrouper par",
|
"asset_list_group_by_sub_title": "Group by",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Affichage dynamique",
|
"asset_list_layout_settings_dynamic_layout_title": "Affichage dynamique",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatique",
|
"asset_list_layout_settings_group_automatically": "Automatique",
|
||||||
"asset_list_layout_settings_group_by": "Grouper les éléments par",
|
"asset_list_layout_settings_group_by": "Grouper les éléments par",
|
||||||
"asset_list_layout_settings_group_by_month": "Mois",
|
"asset_list_layout_settings_group_by_month": "Mois",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Mois + jour",
|
"asset_list_layout_settings_group_by_month_day": "Mois + jour",
|
||||||
"asset_list_layout_sub_title": "Disposition",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Paramètres de disposition de la grille de photos",
|
"asset_list_settings_subtitle": "Paramètres de disposition de la grille de photos",
|
||||||
"asset_list_settings_title": "Grille de photos",
|
"asset_list_settings_title": "Grille de photos",
|
||||||
"asset_restored_successfully": "Élément restauré avec succès",
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
"assets_deleted_permanently": "{} élément(s) supprimé(s) définitivement",
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
"assets_deleted_permanently_from_server": "{} élément(s) supprimé(s) définitivement du serveur Immich",
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
"assets_removed_permanently_from_device": "{} élément(s) supprimé(s) définitivement de votre appareil",
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
"assets_restored_successfully": "Élément restauré avec succès",
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
"assets_trashed": "{} élément(s) déplacé(s) vers la corbeille",
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
"assets_trashed_from_server": "{} élément(s) déplacé(s) vers la corbeille du serveur Immich",
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_subtitle": "Modifier les paramètres du visualiseur photos",
|
"asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
|
||||||
"asset_viewer_settings_title": "Visualiseur d'éléments",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"automatic_endpoint_switching_subtitle": "Se connecter localement lorsque connecté au WI-FI spécifié mais utiliser une adresse alternative lorsque connecté à un autre réseau",
|
"automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
|
||||||
"automatic_endpoint_switching_title": "Changement automatique d'adresse",
|
"automatic_endpoint_switching_title": "Automatic URL switching",
|
||||||
"background_location_permission": "Permission de localisation en arrière plan",
|
"background_location_permission": "Background location permission",
|
||||||
"background_location_permission_content": "Afin de pouvoir changer d'adresse en arrière plan, Immich doit avoir *en permanence* accès à la localisation précise, afin d'accéder au le nom du réseau Wi-Fi utilisé",
|
"background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
|
||||||
"backup_album_selection_page_albums_device": "Albums sur l'appareil ({})",
|
"backup_album_selection_page_albums_device": "Albums sur l'appareil ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
|
"backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
|
||||||
"backup_album_selection_page_assets_scatter": "Les éléments peuvent être répartis sur plusieurs albums. De ce fait, les albums peuvent être inclus ou exclus pendant le processus de sauvegarde.",
|
"backup_album_selection_page_assets_scatter": "Les éléments peuvent être répartis sur plusieurs albums. De ce fait, les albums peuvent être inclus ou exclus pendant le processus de sauvegarde.",
|
||||||
@@ -136,14 +136,14 @@
|
|||||||
"backup_manual_in_progress": "Téléchargement déjà en cours. Essayez après un instant",
|
"backup_manual_in_progress": "Téléchargement déjà en cours. Essayez après un instant",
|
||||||
"backup_manual_success": "Succès ",
|
"backup_manual_success": "Succès ",
|
||||||
"backup_manual_title": "Statut du téléchargement ",
|
"backup_manual_title": "Statut du téléchargement ",
|
||||||
"backup_options_page_title": "Options de sauvegarde",
|
"backup_options_page_title": "Backup options",
|
||||||
"backup_setting_subtitle": "Ajuster les paramètres de sauvegarde",
|
"backup_setting_subtitle": "Manage background and foreground upload settings",
|
||||||
"cache_settings_album_thumbnails": "vignettes de la page bibliothèque ({} éléments)",
|
"cache_settings_album_thumbnails": "vignettes de la page bibliothèque ({} éléments)",
|
||||||
"cache_settings_clear_cache_button": "Effacer le cache",
|
"cache_settings_clear_cache_button": "Effacer le cache",
|
||||||
"cache_settings_clear_cache_button_title": "Efface le cache de l'application. Cela aura un impact significatif sur les performances de l'application jusqu'à ce que le cache soit reconstruit.",
|
"cache_settings_clear_cache_button_title": "Efface le cache de l'application. Cela aura un impact significatif sur les performances de l'application jusqu'à ce que le cache soit reconstruit.",
|
||||||
"cache_settings_duplicated_assets_clear_button": "EFFACER",
|
"cache_settings_duplicated_assets_clear_button": "CLEAR",
|
||||||
"cache_settings_duplicated_assets_subtitle": "Photos et vidéos qui sont exclues par l'application",
|
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
|
||||||
"cache_settings_duplicated_assets_title": "Éléments dupliqués ({})",
|
"cache_settings_duplicated_assets_title": "Duplicated Assets ({})",
|
||||||
"cache_settings_image_cache_size": "Taille du cache des images ({} éléments)",
|
"cache_settings_image_cache_size": "Taille du cache des images ({} éléments)",
|
||||||
"cache_settings_statistics_album": "vignettes de la bibliothèque",
|
"cache_settings_statistics_album": "vignettes de la bibliothèque",
|
||||||
"cache_settings_statistics_assets": "{} éléments ({})",
|
"cache_settings_statistics_assets": "{} éléments ({})",
|
||||||
@@ -156,197 +156,186 @@
|
|||||||
"cache_settings_tile_subtitle": "Contrôler le comportement du stockage local",
|
"cache_settings_tile_subtitle": "Contrôler le comportement du stockage local",
|
||||||
"cache_settings_tile_title": "Stockage local",
|
"cache_settings_tile_title": "Stockage local",
|
||||||
"cache_settings_title": "Paramètres de mise en cache",
|
"cache_settings_title": "Paramètres de mise en cache",
|
||||||
"cancel": "Annuler",
|
"cancel": "Cancel",
|
||||||
"canceled": "Annulé",
|
"canceled": "Canceled",
|
||||||
"change_display_order": "Modifier l'ordre d'affichage",
|
"change_display_order": "Change display order",
|
||||||
"change_password_form_confirm_password": "Confirmez le mot de passe",
|
"change_password_form_confirm_password": "Confirmez le mot de passe",
|
||||||
"change_password_form_description": "Bonjour {name},\n\nC'est la première fois que vous vous connectez au système ou vous avez demandé de changer votre mot de passe. Veuillez saisir le nouveau mot de passe ci-dessous.",
|
"change_password_form_description": "Bonjour {name},\n\nC'est la première fois que vous vous connectez au système ou vous avez demandé de changer votre mot de passe. Veuillez saisir le nouveau mot de passe ci-dessous.",
|
||||||
"change_password_form_new_password": "Nouveau mot de passe",
|
"change_password_form_new_password": "Nouveau mot de passe",
|
||||||
"change_password_form_password_mismatch": "Les mots de passe ne correspondent pas",
|
"change_password_form_password_mismatch": "Les mots de passe ne correspondent pas",
|
||||||
"change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe",
|
"change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe",
|
||||||
"check_corrupt_asset_backup": "Vérifier la corruption des éléments enregistrés",
|
"check_corrupt_asset_backup": "Check for corrupt asset backups",
|
||||||
"check_corrupt_asset_backup_button": "Vérifier",
|
"check_corrupt_asset_backup_button": "Perform check",
|
||||||
"check_corrupt_asset_backup_description": "Lancer cette vérification uniquement lorsque connecté à un réseau Wi-Fi et que tout le contenu a été enregistré. Cette procédure peut durer plusieurs minutes.",
|
"check_corrupt_asset_backup_description": "Run this check only over Wi-Fi and once all assets have been backed-up. The procedure might take a few minutes.",
|
||||||
"client_cert_dialog_msg_confirm": "D'accord",
|
"client_cert_dialog_msg_confirm": "D'accord",
|
||||||
"client_cert_enter_password": "Entrer mot de passe",
|
"client_cert_enter_password": "Enter Password",
|
||||||
"client_cert_import": "Importer",
|
"client_cert_import": "Import",
|
||||||
"client_cert_import_success_msg": "Certificat importé",
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
"client_cert_invalid_msg": "Fichier de certificat invalide ou mot de passe incorrect",
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
"client_cert_remove": "Supprimer",
|
"client_cert_remove": "Remove",
|
||||||
"client_cert_remove_msg": "Certificat supprimé",
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
"client_cert_subtitle": "Prend en charge uniquement le format PKCS12 (.p12, .pfx). L'importation/suppression de certificats n'est possible qu'avant la connexion",
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
"client_cert_title": "Certificat SSL",
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Ajouter à l'album",
|
"common_add_to_album": "Ajouter à l'album",
|
||||||
"common_change_password": "Modifier le mot de passe",
|
"common_change_password": "Modifier le mot de passe",
|
||||||
"common_create_new_album": "Créer un nouvel album",
|
"common_create_new_album": "Créer un nouvel album",
|
||||||
"common_server_error": "Veuillez vérifier votre connexion réseau, vous assurer que le serveur est accessible et que les versions de l'application et du serveur sont compatibles.",
|
"common_server_error": "Veuillez vérifier votre connexion réseau, vous assurer que le serveur est accessible et que les versions de l'application et du serveur sont compatibles.",
|
||||||
"common_shared": "Partagé",
|
"common_shared": "Partagé",
|
||||||
"completed": "Complété",
|
"completed": "Completed",
|
||||||
"contextual_search": "Lever de soleil sur la plage",
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Ajouter à l'album",
|
"control_bottom_app_bar_add_to_album": "Ajouter à l'album",
|
||||||
"control_bottom_app_bar_album_info": "{} éléments",
|
"control_bottom_app_bar_album_info": "{} éléments",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} éléments - Partagés",
|
"control_bottom_app_bar_album_info_shared": "{} éléments - Partagés",
|
||||||
"control_bottom_app_bar_archive": "Archive",
|
"control_bottom_app_bar_archive": "Archive",
|
||||||
"control_bottom_app_bar_create_new_album": "Créer un nouvel album",
|
"control_bottom_app_bar_create_new_album": "Créer un nouvel album",
|
||||||
"control_bottom_app_bar_delete": "Supprimer",
|
"control_bottom_app_bar_delete": "Supprimer",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Supprimer de Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Supprimer de l'appareil",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
"control_bottom_app_bar_download": "Télécharger",
|
"control_bottom_app_bar_download": "Download",
|
||||||
"control_bottom_app_bar_edit": "Modifier",
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Modifier la localisation",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Modifier la date et l'heure",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favoris",
|
"control_bottom_app_bar_favorite": "Favoris",
|
||||||
"control_bottom_app_bar_share": "Partager",
|
"control_bottom_app_bar_share": "Partager",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Partager à",
|
"control_bottom_app_bar_share_to": "Partager à",
|
||||||
"control_bottom_app_bar_stack": "Empiler",
|
"control_bottom_app_bar_stack": "Empiler",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Déplacer vers la corbeille",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
"control_bottom_app_bar_unarchive": "Désarchiver",
|
"control_bottom_app_bar_unarchive": "Désarchiver",
|
||||||
"control_bottom_app_bar_unfavorite": "Enlever des favoris",
|
"control_bottom_app_bar_unfavorite": "Unfavorite",
|
||||||
"control_bottom_app_bar_upload": "Téléverser",
|
"control_bottom_app_bar_upload": "Téléverser",
|
||||||
"create_album": "Créer l'album",
|
"create_album": "Create album",
|
||||||
"create_album_page_untitled": "Sans titre",
|
"create_album_page_untitled": "Sans titre",
|
||||||
"create_new": "NOUVEAU",
|
"create_new": "CREATE NEW",
|
||||||
"create_shared_album_page_create": "Créer",
|
"create_shared_album_page_create": "Créer",
|
||||||
"create_shared_album_page_share": "Partager",
|
"create_shared_album_page_share": "Partager",
|
||||||
"create_shared_album_page_share_add_assets": "AJOUTER DES ÉLÉMENTS",
|
"create_shared_album_page_share_add_assets": "AJOUTER DES ÉLÉMENTS",
|
||||||
"create_shared_album_page_share_select_photos": "Sélectionner les photos",
|
"create_shared_album_page_share_select_photos": "Sélectionner les photos",
|
||||||
"crop": "Recadrer",
|
"crop": "Crop",
|
||||||
"curated_location_page_title": "Places",
|
"curated_location_page_title": "Places",
|
||||||
"curated_object_page_title": "Objets",
|
"curated_object_page_title": "Objets",
|
||||||
"current_server_address": "Adresse actuelle du serveur ",
|
"current_server_address": "Current server address",
|
||||||
"daily_title_text_date": "E, dd MMM",
|
"daily_title_text_date": "E, dd MMM",
|
||||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||||
"date_format": "E, LLL d, y • h:mm a",
|
"date_format": "E, LLL d, y • h:mm a",
|
||||||
"delete_dialog_alert": "Ces éléments seront définitivement supprimés de Immich et de votre appareil.",
|
"delete_dialog_alert": "Ces éléments seront définitivement supprimés de Immich et de votre appareil.",
|
||||||
"delete_dialog_alert_local": "Ces éléments seront définitivement supprimés de votre appareil mais resteront disponibles sur le serveur d'Immich.",
|
"delete_dialog_alert_local": "These items will be permanently removed from your device but still be available on the Immich server",
|
||||||
"delete_dialog_alert_local_non_backed_up": "Certains éléments ne sont pas sauvegardés sur Immich et seront définitivement supprimés de votre appareil.",
|
"delete_dialog_alert_local_non_backed_up": "Some of the items aren't backed up to Immich and will be permanently removed from your device",
|
||||||
"delete_dialog_alert_remote": "Ces éléments seront définitivement supprimés du serveur Immich.",
|
"delete_dialog_alert_remote": "These items will be permanently deleted from the Immich server",
|
||||||
"delete_dialog_cancel": "Annuler",
|
"delete_dialog_cancel": "Annuler",
|
||||||
"delete_dialog_ok": "Supprimer",
|
"delete_dialog_ok": "Supprimer",
|
||||||
"delete_dialog_ok_force": "Supprimer tout de même",
|
"delete_dialog_ok_force": "Delete Anyway",
|
||||||
"delete_dialog_title": "Supprimer définitivement",
|
"delete_dialog_title": "Supprimer définitivement",
|
||||||
"delete_local_dialog_ok_backed_up_only": "Suppression des données sauvegardées uniquement",
|
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only",
|
||||||
"delete_local_dialog_ok_force": "Supprimer tout de même",
|
"delete_local_dialog_ok_force": "Delete Anyway",
|
||||||
"delete_shared_link_dialog_content": "Êtes-vous sûr de vouloir supprimer ce lien partagé?",
|
"delete_shared_link_dialog_content": "Êtes-vous sûr de vouloir supprimer ce lien partagé?",
|
||||||
"delete_shared_link_dialog_title": "Supprimer le lien partagé",
|
"delete_shared_link_dialog_title": "Supprimer le lien partagé",
|
||||||
"description_input_hint_text": "Ajouter une description...",
|
"description_input_hint_text": "Ajouter une description...",
|
||||||
"description_input_submit_error": "Erreur de mise à jour de la description, vérifier le journal pour plus de détails",
|
"description_input_submit_error": "Erreur de mise à jour de la description, vérifier le journal pour plus de détails",
|
||||||
"description_search": "Randonnée dans les Laurentides",
|
"description_search": "Randonnée dans les Laurentides",
|
||||||
"download_canceled": "Téléchargement annulé",
|
"download_canceled": "Download canceled",
|
||||||
"download_complete": "Téléchargement terminé",
|
"download_complete": "Download complete",
|
||||||
"download_enqueue": "Téléchargement en attente",
|
"download_enqueue": "Download enqueued",
|
||||||
"download_error": "Erreur de téléchargement",
|
"download_error": "Download Error",
|
||||||
"download_failed": "Téléchargement échoué",
|
"download_failed": "Download failed",
|
||||||
"download_filename": "fichier : {}",
|
"download_filename": "file: {}",
|
||||||
"download_finished": "Téléchargement terminé",
|
"download_finished": "Download finished",
|
||||||
"downloading": "Téléchargement...",
|
"downloading": "Downloading...",
|
||||||
"downloading_media": "Téléchargement du média",
|
"downloading_media": "Downloading media",
|
||||||
"download_notfound": "Téléchargement non trouvé",
|
"download_notfound": "Download not found",
|
||||||
"download_paused": "Téléchargement en pause",
|
"download_paused": "Download paused",
|
||||||
"download_started": "Téléchargement commencé",
|
"download_started": "Download started",
|
||||||
"download_sucess": "Téléchargement réussi",
|
"download_sucess": "Download success",
|
||||||
"download_sucess_android": "Le média a été téléchargé dans DCIM/Immich",
|
"download_sucess_android": "The media has been downloaded to DCIM/Immich",
|
||||||
"download_waiting_to_retry": "Téléchargement en attente du prochain essai",
|
"download_waiting_to_retry": "Waiting to retry",
|
||||||
"edit_date_time_dialog_date_time": "Date et heure",
|
"edit_date_time_dialog_date_time": "Date and Time",
|
||||||
"edit_date_time_dialog_search_timezone": "Rechercher le fuseau horaire...",
|
"edit_date_time_dialog_search_timezone": "Search timezone...",
|
||||||
"edit_date_time_dialog_timezone": "Fuseau horaire",
|
"edit_date_time_dialog_timezone": "Timezone",
|
||||||
"edit_image_title": "Modifier",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Localisation",
|
"edit_location_dialog_title": "Location",
|
||||||
"empty_folder": "Ce dossier est vide",
|
"end_date": "End date",
|
||||||
"end_date": "Date de fin",
|
"enqueued": "Enqueued",
|
||||||
"enqueued": "Mis en file",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
"enter_wifi_name": "Entrez le nom du réseau ",
|
"error_change_sort_album": "Failed to change album sort order",
|
||||||
"error_change_sort_album": "Impossible de modifier l'ordre de tri des albums",
|
"error_saving_image": "Error: {}",
|
||||||
"error_saving_image": "Erreur : {}",
|
|
||||||
"exif_bottom_sheet_description": "Ajouter une description...",
|
"exif_bottom_sheet_description": "Ajouter une description...",
|
||||||
"exif_bottom_sheet_details": "DÉTAILS",
|
"exif_bottom_sheet_details": "DÉTAILS",
|
||||||
"exif_bottom_sheet_location": "LOCALISATION",
|
"exif_bottom_sheet_location": "LOCALISATION",
|
||||||
"exif_bottom_sheet_location_add": "Ajouter un lieu",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PERSONNES",
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
"exif_bottom_sheet_person_add_person": "Ajouter un nom",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Âge {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "En cours de développement",
|
"experimental_settings_new_asset_list_subtitle": "En cours de développement",
|
||||||
"experimental_settings_new_asset_list_title": "Activer la grille de photos expérimentale",
|
"experimental_settings_new_asset_list_title": "Activer la grille de photos expérimentale",
|
||||||
"experimental_settings_subtitle": "Utilisez à vos dépends!",
|
"experimental_settings_subtitle": "Utilisez à vos dépends!",
|
||||||
"experimental_settings_title": "Expérimental",
|
"experimental_settings_title": "Expérimental",
|
||||||
"external_network": "Réseau externe",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "Quand vous n'êtes pas connecté à votre réseau préféré, l'application va tenter de se connecter aux adresses ci-dessous, en commençant par la première",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Échec",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Impossible de charger les ressources",
|
"favorites": "Favorites",
|
||||||
"failed_to_load_folder": "Impossible d'ouvrir le dossier",
|
|
||||||
"favorites": "Favoris",
|
|
||||||
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
||||||
"favorites_page_title": "Favoris",
|
"favorites_page_title": "Favoris",
|
||||||
"filename_search": "Nom de fichier ou extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filtres",
|
"filter": "Filter",
|
||||||
"folder": "Dossier",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"folder_not_found": "Dossier introuvable",
|
"grant_permission": "Grant permission",
|
||||||
"folders": "Dossiers",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"get_wifiname_error": "Impossible d'obtenir le nom du réseau Wi-Fi. Assurez-vous d'avoir donné les permissions nécessaires à l'application et que vous êtes connecté à un réseau Wi-Fi.",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"grant_permission": "Accorder les permissions ",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
"haptic_feedback_switch": "Activer le retour haptique",
|
"header_settings_field_validator_msg": "Value cannot be empty",
|
||||||
"haptic_feedback_title": "Retour haptique",
|
"header_settings_header_name_input": "Header name",
|
||||||
"header_settings_add_header_tip": "Ajouter un en-tête",
|
"header_settings_header_value_input": "Header value",
|
||||||
"header_settings_field_validator_msg": "Cette valeur ne peut pas être vide",
|
"header_settings_page_title": "Proxy Headers",
|
||||||
"header_settings_header_name_input": "Nom de l'en-tête",
|
"headers_settings_tile_subtitle": "Define proxy headers the app should send with each network request",
|
||||||
"header_settings_header_value_input": "Valeur de l'en-tête",
|
"headers_settings_tile_title": "Custom proxy headers",
|
||||||
"header_settings_page_title": "En-têtes de proxy",
|
|
||||||
"headers_settings_tile_subtitle": "Définir les en-têtes de proxy que l'application doit envoyer avec chaque requête réseau",
|
|
||||||
"headers_settings_tile_title": "En-têtes de proxy personnalisés",
|
|
||||||
"home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.",
|
"home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.",
|
||||||
"home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée",
|
"home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée",
|
||||||
"home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.",
|
"home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.",
|
||||||
"home_page_album_err_partner": "Il n'est pas encore possible d'ajouter des éléments d'un partenaire à un album.",
|
"home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
|
||||||
"home_page_archive_err_local": "Impossible d'archiver les ressources locales pour l'instant, étape ignorée",
|
"home_page_archive_err_local": "Impossible d'archiver les ressources locales pour l'instant, étape ignorée",
|
||||||
"home_page_archive_err_partner": "Impossible d'archiver les éléments d'un partenaire.",
|
"home_page_archive_err_partner": "Can not archive partner assets, skipping",
|
||||||
"home_page_building_timeline": "Construction de la chronologie",
|
"home_page_building_timeline": "Construction de la chronologie",
|
||||||
"home_page_delete_err_partner": "Ne peut pas supprimer les éléments d'un partenaire.",
|
"home_page_delete_err_partner": "Can not delete partner assets, skipping",
|
||||||
"home_page_delete_remote_err_local": "Des éléments locaux sont dans la sélection de suppression à distance, ils sont donc ignorés.",
|
"home_page_delete_remote_err_local": "Local assets in delete remote selection, skipping",
|
||||||
"home_page_favorite_err_local": "Impossible d'ajouter des éléments locaux aux favoris pour le moment, étape ignorée",
|
"home_page_favorite_err_local": "Impossible d'ajouter des éléments locaux aux favoris pour le moment, étape ignorée",
|
||||||
"home_page_favorite_err_partner": "Il n'est pas encore possible de mettre en favori les éléments d'un partenaire.",
|
"home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
|
||||||
"home_page_first_time_notice": "Si c'est la première fois que vous utilisez l'application, veillez à choisir un ou plusieurs albums de sauvegarde afin que la chronologie puisse alimenter les photos et les vidéos de cet ou ces albums.",
|
"home_page_first_time_notice": "Si c'est la première fois que vous utilisez l'application, veillez à choisir un ou plusieurs albums de sauvegarde afin que la chronologie puisse alimenter les photos et les vidéos de cet ou ces albums.",
|
||||||
"home_page_share_err_local": "Impossible de partager par lien les médias locaux, cette opération est donc ignorée.",
|
"home_page_share_err_local": "Can not share local assets via link, skipping",
|
||||||
"home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
|
"home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
|
||||||
"ignore_icloud_photos": "Ignorer les photos iCloud",
|
"ignore_icloud_photos": "Ignore iCloud photos",
|
||||||
"ignore_icloud_photos_description": "Les photos stockées sur iCloud ne sont pas enregistrées sur Immich",
|
"ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
|
||||||
"image_saved_successfully": "Image enregistré",
|
"image_saved_successfully": "Image saved",
|
||||||
"image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
|
"image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
|
||||||
"image_viewer_page_state_provider_download_started": "Téléchargement démarré",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Téléchargement réussi",
|
"image_viewer_page_state_provider_download_success": "Téléchargement réussi",
|
||||||
"image_viewer_page_state_provider_share_error": "Erreur de partage",
|
"image_viewer_page_state_provider_share_error": "Erreur de partage",
|
||||||
"invalid_date": "Date invalide",
|
"invalid_date": "Invalid date",
|
||||||
"invalid_date_format": "Format de date invalide",
|
"invalid_date_format": "Invalid date format",
|
||||||
"library": "Bibliothèque",
|
"library": "Library",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums sur l'appareil",
|
"library_page_device_albums": "Albums sur l'appareil",
|
||||||
"library_page_favorites": "Favoris",
|
"library_page_favorites": "Favoris",
|
||||||
"library_page_new_album": "Nouvel album",
|
"library_page_new_album": "Nouvel album",
|
||||||
"library_page_sharing": "Partage",
|
"library_page_sharing": "Partage",
|
||||||
"library_page_sort_asset_count": "Nombre d'éléments",
|
"library_page_sort_asset_count": "Number of assets",
|
||||||
"library_page_sort_created": "Créations les plus récentes",
|
"library_page_sort_created": "Créations les plus récentes",
|
||||||
"library_page_sort_last_modified": "Dernière modification",
|
"library_page_sort_last_modified": "Dernière modification",
|
||||||
"library_page_sort_most_oldest_photo": "Photo la plus ancienne",
|
"library_page_sort_most_oldest_photo": "Oldest photo",
|
||||||
"library_page_sort_most_recent_photo": "Photo la plus récente",
|
"library_page_sort_most_recent_photo": "Photo la plus récente",
|
||||||
"library_page_sort_title": "Titre de l'album",
|
"library_page_sort_title": "Titre de l'album",
|
||||||
"local_network": "Réseau local",
|
"local_network": "Local network",
|
||||||
"local_network_sheet_info": "L'application va se connecter au serveur via cette URL quand l'appareil est connecté à ce réseau Wi-Fi",
|
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
||||||
"location_permission": "Autorisation de localisation ",
|
"location_permission": "Location permission",
|
||||||
"location_permission_content": "Afin de pouvoir changer d'adresse automatiquement, Immich doit avoir accès à la localisation précise, afin d'accéder au le nom du réseau Wi-Fi utilisé",
|
"location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
|
||||||
"location_picker_choose_on_map": "Sélectionner sur la carte",
|
"location_picker_choose_on_map": "Choose on map",
|
||||||
"location_picker_latitude": "Latitude",
|
"location_picker_latitude": "Latitude",
|
||||||
"location_picker_latitude_error": "Saisir une latitude correcte",
|
"location_picker_latitude_error": "Enter a valid latitude",
|
||||||
"location_picker_latitude_hint": "Saisir la latitude ici",
|
"location_picker_latitude_hint": "Enter your latitude here",
|
||||||
"location_picker_longitude": "Longitude",
|
"location_picker_longitude": "Longitude",
|
||||||
"location_picker_longitude_error": "Saisir une longitude correcte",
|
"location_picker_longitude_error": "Enter a valid longitude",
|
||||||
"location_picker_longitude_hint": "Saisir la longitude ici",
|
"location_picker_longitude_hint": "Enter your longitude here",
|
||||||
"login_disabled": "La connexion a été désactivée ",
|
"login_disabled": "La connexion a été désactivée ",
|
||||||
"login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
|
"login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
|
||||||
"login_form_back_button_text": "Retour",
|
"login_form_back_button_text": "Back",
|
||||||
"login_form_button_text": "Connexion",
|
"login_form_button_text": "Connexion",
|
||||||
"login_form_email_hint": "votrecourriel@email.com",
|
"login_form_email_hint": "votrecourriel@email.com",
|
||||||
"login_form_endpoint_hint": "http://adresse-ip-serveur:port",
|
"login_form_endpoint_hint": "http://adresse-ip-serveur:port",
|
||||||
@@ -374,52 +363,52 @@
|
|||||||
"map_cannot_get_user_location": "Impossible d'obtenir la localisation de l'utilisateur",
|
"map_cannot_get_user_location": "Impossible d'obtenir la localisation de l'utilisateur",
|
||||||
"map_location_dialog_cancel": "Annuler",
|
"map_location_dialog_cancel": "Annuler",
|
||||||
"map_location_dialog_yes": "Oui",
|
"map_location_dialog_yes": "Oui",
|
||||||
"map_location_picker_page_use_location": "Utiliser ma position",
|
"map_location_picker_page_use_location": "Use this location",
|
||||||
"map_location_service_disabled_content": "Le service de localisation doit être activé pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'activer maintenant?",
|
"map_location_service_disabled_content": "Le service de localisation doit être activé pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'activer maintenant?",
|
||||||
"map_location_service_disabled_title": "Service de localisation désactivé",
|
"map_location_service_disabled_title": "Service de localisation désactivé",
|
||||||
"map_no_assets_in_bounds": "Pas de photos dans cette zone",
|
"map_no_assets_in_bounds": "Pas de photos dans cette zone",
|
||||||
"map_no_location_permission_content": "L'autorisation de localisation est nécessaire pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'autoriser maintenant?",
|
"map_no_location_permission_content": "L'autorisation de localisation est nécessaire pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'autoriser maintenant?",
|
||||||
"map_no_location_permission_title": "Permission de localisation refusée",
|
"map_no_location_permission_title": "Permission de localisation refusée",
|
||||||
"map_settings_dark_mode": "Mode sombre",
|
"map_settings_dark_mode": "Mode sombre",
|
||||||
"map_settings_date_range_option_all": "Tout",
|
"map_settings_date_range_option_all": "All",
|
||||||
"map_settings_date_range_option_day": "Dernières 24 heures",
|
"map_settings_date_range_option_day": "Past 24 hours",
|
||||||
"map_settings_date_range_option_days": "{} derniers jours",
|
"map_settings_date_range_option_days": "Past {} days",
|
||||||
"map_settings_date_range_option_year": "Année passée",
|
"map_settings_date_range_option_year": "Past year",
|
||||||
"map_settings_date_range_option_years": "{} dernières années",
|
"map_settings_date_range_option_years": "Past {} years",
|
||||||
"map_settings_dialog_cancel": "Annuler",
|
"map_settings_dialog_cancel": "Annuler",
|
||||||
"map_settings_dialog_save": "Sauvegarder",
|
"map_settings_dialog_save": "Sauvegarder",
|
||||||
"map_settings_dialog_title": "Paramètres de la carte",
|
"map_settings_dialog_title": "Paramètres de la carte",
|
||||||
"map_settings_include_show_archived": "Inclure les archives",
|
"map_settings_include_show_archived": "Inclure les archives",
|
||||||
"map_settings_include_show_partners": "Inclure les partenaires",
|
"map_settings_include_show_partners": "Include Partners",
|
||||||
"map_settings_only_relative_range": "Plage de dates",
|
"map_settings_only_relative_range": "Plage de dates",
|
||||||
"map_settings_only_show_favorites": "Afficher uniquement les favoris",
|
"map_settings_only_show_favorites": "Afficher uniquement les favoris",
|
||||||
"map_settings_theme_settings": "Thème de la carte",
|
"map_settings_theme_settings": "Map Theme",
|
||||||
"map_zoom_to_see_photos": "Dézoomer pour voir les photos",
|
"map_zoom_to_see_photos": "Dézoomer pour voir les photos",
|
||||||
"memories_all_caught_up": "Vous avez tout vu",
|
"memories_all_caught_up": "All caught up",
|
||||||
"memories_check_back_tomorrow": "Revenez demain pour d'autres souvenirs",
|
"memories_check_back_tomorrow": "Check back tomorrow for more memories",
|
||||||
"memories_start_over": "Recommencer",
|
"memories_start_over": "Start Over",
|
||||||
"memories_swipe_to_close": "Balayez vers le haut pour fermer",
|
"memories_swipe_to_close": "Swipe up to close",
|
||||||
"memories_year_ago": "Il y a un an",
|
"memories_year_ago": "A year ago",
|
||||||
"memories_years_ago": "Il y a {} ans",
|
"memories_years_ago": "{} years ago",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Photos avec mouvement",
|
"motion_photos_page_title": "Photos avec mouvement",
|
||||||
"multiselect_grid_edit_date_time_err_read_only": "Impossible de modifier la date d'un élément d'actif en lecture seule.",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Impossible de modifier l'emplacement d'un élément en lecture seule.",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"my_albums": "Mes albums",
|
"my_albums": "My albums",
|
||||||
"networking_settings": "Réseau ",
|
"networking_settings": "Networking",
|
||||||
"networking_subtitle": "Gérer les adresses du serveur",
|
"networking_subtitle": "Manage the server endpoint settings",
|
||||||
"no_assets_to_show": "Aucun élément à afficher",
|
"no_assets_to_show": "No assets to show",
|
||||||
"no_name": "Sans nom",
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Annuler",
|
"notification_permission_dialog_cancel": "Annuler",
|
||||||
"notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
|
"notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
|
||||||
"notification_permission_dialog_settings": "Paramètres",
|
"notification_permission_dialog_settings": "Paramètres",
|
||||||
"notification_permission_list_tile_content": "Accordez la permission d'activer les notifications.",
|
"notification_permission_list_tile_content": "Accordez la permission d'activer les notifications.",
|
||||||
"notification_permission_list_tile_enable_button": "Activer les notifications",
|
"notification_permission_list_tile_enable_button": "Activer les notifications",
|
||||||
"notification_permission_list_tile_title": "Permission de notification",
|
"notification_permission_list_tile_title": "Permission de notification",
|
||||||
"not_selected": "Non sélectionné",
|
"not_selected": "Not selected",
|
||||||
"on_this_device": "Sur cet appareil",
|
"on_this_device": "On this device",
|
||||||
"partner_list_user_photos": "Photos de {user}",
|
"partner_list_user_photos": "{user}'s photos",
|
||||||
"partner_list_view_all": "Voir tous",
|
"partner_list_view_all": "View all",
|
||||||
"partner_page_add_partner": "Ajouter un partenaire",
|
"partner_page_add_partner": "Ajouter un partenaire",
|
||||||
"partner_page_empty_message": "Vos photos ne sont pas encore partagées avec un partenaire.",
|
"partner_page_empty_message": "Vos photos ne sont pas encore partagées avec un partenaire.",
|
||||||
"partner_page_no_more_users": "Plus d'utilisateurs à ajouter",
|
"partner_page_no_more_users": "Plus d'utilisateurs à ajouter",
|
||||||
@@ -429,9 +418,9 @@
|
|||||||
"partner_page_stop_sharing_content": "{} ne pourra plus accéder à vos photos.",
|
"partner_page_stop_sharing_content": "{} ne pourra plus accéder à vos photos.",
|
||||||
"partner_page_stop_sharing_title": "Arrêter de partager vos photos?",
|
"partner_page_stop_sharing_title": "Arrêter de partager vos photos?",
|
||||||
"partner_page_title": "Partenaire",
|
"partner_page_title": "Partenaire",
|
||||||
"partners": "Partenaires",
|
"partners": "Partners",
|
||||||
"paused": "En pause",
|
"paused": "Paused",
|
||||||
"people": "Personnes",
|
"people": "People",
|
||||||
"permission_onboarding_back": "Retour",
|
"permission_onboarding_back": "Retour",
|
||||||
"permission_onboarding_continue_anyway": "Continuer quand même",
|
"permission_onboarding_continue_anyway": "Continuer quand même",
|
||||||
"permission_onboarding_get_started": "Commencer",
|
"permission_onboarding_get_started": "Commencer",
|
||||||
@@ -442,88 +431,88 @@
|
|||||||
"permission_onboarding_permission_granted": "Permission accordée! Vous êtes prêts.",
|
"permission_onboarding_permission_granted": "Permission accordée! Vous êtes prêts.",
|
||||||
"permission_onboarding_permission_limited": "Permission limitée. Pour permettre à Immich de sauvegarder et de gérer l'ensemble de votre bibliothèque, accordez l'autorisation pour les photos et vidéos dans les Paramètres.",
|
"permission_onboarding_permission_limited": "Permission limitée. Pour permettre à Immich de sauvegarder et de gérer l'ensemble de votre bibliothèque, accordez l'autorisation pour les photos et vidéos dans les Paramètres.",
|
||||||
"permission_onboarding_request": "Immich demande l'autorisation de visionner vos photos et vidéo",
|
"permission_onboarding_request": "Immich demande l'autorisation de visionner vos photos et vidéo",
|
||||||
"places": "Lieux",
|
"places": "Places",
|
||||||
"preferences_settings_subtitle": "Gérer les préférences de l'application",
|
"preferences_settings_subtitle": "Manage the app's preferences",
|
||||||
"preferences_settings_title": "Préférences",
|
"preferences_settings_title": "Preferences",
|
||||||
"profile_drawer_app_logs": "Journaux",
|
"profile_drawer_app_logs": "Journaux",
|
||||||
"profile_drawer_client_out_of_date_major": "L'application mobile est obsolète. Veuillez effectuer la mise à jour vers la dernière version majeure.",
|
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
|
||||||
"profile_drawer_client_out_of_date_minor": "L'application mobile est obsolète. Veuillez effectuer la mise à jour vers la dernière version mineure.",
|
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
|
||||||
"profile_drawer_client_server_up_to_date": "Le client et le serveur sont à jour",
|
"profile_drawer_client_server_up_to_date": "Le client et le serveur sont à jour",
|
||||||
"profile_drawer_documentation": "Documentation",
|
"profile_drawer_documentation": "Documentation",
|
||||||
"profile_drawer_github": "GitHub",
|
"profile_drawer_github": "GitHub",
|
||||||
"profile_drawer_server_out_of_date_major": "Le serveur est obsolète. Veuillez mettre à jour vers la dernière version majeure.",
|
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.",
|
||||||
"profile_drawer_server_out_of_date_minor": "Le serveur est obsolète. Veuillez mettre à jour vers la dernière version mineure.",
|
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.",
|
||||||
"profile_drawer_settings": "Paramètres",
|
"profile_drawer_settings": "Paramètres",
|
||||||
"profile_drawer_sign_out": "Se déconnecter",
|
"profile_drawer_sign_out": "Se déconnecter",
|
||||||
"profile_drawer_trash": "Corbeille",
|
"profile_drawer_trash": "Corbeille",
|
||||||
"recently_added": "Récemment ajouté",
|
"recently_added": "Recently added",
|
||||||
"recently_added_page_title": "Récemment ajouté",
|
"recently_added_page_title": "Récemment ajouté",
|
||||||
"save": "Enregistrer ",
|
"save": "Save",
|
||||||
"save_to_gallery": "Enregistrer",
|
"save_to_gallery": "Save to gallery",
|
||||||
"scaffold_body_error_occurred": "Une erreur s'est produite",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_albums": "Rechercher des albums",
|
"search_albums": "Search albums",
|
||||||
"search_bar_hint": "Rechercher vos photos",
|
"search_bar_hint": "Rechercher vos photos",
|
||||||
"search_filter_apply": "Appliquer le filtre",
|
"search_filter_apply": "Apply filter",
|
||||||
"search_filter_camera": "Appareil",
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Fabricant",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Modèle",
|
"search_filter_camera_model": "Model",
|
||||||
"search_filter_camera_title": "Sélectionner le type d'appareil",
|
"search_filter_camera_title": "Select camera type",
|
||||||
"search_filter_contextual": "Recherche contextuelle",
|
"search_filter_contextual": "Search by context",
|
||||||
"search_filter_date": "Date",
|
"search_filter_date": "Date",
|
||||||
"search_filter_date_interval": "{start} à {end}",
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
"search_filter_date_title": "Sélectionner une période",
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_description": "Recherche par description",
|
"search_filter_description": "Search by description",
|
||||||
"search_filter_display_option_archive": "Archivé",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favoris",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Pas dans un album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
"search_filter_display_options": "Options d'affichage",
|
"search_filter_display_options": "Display Options",
|
||||||
"search_filter_display_options_title": "Options d'affichage",
|
"search_filter_display_options_title": "Display options",
|
||||||
"search_filter_filename": "Recherche par nom de fichier",
|
"search_filter_filename": "Search by file name",
|
||||||
"search_filter_location": "Lieu",
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Ville",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Pays",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "Région",
|
"search_filter_location_state": "State",
|
||||||
"search_filter_location_title": "Sélectionner un lieu",
|
"search_filter_location_title": "Select location",
|
||||||
"search_filter_media_type": "Type de média",
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Tous",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
"search_filter_media_type_title": "Sélectionner type de média",
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Vidéo",
|
"search_filter_media_type_video": "Video",
|
||||||
"search_filter_people": "Personnes",
|
"search_filter_people": "People",
|
||||||
"search_filter_people_hint": "Filtrer par personne",
|
"search_filter_people_hint": "Filter people",
|
||||||
"search_filter_people_title": "Sélectionner une personne",
|
"search_filter_people_title": "Select people",
|
||||||
"search_no_more_result": "\nPlus de résultats",
|
"search_no_more_result": "No more results",
|
||||||
"search_no_result": "Aucun résultat trouvé, essayez un autre terme de recherche ou une autre combinaison",
|
"search_no_result": "No results found, try a different search term or combination",
|
||||||
"search_page_categories": "Catégories",
|
"search_page_categories": "Catégories",
|
||||||
"search_page_favorites": "Favoris",
|
"search_page_favorites": "Favoris",
|
||||||
"search_page_motion_photos": "Photos avec mouvement",
|
"search_page_motion_photos": "Photos avec mouvement",
|
||||||
"search_page_no_objects": "Aucune information disponible sur les objets",
|
"search_page_no_objects": "Aucune information disponible sur les objets",
|
||||||
"search_page_no_places": "Aucune information disponible sur la localisation",
|
"search_page_no_places": "Aucune information disponible sur la localisation",
|
||||||
"search_page_people": "Personnes",
|
"search_page_people": "Personnes",
|
||||||
"search_page_person_add_name_dialog_cancel": "Annuler",
|
"search_page_person_add_name_dialog_cancel": "Cancel",
|
||||||
"search_page_person_add_name_dialog_hint": "Nom",
|
"search_page_person_add_name_dialog_hint": "Name",
|
||||||
"search_page_person_add_name_dialog_save": "Enregistrer",
|
"search_page_person_add_name_dialog_save": "Save",
|
||||||
"search_page_person_add_name_dialog_title": "Ajouter un nom",
|
"search_page_person_add_name_dialog_title": "Add a name",
|
||||||
"search_page_person_add_name_subtitle": "Retrouver les rapidement via la recherche par nom",
|
"search_page_person_add_name_subtitle": "Find them fast by name with search",
|
||||||
"search_page_person_add_name_title": "Ajouter un nom",
|
"search_page_person_add_name_title": "Add a name",
|
||||||
"search_page_person_edit_name": "Modifier le nom",
|
"search_page_person_edit_name": "Edit name",
|
||||||
"search_page_places": "Lieux",
|
"search_page_places": "Lieux",
|
||||||
"search_page_recently_added": "Récemment ajouté",
|
"search_page_recently_added": "Récemment ajouté",
|
||||||
"search_page_screenshots": "Captures d'écran",
|
"search_page_screenshots": "Captures d'écran",
|
||||||
"search_page_search_photos_videos": "Rechercher dans vos photos et vidéos",
|
"search_page_search_photos_videos": "Search for your photos and videos",
|
||||||
"search_page_selfies": "Selfies",
|
"search_page_selfies": "Selfies",
|
||||||
"search_page_things": "Objets",
|
"search_page_things": "Objets",
|
||||||
"search_page_videos": "Vidéos",
|
"search_page_videos": "Vidéos",
|
||||||
"search_page_view_all_button": "Voir tout",
|
"search_page_view_all_button": "Voir tout",
|
||||||
"search_page_your_activity": "Votre activité",
|
"search_page_your_activity": "Votre activité",
|
||||||
"search_page_your_map": "Votre carte",
|
"search_page_your_map": "Your Map",
|
||||||
"search_result_page_new_search_hint": "Nouvelle recherche",
|
"search_result_page_new_search_hint": "Nouvelle recherche",
|
||||||
"search_suggestion_list_smart_search_hint_1": "La recherche intelligente est activée par défaut. Pour rechercher des métadonnées, utilisez la syntaxe suivante",
|
"search_suggestion_list_smart_search_hint_1": "La recherche intelligente est activée par défaut. Pour rechercher des métadonnées, utilisez la syntaxe suivante",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:votre-terme-de-recherche",
|
"search_suggestion_list_smart_search_hint_2": "m:votre-terme-de-recherche",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Suggestions",
|
"select_additional_user_for_sharing_page_suggestions": "Suggestions",
|
||||||
"select_user_for_sharing_page_err_album": "Échec de la création de l'album",
|
"select_user_for_sharing_page_err_album": "Échec de la création de l'album",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
||||||
"server_endpoint": "Adresse du serveur",
|
"server_endpoint": "Server Endpoint",
|
||||||
"server_info_box_app_version": "Version de l'application",
|
"server_info_box_app_version": "Version de l'application",
|
||||||
"server_info_box_latest_release": "Dernière version",
|
"server_info_box_latest_release": "Dernière version",
|
||||||
"server_info_box_server_url": "URL du serveur",
|
"server_info_box_server_url": "URL du serveur",
|
||||||
@@ -534,9 +523,9 @@
|
|||||||
"setting_image_viewer_preview_subtitle": "Activer pour charger une image de résolution moyenne. Désactiver pour charger directement l'original ou utiliser uniquement la vignette.",
|
"setting_image_viewer_preview_subtitle": "Activer pour charger une image de résolution moyenne. Désactiver pour charger directement l'original ou utiliser uniquement la vignette.",
|
||||||
"setting_image_viewer_preview_title": "Charger l'image d'aperçu",
|
"setting_image_viewer_preview_title": "Charger l'image d'aperçu",
|
||||||
"setting_image_viewer_title": "Images",
|
"setting_image_viewer_title": "Images",
|
||||||
"setting_languages_apply": "Appliquer",
|
"setting_languages_apply": "Apply",
|
||||||
"setting_languages_subtitle": "Changer la langue de l'application",
|
"setting_languages_subtitle": "Change the app's language",
|
||||||
"setting_languages_title": "Langues",
|
"setting_languages_title": "Languages",
|
||||||
"setting_notifications_notify_failures_grace_period": "Notifier les échecs de la sauvegarde en arrière-plan: {}",
|
"setting_notifications_notify_failures_grace_period": "Notifier les échecs de la sauvegarde en arrière-plan: {}",
|
||||||
"setting_notifications_notify_hours": "{} heures",
|
"setting_notifications_notify_hours": "{} heures",
|
||||||
"setting_notifications_notify_immediately": "immédiatement",
|
"setting_notifications_notify_immediately": "immédiatement",
|
||||||
@@ -551,15 +540,15 @@
|
|||||||
"setting_notifications_total_progress_title": "Afficher la progression totale de la sauvegarde en arrière-plan",
|
"setting_notifications_total_progress_title": "Afficher la progression totale de la sauvegarde en arrière-plan",
|
||||||
"setting_pages_app_bar_settings": "Paramètres",
|
"setting_pages_app_bar_settings": "Paramètres",
|
||||||
"settings_require_restart": "Veuillez redémarrer Immich pour appliquer ce paramètre",
|
"settings_require_restart": "Veuillez redémarrer Immich pour appliquer ce paramètre",
|
||||||
"setting_video_viewer_looping_subtitle": "Activer pour voir les vidéos en boucle dans le lecteur détaillé",
|
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
|
||||||
"setting_video_viewer_looping_title": "Boucle",
|
"setting_video_viewer_looping_title": "Looping",
|
||||||
"setting_video_viewer_original_video_subtitle": "Lors de la diffusion d'une vidéo depuis le serveur, lisez l'original même si un transcodage est disponible. Cela peut entraîner de la mise en mémoire tampon. Les vidéos disponibles localement sont lues en qualité d'origine, quel que soit ce paramètre.",
|
"setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
|
||||||
"setting_video_viewer_original_video_title": "Forcer la vidéo originale",
|
"setting_video_viewer_original_video_title": "Force original video",
|
||||||
"setting_video_viewer_title": "Vidéos",
|
"setting_video_viewer_title": "Videos",
|
||||||
"share_add": "Ajouter",
|
"share_add": "Ajouter",
|
||||||
"share_add_photos": "Ajouter des photos",
|
"share_add_photos": "Ajouter des photos",
|
||||||
"share_add_title": "Ajouter un titre",
|
"share_add_title": "Ajouter un titre",
|
||||||
"share_assets_selected": "{} séléctionné(s)",
|
"share_assets_selected": "{} selected",
|
||||||
"share_create_album": "Créer un album",
|
"share_create_album": "Créer un album",
|
||||||
"shared_album_activities_input_disable": "Les commentaires sont désactivés",
|
"shared_album_activities_input_disable": "Les commentaires sont désactivés",
|
||||||
"shared_album_activities_input_hint": "Dire quelque chose",
|
"shared_album_activities_input_hint": "Dire quelque chose",
|
||||||
@@ -567,18 +556,18 @@
|
|||||||
"shared_album_activity_remove_title": "Supprimer l'activité",
|
"shared_album_activity_remove_title": "Supprimer l'activité",
|
||||||
"shared_album_activity_setting_subtitle": "Laisser les autres réagir",
|
"shared_album_activity_setting_subtitle": "Laisser les autres réagir",
|
||||||
"shared_album_activity_setting_title": "Commentaires et likes",
|
"shared_album_activity_setting_title": "Commentaires et likes",
|
||||||
"shared_album_section_people_action_error": "Erreur lors de la suppression",
|
"shared_album_section_people_action_error": "Error leaving/removing from album",
|
||||||
"shared_album_section_people_action_leave": "Supprimer l'utilisateur de l'album",
|
"shared_album_section_people_action_leave": "Remove user from album",
|
||||||
"shared_album_section_people_action_remove_user": "Supprimer l'utilisateur de l'album",
|
"shared_album_section_people_action_remove_user": "Remove user from album",
|
||||||
"shared_album_section_people_owner_label": "Propriétaire",
|
"shared_album_section_people_owner_label": "Owner",
|
||||||
"shared_album_section_people_title": "PERSONNES",
|
"shared_album_section_people_title": "PEOPLE",
|
||||||
"share_dialog_preparing": "Préparation...",
|
"share_dialog_preparing": "Préparation...",
|
||||||
"shared_intent_upload_button_progress_text": "{} / {} Téléversé",
|
"shared_intent_upload_button_progress_text": "{} / {} Uploaded",
|
||||||
"shared_link_app_bar_title": "Liens partagés",
|
"shared_link_app_bar_title": "Liens partagés",
|
||||||
"shared_link_clipboard_copied_massage": "Copié dans le presse-papier\n",
|
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||||
"shared_link_clipboard_text": "\nLien : {}\nMot de passe : {}",
|
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
||||||
"shared_link_create_app_bar_title": "Créer un lien pour partager",
|
"shared_link_create_app_bar_title": "Créer un lien pour partager",
|
||||||
"shared_link_create_error": "Erreur pendant la création du lien partagé",
|
"shared_link_create_error": "Error while creating shared link",
|
||||||
"shared_link_create_info": "Permettre à toute personne ayant le lien de voir la ou les photos sélectionnées",
|
"shared_link_create_info": "Permettre à toute personne ayant le lien de voir la ou les photos sélectionnées",
|
||||||
"shared_link_create_submit_button": "Créer le lien",
|
"shared_link_create_submit_button": "Créer le lien",
|
||||||
"shared_link_edit_allow_download": "Autoriser les utilisateurs publics à télécharger",
|
"shared_link_edit_allow_download": "Autoriser les utilisateurs publics à télécharger",
|
||||||
@@ -588,40 +577,40 @@
|
|||||||
"shared_link_edit_description": "Description",
|
"shared_link_edit_description": "Description",
|
||||||
"shared_link_edit_description_hint": "Saisir la description du partage",
|
"shared_link_edit_description_hint": "Saisir la description du partage",
|
||||||
"shared_link_edit_expire_after": "Expire après",
|
"shared_link_edit_expire_after": "Expire après",
|
||||||
"shared_link_edit_expire_after_option_day": "1 jour",
|
"shared_link_edit_expire_after_option_day": "1 day",
|
||||||
"shared_link_edit_expire_after_option_days": "{} jours",
|
"shared_link_edit_expire_after_option_days": "{} days",
|
||||||
"shared_link_edit_expire_after_option_hour": "1 heure",
|
"shared_link_edit_expire_after_option_hour": "1 hour",
|
||||||
"shared_link_edit_expire_after_option_hours": "{} heures",
|
"shared_link_edit_expire_after_option_hours": "{} hours",
|
||||||
"shared_link_edit_expire_after_option_minute": "1 minute",
|
"shared_link_edit_expire_after_option_minute": "1 minute",
|
||||||
"shared_link_edit_expire_after_option_minutes": "{} minutes",
|
"shared_link_edit_expire_after_option_minutes": "{} minutes",
|
||||||
"shared_link_edit_expire_after_option_months": "{} mois",
|
"shared_link_edit_expire_after_option_months": "{} months",
|
||||||
"shared_link_edit_expire_after_option_never": "Jamais",
|
"shared_link_edit_expire_after_option_never": "Never",
|
||||||
"shared_link_edit_expire_after_option_year": "{} ans",
|
"shared_link_edit_expire_after_option_year": "{} year",
|
||||||
"shared_link_edit_password": "Mot de passe",
|
"shared_link_edit_password": "Mot de passe",
|
||||||
"shared_link_edit_password_hint": "Saisir le mot de passe de partage",
|
"shared_link_edit_password_hint": "Saisir le mot de passe de partage",
|
||||||
"shared_link_edit_show_meta": "Afficher les métadonnées",
|
"shared_link_edit_show_meta": "Afficher les métadonnées",
|
||||||
"shared_link_edit_submit_button": "Mettre à jour le lien",
|
"shared_link_edit_submit_button": "Mettre à jour le lien",
|
||||||
"shared_link_empty": "Vous n'avez pas de liens partagés",
|
"shared_link_empty": "Vous n'avez pas de liens partagés",
|
||||||
"shared_link_error_server_url_fetch": "Impossible de récupérer l'url du serveur",
|
"shared_link_error_server_url_fetch": "Cannot fetch the server url",
|
||||||
"shared_link_expired": "Expiré",
|
"shared_link_expired": "Expired",
|
||||||
"shared_link_expires_day": "Expire dans {} jour",
|
"shared_link_expires_day": "Expires in {} day",
|
||||||
"shared_link_expires_days": "Expire dans {} jours",
|
"shared_link_expires_days": "Expires in {} days",
|
||||||
"shared_link_expires_hour": "Expire dans {} heure",
|
"shared_link_expires_hour": "Expires in {} hour",
|
||||||
"shared_link_expires_hours": "Expire dans {} heures",
|
"shared_link_expires_hours": "Expires in {} hours",
|
||||||
"shared_link_expires_minute": "Expire dans {} minute",
|
"shared_link_expires_minute": "Expires in {} minute",
|
||||||
"shared_link_expires_minutes": "Expire dans {} minutes",
|
"shared_link_expires_minutes": "Expires in {} minutes",
|
||||||
"shared_link_expires_never": "Expire ∞",
|
"shared_link_expires_never": "Expires ∞",
|
||||||
"shared_link_expires_second": "Expire dans {} seconde",
|
"shared_link_expires_second": "Expires in {} second",
|
||||||
"shared_link_expires_seconds": "Expire dans {} secondes",
|
"shared_link_expires_seconds": "Expires in {} seconds",
|
||||||
"shared_link_individual_shared": "Partagé individuellement",
|
"shared_link_individual_shared": "Individual shared",
|
||||||
"shared_link_info_chip_download": "Téléchargement",
|
"shared_link_info_chip_download": "Download",
|
||||||
"shared_link_info_chip_metadata": "EXIF",
|
"shared_link_info_chip_metadata": "EXIF",
|
||||||
"shared_link_info_chip_upload": "Téléversement",
|
"shared_link_info_chip_upload": "Upload",
|
||||||
"shared_link_manage_links": "Gérer les liens partagés",
|
"shared_link_manage_links": "Gérer les liens partagés",
|
||||||
"shared_link_public_album": "Album public",
|
"shared_link_public_album": "Public album",
|
||||||
"shared_links": "Liens partagés",
|
"shared_links": "Shared links",
|
||||||
"share_done": "Fait",
|
"share_done": "Fait",
|
||||||
"shared_with_me": "Partagé avec moi",
|
"shared_with_me": "Shared with me",
|
||||||
"share_invite": "Inviter à l'album",
|
"share_invite": "Inviter à l'album",
|
||||||
"sharing_page_album": "Albums partagés",
|
"sharing_page_album": "Albums partagés",
|
||||||
"sharing_page_description": "Créez des albums partagés pour partager des photos et des vidéos avec les personnes de votre réseau.",
|
"sharing_page_description": "Créez des albums partagés pour partager des photos et des vidéos avec les personnes de votre réseau.",
|
||||||
@@ -629,33 +618,33 @@
|
|||||||
"sharing_silver_appbar_create_shared_album": "Créer un album partagé",
|
"sharing_silver_appbar_create_shared_album": "Créer un album partagé",
|
||||||
"sharing_silver_appbar_shared_links": "Liens partagés",
|
"sharing_silver_appbar_shared_links": "Liens partagés",
|
||||||
"sharing_silver_appbar_share_partner": "Partager avec un partenaire",
|
"sharing_silver_appbar_share_partner": "Partager avec un partenaire",
|
||||||
"start_date": "Date de début",
|
"start_date": "Start date",
|
||||||
"sync": "Synchroniser",
|
"sync": "Sync",
|
||||||
"sync_albums": "Synchroniser dans des albums",
|
"sync_albums": "Sync albums",
|
||||||
"sync_albums_manual_subtitle": "Synchroniser toutes les vidéos et photos sauvegardées dans les albums sélectionnés",
|
"sync_albums_manual_subtitle": "Sync all uploaded videos and photos to the selected backup albums",
|
||||||
"sync_upload_album_setting_subtitle": "Créer et sauvegarde vos photos et vidéos dans les albums sélectionnés sur Immich",
|
"sync_upload_album_setting_subtitle": "Create and upload your photos and videos to the selected albums on Immich",
|
||||||
"tab_controller_nav_library": "Bibliothèque",
|
"tab_controller_nav_library": "Bibliothèque",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Photos",
|
||||||
"tab_controller_nav_search": "Recherche",
|
"tab_controller_nav_search": "Recherche",
|
||||||
"tab_controller_nav_sharing": "Partage",
|
"tab_controller_nav_sharing": "Partage",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
|
"theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Nombre d'éléments par ligne ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Nombre d'éléments par ligne ({})",
|
||||||
"theme_setting_colorful_interface_subtitle": "Appliquer la couleur principale sur les surfaces d'arrière-plan.",
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
"theme_setting_colorful_interface_title": "Interface colorée",
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Mode sombre",
|
"theme_setting_dark_mode_switch": "Mode sombre",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées",
|
||||||
"theme_setting_image_viewer_quality_title": "Qualité de la visualisation des images",
|
"theme_setting_image_viewer_quality_title": "Qualité de la visualisation des images",
|
||||||
"theme_setting_primary_color_subtitle": "Choisissez une couleur pour les actions principales et les accentuations.",
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
"theme_setting_primary_color_title": "Couleur principale",
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
"theme_setting_system_primary_color_title": "Utiliser la couleur du système",
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)",
|
"theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)",
|
||||||
"theme_setting_theme_subtitle": "Choisissez le thème de l'application",
|
"theme_setting_theme_subtitle": "Choisissez le thème de l'application",
|
||||||
"theme_setting_theme_title": "Thème",
|
"theme_setting_theme_title": "Thème",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau.",
|
"theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau.",
|
||||||
"theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes",
|
"theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes",
|
||||||
"translated_text_options": "Options",
|
"translated_text_options": "Options",
|
||||||
"trash": "Corbeille",
|
"trash": "Trash",
|
||||||
"trash_emptied": "Corbeille vidée",
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Supprimer",
|
"trash_page_delete": "Supprimer",
|
||||||
"trash_page_delete_all": "Tout supprimer",
|
"trash_page_delete_all": "Tout supprimer",
|
||||||
"trash_page_empty_trash_btn": "Vider la corbeille",
|
"trash_page_empty_trash_btn": "Vider la corbeille",
|
||||||
@@ -668,25 +657,25 @@
|
|||||||
"trash_page_select_assets_btn": "Sélectionner les éléments",
|
"trash_page_select_assets_btn": "Sélectionner les éléments",
|
||||||
"trash_page_select_btn": "Sélectionner",
|
"trash_page_select_btn": "Sélectionner",
|
||||||
"trash_page_title": "Corbeille ({})",
|
"trash_page_title": "Corbeille ({})",
|
||||||
"upload": "Téléverser",
|
"upload": "Upload",
|
||||||
"upload_dialog_cancel": "Annuler",
|
"upload_dialog_cancel": "Annuler",
|
||||||
"upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur?",
|
"upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur?",
|
||||||
"upload_dialog_ok": "Télécharger ",
|
"upload_dialog_ok": "Télécharger ",
|
||||||
"upload_dialog_title": "Télécharger cet élément ",
|
"upload_dialog_title": "Télécharger cet élément ",
|
||||||
"uploading": "Téléversement en cours",
|
"uploading": "Uploading",
|
||||||
"upload_to_immich": "Téléverser vers Immich ({})",
|
"upload_to_immich": "Upload to Immich ({})",
|
||||||
"use_current_connection": "Utiliser le réseau actuel ",
|
"use_current_connection": "use current connection",
|
||||||
"validate_endpoint_error": "Merci d'entrer un lien valide",
|
"validate_endpoint_error": "Please enter a valid URL",
|
||||||
"version_announcement_overlay_ack": "Confirmer",
|
"version_announcement_overlay_ack": "Confirmer",
|
||||||
"version_announcement_overlay_release_notes": "notes de mise à jour",
|
"version_announcement_overlay_release_notes": "notes de mise à jour",
|
||||||
"version_announcement_overlay_text_1": "Bonjour, une nouvelle version de",
|
"version_announcement_overlay_text_1": "Bonjour, une nouvelle version de",
|
||||||
"version_announcement_overlay_text_2": "veuillez prendre le temps de visiter le ",
|
"version_announcement_overlay_text_2": "veuillez prendre le temps de visiter le ",
|
||||||
"version_announcement_overlay_text_3": " et assurez-vous que votre configuration docker-compose et .env est à jour pour éviter toute erreur de configuration, en particulier si vous utilisez WatchTower ou tout autre mécanisme qui gère la mise à jour automatique de votre application serveur.",
|
"version_announcement_overlay_text_3": " et assurez-vous que votre configuration docker-compose et .env est à jour pour éviter toute erreur de configuration, en particulier si vous utilisez WatchTower ou tout autre mécanisme qui gère la mise à jour automatique de votre application serveur.",
|
||||||
"version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89",
|
"version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89",
|
||||||
"videos": "Vidéos",
|
"videos": "Videos",
|
||||||
"viewer_remove_from_stack": "Retirer de la pile",
|
"viewer_remove_from_stack": "Retirer de la pile",
|
||||||
"viewer_stack_use_as_main_asset": "Utiliser comme élément principal",
|
"viewer_stack_use_as_main_asset": "Utiliser comme élément principal",
|
||||||
"viewer_unstack": "Désempiler",
|
"viewer_unstack": "Désempiler",
|
||||||
"wifi_name": "Nom du réseau ",
|
"wifi_name": "WiFi Name",
|
||||||
"your_wifi_name": "Nom du réseau Wi-Fi "
|
"your_wifi_name": "Your WiFi name"
|
||||||
}
|
}
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
"asset_restored_successfully": "Élément restauré avec succès",
|
"asset_restored_successfully": "Élément restauré avec succès",
|
||||||
"assets_deleted_permanently": "{} élément(s) supprimé(s) définitivement",
|
"assets_deleted_permanently": "{} élément(s) supprimé(s) définitivement",
|
||||||
"assets_deleted_permanently_from_server": "{} élément(s) supprimé(s) définitivement du serveur Immich",
|
"assets_deleted_permanently_from_server": "{} élément(s) supprimé(s) définitivement du serveur Immich",
|
||||||
"assets_removed_permanently_from_device": "{} élément(s) supprimé(s) définitivement de votre appareil",
|
"assets_removed_permanently_from_device": "\"{} élément(s) supprimé(s) définitivement de votre appareil",
|
||||||
"assets_restored_successfully": "Élément restauré avec succès",
|
"assets_restored_successfully": "Élément restauré avec succès",
|
||||||
"assets_trashed": "{} élément(s) déplacé(s) vers la corbeille",
|
"assets_trashed": "{} élément(s) déplacé(s) vers la corbeille",
|
||||||
"assets_trashed_from_server": "{} élément(s) déplacé(s) vers la corbeille du serveur Immich",
|
"assets_trashed_from_server": "{} élément(s) déplacé(s) vers la corbeille du serveur Immich",
|
||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Modifier la date et l'heure",
|
"control_bottom_app_bar_edit_time": "Modifier la date et l'heure",
|
||||||
"control_bottom_app_bar_favorite": "Favoris",
|
"control_bottom_app_bar_favorite": "Favoris",
|
||||||
"control_bottom_app_bar_share": "Partager",
|
"control_bottom_app_bar_share": "Partager",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Partager à",
|
"control_bottom_app_bar_share_to": "Partager à",
|
||||||
"control_bottom_app_bar_stack": "Empiler",
|
"control_bottom_app_bar_stack": "Empiler",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Déplacer vers la corbeille",
|
"control_bottom_app_bar_trash_from_immich": "Déplacer vers la corbeille",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Fuseau horaire",
|
"edit_date_time_dialog_timezone": "Fuseau horaire",
|
||||||
"edit_image_title": "Modifier",
|
"edit_image_title": "Modifier",
|
||||||
"edit_location_dialog_title": "Localisation",
|
"edit_location_dialog_title": "Localisation",
|
||||||
"empty_folder": "Ce dossier est vide",
|
|
||||||
"end_date": "Date de fin",
|
"end_date": "Date de fin",
|
||||||
"enqueued": "Mis en file",
|
"enqueued": "Mis en file",
|
||||||
"enter_wifi_name": "Entrez le nom du réseau ",
|
"enter_wifi_name": "Entrez le nom du réseau ",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Ajouter un lieu",
|
"exif_bottom_sheet_location_add": "Ajouter un lieu",
|
||||||
"exif_bottom_sheet_people": "PERSONNES",
|
"exif_bottom_sheet_people": "PERSONNES",
|
||||||
"exif_bottom_sheet_person_add_person": "Ajouter un nom",
|
"exif_bottom_sheet_person_add_person": "Ajouter un nom",
|
||||||
"exif_bottom_sheet_person_age": "Âge {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "En cours de développement",
|
"experimental_settings_new_asset_list_subtitle": "En cours de développement",
|
||||||
"experimental_settings_new_asset_list_title": "Activer la grille de photos expérimentale",
|
"experimental_settings_new_asset_list_title": "Activer la grille de photos expérimentale",
|
||||||
"experimental_settings_subtitle": "Utilisez à vos dépends !",
|
"experimental_settings_subtitle": "Utilisez à vos dépends !",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "Réseau externe",
|
"external_network": "Réseau externe",
|
||||||
"external_network_sheet_info": "Quand vous n'êtes pas connecté à votre réseau préféré, l'application va tenter de se connecter aux adresses ci-dessous, en commençant par la première",
|
"external_network_sheet_info": "Quand vous n'êtes pas connecté à votre réseau préféré, l'application va tenter de se connecter aux adresses ci-dessous, en commençant par la première",
|
||||||
"failed": "Échec",
|
"failed": "Échec",
|
||||||
"failed_to_load_assets": "Impossible de charger les ressources",
|
|
||||||
"failed_to_load_folder": "Impossible d'ouvrir le dossier",
|
|
||||||
"favorites": "Favoris",
|
"favorites": "Favoris",
|
||||||
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
||||||
"favorites_page_title": "Favoris",
|
"favorites_page_title": "Favoris",
|
||||||
"filename_search": "Nom de fichier ou extension",
|
"filename_search": "Nom de fichier ou extension",
|
||||||
"filter": "Filtres",
|
"filter": "Filtres",
|
||||||
"folder": "Dossier",
|
|
||||||
"folder_not_found": "Dossier introuvable",
|
|
||||||
"folders": "Dossiers",
|
|
||||||
"get_wifiname_error": "Impossible d'obtenir le nom du réseau Wi-Fi. Assurez-vous d'avoir donné les permissions nécessaires à l'application et que vous êtes connecté à un réseau Wi-Fi.",
|
"get_wifiname_error": "Impossible d'obtenir le nom du réseau Wi-Fi. Assurez-vous d'avoir donné les permissions nécessaires à l'application et que vous êtes connecté à un réseau Wi-Fi.",
|
||||||
"grant_permission": "Accorder les permissions ",
|
"grant_permission": "Accorder les permissions ",
|
||||||
"haptic_feedback_switch": "Activer le retour haptique",
|
"haptic_feedback_switch": "Activer le retour haptique",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Share To",
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
"control_bottom_app_bar_stack": "Stack",
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Timezone",
|
"edit_date_time_dialog_timezone": "Timezone",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Location",
|
"edit_location_dialog_title": "Location",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Add a location",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PEOPLE",
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "ערוך תאריך & זמן",
|
"control_bottom_app_bar_edit_time": "ערוך תאריך & זמן",
|
||||||
"control_bottom_app_bar_favorite": "הוסף למועדפים",
|
"control_bottom_app_bar_favorite": "הוסף למועדפים",
|
||||||
"control_bottom_app_bar_share": "שתף",
|
"control_bottom_app_bar_share": "שתף",
|
||||||
"control_bottom_app_bar_share_link": "שתף קישור",
|
|
||||||
"control_bottom_app_bar_share_to": "שתף עם",
|
"control_bottom_app_bar_share_to": "שתף עם",
|
||||||
"control_bottom_app_bar_stack": "ערימה",
|
"control_bottom_app_bar_stack": "ערימה",
|
||||||
"control_bottom_app_bar_trash_from_immich": "העבר לאשפה",
|
"control_bottom_app_bar_trash_from_immich": "העבר לאשפה",
|
||||||
@@ -232,7 +231,7 @@
|
|||||||
"delete_shared_link_dialog_title": "מחק קישור משותף",
|
"delete_shared_link_dialog_title": "מחק קישור משותף",
|
||||||
"description_input_hint_text": "הוסף תיאור...",
|
"description_input_hint_text": "הוסף תיאור...",
|
||||||
"description_input_submit_error": "שגיאה בעדכון תיאור, בדוק את היומן לפרטים נוספים",
|
"description_input_submit_error": "שגיאה בעדכון תיאור, בדוק את היומן לפרטים נוספים",
|
||||||
"description_search": "יום טיול בסאפה",
|
"description_search": "Hiking day in Sapa",
|
||||||
"download_canceled": "הורדה בוטלה",
|
"download_canceled": "הורדה בוטלה",
|
||||||
"download_complete": "הורדה הושלמה",
|
"download_complete": "הורדה הושלמה",
|
||||||
"download_enqueue": "הורדה נוספה לתור",
|
"download_enqueue": "הורדה נוספה לתור",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "אזור זמן",
|
"edit_date_time_dialog_timezone": "אזור זמן",
|
||||||
"edit_image_title": "ערוך",
|
"edit_image_title": "ערוך",
|
||||||
"edit_location_dialog_title": "מיקום",
|
"edit_location_dialog_title": "מיקום",
|
||||||
"empty_folder": "תיקיה זו ריקה",
|
|
||||||
"end_date": "תאריך סיום",
|
"end_date": "תאריך סיום",
|
||||||
"enqueued": "הוצבו בתור",
|
"enqueued": "הוצבו בתור",
|
||||||
"enter_wifi_name": "הזן שם אינטרנט אלחוטי",
|
"enter_wifi_name": "הזן שם אינטרנט אלחוטי",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "הוסף מיקום",
|
"exif_bottom_sheet_location_add": "הוסף מיקום",
|
||||||
"exif_bottom_sheet_people": "אנשים",
|
"exif_bottom_sheet_people": "אנשים",
|
||||||
"exif_bottom_sheet_person_add_person": "הוסף שם",
|
"exif_bottom_sheet_person_add_person": "הוסף שם",
|
||||||
"exif_bottom_sheet_person_age": "גיל {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "גיל {} חודשים",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "גיל שנה, {} חודשים",
|
|
||||||
"exif_bottom_sheet_person_age_years": "גיל {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "עבודה בתהליך",
|
"experimental_settings_new_asset_list_subtitle": "עבודה בתהליך",
|
||||||
"experimental_settings_new_asset_list_title": "אפשר רשת תמונות ניסיונית",
|
"experimental_settings_new_asset_list_title": "אפשר רשת תמונות ניסיונית",
|
||||||
"experimental_settings_subtitle": "השימוש הוא על אחריותך בלבד!",
|
"experimental_settings_subtitle": "השימוש הוא על אחריותך בלבד!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "רשת חיצונית",
|
"external_network": "רשת חיצונית",
|
||||||
"external_network_sheet_info": "כאשר לא על רשת האינטרנט האלחוטי המועדפת, היישום יתחבר לשרת דרך הכתובת הראשונה שניתן להשיג מהכתובות שלהלן, החל מלמעלה למטה",
|
"external_network_sheet_info": "כאשר לא על רשת האינטרנט האלחוטי המועדפת, היישום יתחבר לשרת דרך הכתובת הראשונה שניתן להשיג מהכתובות שלהלן, החל מלמעלה למטה",
|
||||||
"failed": "נכשלו",
|
"failed": "נכשלו",
|
||||||
"failed_to_load_assets": "טעינת נכסים נכשלה",
|
|
||||||
"failed_to_load_folder": "טעינת תיקיה נכשלה",
|
|
||||||
"favorites": "מועדפים",
|
"favorites": "מועדפים",
|
||||||
"favorites_page_no_favorites": "לא נמצאו נכסים מועדפים",
|
"favorites_page_no_favorites": "לא נמצאו נכסים מועדפים",
|
||||||
"favorites_page_title": "מועדפים",
|
"favorites_page_title": "מועדפים",
|
||||||
"filename_search": "שם קובץ או סיומת",
|
"filename_search": "שם קובץ או סיומת",
|
||||||
"filter": "סנן",
|
"filter": "סנן",
|
||||||
"folder": "תיקיה",
|
|
||||||
"folder_not_found": "תיקיה לא נמצאה",
|
|
||||||
"folders": "תיקיות",
|
|
||||||
"get_wifiname_error": "לא היה ניתן לקבל את שם האינטרנט האלחוטי שלך. יש לודא שהענקת את ההרשאות הדרושות ושאת/ה מחובר/ת לרשת אינטרנט אלחוטי",
|
"get_wifiname_error": "לא היה ניתן לקבל את שם האינטרנט האלחוטי שלך. יש לודא שהענקת את ההרשאות הדרושות ושאת/ה מחובר/ת לרשת אינטרנט אלחוטי",
|
||||||
"grant_permission": "להעניק הרשאה",
|
"grant_permission": "להעניק הרשאה",
|
||||||
"haptic_feedback_switch": "אפשר משוב ברטט",
|
"haptic_feedback_switch": "אפשר משוב ברטט",
|
||||||
@@ -468,17 +457,17 @@
|
|||||||
"search_filter_camera_make": "תוצרת",
|
"search_filter_camera_make": "תוצרת",
|
||||||
"search_filter_camera_model": "דגם",
|
"search_filter_camera_model": "דגם",
|
||||||
"search_filter_camera_title": "בחר סוג מצלמה",
|
"search_filter_camera_title": "בחר סוג מצלמה",
|
||||||
"search_filter_contextual": "חיפוש לפי הקשר",
|
"search_filter_contextual": "Search by context",
|
||||||
"search_filter_date": "תאריך",
|
"search_filter_date": "תאריך",
|
||||||
"search_filter_date_interval": "{start} עד {end}",
|
"search_filter_date_interval": "{start} עד {end}",
|
||||||
"search_filter_date_title": "בחר טווח תאריכים",
|
"search_filter_date_title": "בחר טווח תאריכים",
|
||||||
"search_filter_description": "חיפוש לפי תיאור",
|
"search_filter_description": "Search by description",
|
||||||
"search_filter_display_option_archive": "ארכיון",
|
"search_filter_display_option_archive": "ארכיון",
|
||||||
"search_filter_display_option_favorite": "מועדף",
|
"search_filter_display_option_favorite": "מועדף",
|
||||||
"search_filter_display_option_not_in_album": "לא באלבום",
|
"search_filter_display_option_not_in_album": "לא באלבום",
|
||||||
"search_filter_display_options": "אפשרויות תצוגה",
|
"search_filter_display_options": "אפשרויות תצוגה",
|
||||||
"search_filter_display_options_title": "אפשרויות תצוגה",
|
"search_filter_display_options_title": "אפשרויות תצוגה",
|
||||||
"search_filter_filename": "חיפוש לפי שם קובץ",
|
"search_filter_filename": "Search by file name",
|
||||||
"search_filter_location": "מיקום",
|
"search_filter_location": "מיקום",
|
||||||
"search_filter_location_city": "עיר",
|
"search_filter_location_city": "עיר",
|
||||||
"search_filter_location_country": "ארץ",
|
"search_filter_location_country": "ארץ",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Share To",
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
"control_bottom_app_bar_stack": "Stack",
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Timezone",
|
"edit_date_time_dialog_timezone": "Timezone",
|
||||||
"edit_image_title": "संपादित करें",
|
"edit_image_title": "संपादित करें",
|
||||||
"edit_location_dialog_title": "Location",
|
"edit_location_dialog_title": "Location",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Add a location",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PEOPLE",
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "पसंदीदा",
|
"favorites": "पसंदीदा",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
"filename_search": "फ़ाइल नाम या एक्सटेंशन",
|
"filename_search": "फ़ाइल नाम या एक्सटेंशन",
|
||||||
"filter": "फ़िल्टर",
|
"filter": "फ़िल्टर",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Dátum és Idő Módosítása",
|
"control_bottom_app_bar_edit_time": "Dátum és Idő Módosítása",
|
||||||
"control_bottom_app_bar_favorite": "Kedvenc",
|
"control_bottom_app_bar_favorite": "Kedvenc",
|
||||||
"control_bottom_app_bar_share": "Megosztás",
|
"control_bottom_app_bar_share": "Megosztás",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Megosztás Ide",
|
"control_bottom_app_bar_share_to": "Megosztás Ide",
|
||||||
"control_bottom_app_bar_stack": "Fotók csoportosítása",
|
"control_bottom_app_bar_stack": "Fotók csoportosítása",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Lomtárba Helyez",
|
"control_bottom_app_bar_trash_from_immich": "Lomtárba Helyez",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Időzóna",
|
"edit_date_time_dialog_timezone": "Időzóna",
|
||||||
"edit_image_title": "Szerkesztés",
|
"edit_image_title": "Szerkesztés",
|
||||||
"edit_location_dialog_title": "Hely",
|
"edit_location_dialog_title": "Hely",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "Befejező dátum",
|
"end_date": "Befejező dátum",
|
||||||
"enqueued": "Sorba állítva",
|
"enqueued": "Sorba állítva",
|
||||||
"enter_wifi_name": "Add meg a WiFi hálózat nevét",
|
"enter_wifi_name": "Add meg a WiFi hálózat nevét",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Hely hozzáadása",
|
"exif_bottom_sheet_location_add": "Hely hozzáadása",
|
||||||
"exif_bottom_sheet_people": "EMBEREK",
|
"exif_bottom_sheet_people": "EMBEREK",
|
||||||
"exif_bottom_sheet_person_add_person": "Elnevez",
|
"exif_bottom_sheet_person_add_person": "Elnevez",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Fejlesztés alatt",
|
"experimental_settings_new_asset_list_subtitle": "Fejlesztés alatt",
|
||||||
"experimental_settings_new_asset_list_title": "Kisérleti képrács engedélyezése",
|
"experimental_settings_new_asset_list_title": "Kisérleti képrács engedélyezése",
|
||||||
"experimental_settings_subtitle": "Csak saját felelősségre használd!",
|
"experimental_settings_subtitle": "Csak saját felelősségre használd!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "Külső hálózat",
|
"external_network": "Külső hálózat",
|
||||||
"external_network_sheet_info": "Ha nem vagy a megadott WiFi hálózathoz csatlakozva, akkor az alkalmazás az alábbi URL címeken fogja elérni a szervert, fentről lefelé haladva",
|
"external_network_sheet_info": "Ha nem vagy a megadott WiFi hálózathoz csatlakozva, akkor az alkalmazás az alábbi URL címeken fogja elérni a szervert, fentről lefelé haladva",
|
||||||
"failed": "Sikertelen",
|
"failed": "Sikertelen",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Kedvencek",
|
"favorites": "Kedvencek",
|
||||||
"favorites_page_no_favorites": "Nem található kedvencnek jelölt elem",
|
"favorites_page_no_favorites": "Nem található kedvencnek jelölt elem",
|
||||||
"favorites_page_title": "Kedvencek",
|
"favorites_page_title": "Kedvencek",
|
||||||
"filename_search": "Fájlnév vagy kiterjesztés",
|
"filename_search": "Fájlnév vagy kiterjesztés",
|
||||||
"filter": "Szűrő",
|
"filter": "Szűrő",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Nem sikerült lekérni a Wi-Fi nevét. Győződj meg róla, hogy megadtad a szükséges engedélyeket és csatlakoztál egy Wi-Fi hálózathoz.",
|
"get_wifiname_error": "Nem sikerült lekérni a Wi-Fi nevét. Győződj meg róla, hogy megadtad a szükséges engedélyeket és csatlakoztál egy Wi-Fi hálózathoz.",
|
||||||
"grant_permission": "Engedély megadása",
|
"grant_permission": "Engedély megadása",
|
||||||
"haptic_feedback_switch": "Rezgéses visszajelzés engedélyezése",
|
"haptic_feedback_switch": "Rezgéses visszajelzés engedélyezése",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Tanggal & Waktu",
|
"control_bottom_app_bar_edit_time": "Edit Tanggal & Waktu",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
"control_bottom_app_bar_share": "Bagikan",
|
"control_bottom_app_bar_share": "Bagikan",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Bagikan Ke",
|
"control_bottom_app_bar_share_to": "Bagikan Ke",
|
||||||
"control_bottom_app_bar_stack": "Tumpuk",
|
"control_bottom_app_bar_stack": "Tumpuk",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Pindah ke Sampah",
|
"control_bottom_app_bar_trash_from_immich": "Pindah ke Sampah",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Zona Waktu",
|
"edit_date_time_dialog_timezone": "Zona Waktu",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Lokasi",
|
"edit_location_dialog_title": "Lokasi",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Tambah lokasi",
|
"exif_bottom_sheet_location_add": "Tambah lokasi",
|
||||||
"exif_bottom_sheet_people": "ORANG",
|
"exif_bottom_sheet_people": "ORANG",
|
||||||
"exif_bottom_sheet_person_add_person": "Tambah nama",
|
"exif_bottom_sheet_person_add_person": "Tambah nama",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Memproses",
|
"experimental_settings_new_asset_list_subtitle": "Memproses",
|
||||||
"experimental_settings_new_asset_list_title": "Nyalakan grid foto eksperimental",
|
"experimental_settings_new_asset_list_title": "Nyalakan grid foto eksperimental",
|
||||||
"experimental_settings_subtitle": "Gunakan atas risiko anda sendiri!",
|
"experimental_settings_subtitle": "Gunakan atas risiko anda sendiri!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "Tidak ada aset favorit",
|
"favorites_page_no_favorites": "Tidak ada aset favorit",
|
||||||
"favorites_page_title": "Favorit",
|
"favorites_page_title": "Favorit",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Nyalakan getar",
|
"haptic_feedback_switch": "Nyalakan getar",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Modifica data e ora",
|
"control_bottom_app_bar_edit_time": "Modifica data e ora",
|
||||||
"control_bottom_app_bar_favorite": "Preferito",
|
"control_bottom_app_bar_favorite": "Preferito",
|
||||||
"control_bottom_app_bar_share": "Condivisione",
|
"control_bottom_app_bar_share": "Condivisione",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Condividi a",
|
"control_bottom_app_bar_share_to": "Condividi a",
|
||||||
"control_bottom_app_bar_stack": "Raggruppa",
|
"control_bottom_app_bar_stack": "Raggruppa",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Sposta nel cestino",
|
"control_bottom_app_bar_trash_from_immich": "Sposta nel cestino",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Fuso orario",
|
"edit_date_time_dialog_timezone": "Fuso orario",
|
||||||
"edit_image_title": "Modifica",
|
"edit_image_title": "Modifica",
|
||||||
"edit_location_dialog_title": "Posizione",
|
"edit_location_dialog_title": "Posizione",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Inserisci il nome della rete Wi-Fi",
|
"enter_wifi_name": "Inserisci il nome della rete Wi-Fi",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Aggiungi una posizione",
|
"exif_bottom_sheet_location_add": "Aggiungi una posizione",
|
||||||
"exif_bottom_sheet_people": "PERSONE",
|
"exif_bottom_sheet_people": "PERSONE",
|
||||||
"exif_bottom_sheet_person_add_person": "Aggiungi nome",
|
"exif_bottom_sheet_person_add_person": "Aggiungi nome",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Lavori in corso",
|
"experimental_settings_new_asset_list_subtitle": "Lavori in corso",
|
||||||
"experimental_settings_new_asset_list_title": "Attiva griglia foto sperimentale",
|
"experimental_settings_new_asset_list_title": "Attiva griglia foto sperimentale",
|
||||||
"experimental_settings_subtitle": "Usalo a tuo rischio!",
|
"experimental_settings_subtitle": "Usalo a tuo rischio!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "Rete esterna",
|
"external_network": "Rete esterna",
|
||||||
"external_network_sheet_info": "Quando non si è connessi alla rete Wi-Fi preferita, l'app si collegherà al server tramite il primo degli indirizzi della lista che riuscirà a raggiungere, dall'alto verso il basso",
|
"external_network_sheet_info": "Quando non si è connessi alla rete Wi-Fi preferita, l'app si collegherà al server tramite il primo degli indirizzi della lista che riuscirà a raggiungere, dall'alto verso il basso",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Preferiti",
|
"favorites": "Preferiti",
|
||||||
"favorites_page_no_favorites": "Nessun preferito",
|
"favorites_page_no_favorites": "Nessun preferito",
|
||||||
"favorites_page_title": "Preferiti",
|
"favorites_page_title": "Preferiti",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filtro",
|
"filter": "Filtro",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Non sono riuscito a recuperare il nome della rete Wi-Fi. Accertati di aver concesso i permessi necessari e di essere connesso ad una rete Wi-Fi",
|
"get_wifiname_error": "Non sono riuscito a recuperare il nome della rete Wi-Fi. Accertati di aver concesso i permessi necessari e di essere connesso ad una rete Wi-Fi",
|
||||||
"grant_permission": "Concedi permesso",
|
"grant_permission": "Concedi permesso",
|
||||||
"haptic_feedback_switch": "Abilita feedback aptico",
|
"haptic_feedback_switch": "Abilita feedback aptico",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "日時を変更",
|
"control_bottom_app_bar_edit_time": "日時を変更",
|
||||||
"control_bottom_app_bar_favorite": "お気に入り",
|
"control_bottom_app_bar_favorite": "お気に入り",
|
||||||
"control_bottom_app_bar_share": "共有",
|
"control_bottom_app_bar_share": "共有",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "次のユーザーに共有: ",
|
"control_bottom_app_bar_share_to": "次のユーザーに共有: ",
|
||||||
"control_bottom_app_bar_stack": "スタック",
|
"control_bottom_app_bar_stack": "スタック",
|
||||||
"control_bottom_app_bar_trash_from_immich": "ゴミ箱に入れる",
|
"control_bottom_app_bar_trash_from_immich": "ゴミ箱に入れる",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "タイムゾーン",
|
"edit_date_time_dialog_timezone": "タイムゾーン",
|
||||||
"edit_image_title": "編集",
|
"edit_image_title": "編集",
|
||||||
"edit_location_dialog_title": "位置情報",
|
"edit_location_dialog_title": "位置情報",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Wi-Fiの名前(SSID)を入力",
|
"enter_wifi_name": "Wi-Fiの名前(SSID)を入力",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "位置情報を追加",
|
"exif_bottom_sheet_location_add": "位置情報を追加",
|
||||||
"exif_bottom_sheet_people": "人物",
|
"exif_bottom_sheet_people": "人物",
|
||||||
"exif_bottom_sheet_person_add_person": "名前を追加",
|
"exif_bottom_sheet_person_add_person": "名前を追加",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "製作途中 (WIP)",
|
"experimental_settings_new_asset_list_subtitle": "製作途中 (WIP)",
|
||||||
"experimental_settings_new_asset_list_title": "試験的なグリッドを有効化",
|
"experimental_settings_new_asset_list_title": "試験的なグリッドを有効化",
|
||||||
"experimental_settings_subtitle": "試験的機能につき自己責任で!",
|
"experimental_settings_subtitle": "試験的機能につき自己責任で!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "外部のネットワーク",
|
"external_network": "外部のネットワーク",
|
||||||
"external_network_sheet_info": "指定されたWi-Fiに繋がっていない時アプリはサーバーへの接続を指定されたURLで行います。優先順位は上から下です",
|
"external_network_sheet_info": "指定されたWi-Fiに繋がっていない時アプリはサーバーへの接続を指定されたURLで行います。優先順位は上から下です",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "お気に入り",
|
"favorites": "お気に入り",
|
||||||
"favorites_page_no_favorites": "お気に入り登録された写真またはビデオがありません",
|
"favorites_page_no_favorites": "お気に入り登録された写真またはビデオがありません",
|
||||||
"favorites_page_title": "お気に入り",
|
"favorites_page_title": "お気に入り",
|
||||||
"filename_search": "ファイル名、又は拡張子",
|
"filename_search": "ファイル名、又は拡張子",
|
||||||
"filter": "フィルター",
|
"filter": "フィルター",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Wi-Fiの名前(SSID)が入手できませんでした。Wi-Fiに繋がってるのと必要な権限を許可したか確認してください",
|
"get_wifiname_error": "Wi-Fiの名前(SSID)が入手できませんでした。Wi-Fiに繋がってるのと必要な権限を許可したか確認してください",
|
||||||
"grant_permission": "許可する",
|
"grant_permission": "許可する",
|
||||||
"haptic_feedback_switch": "ハプティックフィードバック",
|
"haptic_feedback_switch": "ハプティックフィードバック",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "날짜 및 시간 변경",
|
"control_bottom_app_bar_edit_time": "날짜 및 시간 변경",
|
||||||
"control_bottom_app_bar_favorite": "즐겨찾기",
|
"control_bottom_app_bar_favorite": "즐겨찾기",
|
||||||
"control_bottom_app_bar_share": "공유",
|
"control_bottom_app_bar_share": "공유",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "공유 대상",
|
"control_bottom_app_bar_share_to": "공유 대상",
|
||||||
"control_bottom_app_bar_stack": "스택",
|
"control_bottom_app_bar_stack": "스택",
|
||||||
"control_bottom_app_bar_trash_from_immich": "휴지통",
|
"control_bottom_app_bar_trash_from_immich": "휴지통",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "시간대",
|
"edit_date_time_dialog_timezone": "시간대",
|
||||||
"edit_image_title": "편집",
|
"edit_image_title": "편집",
|
||||||
"edit_location_dialog_title": "위치",
|
"edit_location_dialog_title": "위치",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "위치 추가",
|
"exif_bottom_sheet_location_add": "위치 추가",
|
||||||
"exif_bottom_sheet_people": "인물",
|
"exif_bottom_sheet_people": "인물",
|
||||||
"exif_bottom_sheet_person_add_person": "이름 추가",
|
"exif_bottom_sheet_person_add_person": "이름 추가",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "진행 중",
|
"experimental_settings_new_asset_list_subtitle": "진행 중",
|
||||||
"experimental_settings_new_asset_list_title": "새 사진 배열 사용 (실험적)",
|
"experimental_settings_new_asset_list_title": "새 사진 배열 사용 (실험적)",
|
||||||
"experimental_settings_subtitle": "본인 책임 하에 사용하세요!",
|
"experimental_settings_subtitle": "본인 책임 하에 사용하세요!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "즐겨찾기",
|
"favorites": "즐겨찾기",
|
||||||
"favorites_page_no_favorites": "즐겨찾기된 항목 없음",
|
"favorites_page_no_favorites": "즐겨찾기된 항목 없음",
|
||||||
"favorites_page_title": "즐겨찾기",
|
"favorites_page_title": "즐겨찾기",
|
||||||
"filename_search": "파일 이름 또는 확장자",
|
"filename_search": "파일 이름 또는 확장자",
|
||||||
"filter": "필터",
|
"filter": "필터",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "햅틱 피드백 활성화",
|
"haptic_feedback_switch": "햅틱 피드백 활성화",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Share To",
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
"control_bottom_app_bar_stack": "Stack",
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Timezone",
|
"edit_date_time_dialog_timezone": "Timezone",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Location",
|
"edit_location_dialog_title": "Location",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Add a location",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PEOPLE",
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Rediģēt Datumu un Laiku",
|
"control_bottom_app_bar_edit_time": "Rediģēt Datumu un Laiku",
|
||||||
"control_bottom_app_bar_favorite": "Izlase",
|
"control_bottom_app_bar_favorite": "Izlase",
|
||||||
"control_bottom_app_bar_share": "Kopīgot",
|
"control_bottom_app_bar_share": "Kopīgot",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Kopīgot Uz",
|
"control_bottom_app_bar_share_to": "Kopīgot Uz",
|
||||||
"control_bottom_app_bar_stack": "Steks",
|
"control_bottom_app_bar_stack": "Steks",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Pārvietot uz Atkritni",
|
"control_bottom_app_bar_trash_from_immich": "Pārvietot uz Atkritni",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Laika zona",
|
"edit_date_time_dialog_timezone": "Laika zona",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Atrašanās vieta",
|
"edit_location_dialog_title": "Atrašanās vieta",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Pievienot atrašanās vietu",
|
"exif_bottom_sheet_location_add": "Pievienot atrašanās vietu",
|
||||||
"exif_bottom_sheet_people": "CILVĒKI",
|
"exif_bottom_sheet_people": "CILVĒKI",
|
||||||
"exif_bottom_sheet_person_add_person": "Pievienot vārdu",
|
"exif_bottom_sheet_person_add_person": "Pievienot vārdu",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Izstrādes posmā",
|
"experimental_settings_new_asset_list_subtitle": "Izstrādes posmā",
|
||||||
"experimental_settings_new_asset_list_title": "Iespējot eksperimentālo fotorežģi",
|
"experimental_settings_new_asset_list_title": "Iespējot eksperimentālo fotorežģi",
|
||||||
"experimental_settings_subtitle": "Izmanto uzņemoties risku!",
|
"experimental_settings_subtitle": "Izmanto uzņemoties risku!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "Nav atrasti iecienītākie aktīvi",
|
"favorites_page_no_favorites": "Nav atrasti iecienītākie aktīvi",
|
||||||
"favorites_page_title": "Izlase",
|
"favorites_page_title": "Izlase",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Iestatīt haptisku reakciju",
|
"haptic_feedback_switch": "Iestatīt haptisku reakciju",
|
||||||
|
|||||||
@@ -197,7 +197,6 @@
|
|||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
"control_bottom_app_bar_share_link": "Share Link",
|
|
||||||
"control_bottom_app_bar_share_to": "Share To",
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
"control_bottom_app_bar_stack": "Stack",
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
@@ -253,7 +252,6 @@
|
|||||||
"edit_date_time_dialog_timezone": "Timezone",
|
"edit_date_time_dialog_timezone": "Timezone",
|
||||||
"edit_image_title": "Edit",
|
"edit_image_title": "Edit",
|
||||||
"edit_location_dialog_title": "Location",
|
"edit_location_dialog_title": "Location",
|
||||||
"empty_folder": "This folder is empty",
|
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
"enter_wifi_name": "Enter WiFi name",
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
@@ -265,10 +263,6 @@
|
|||||||
"exif_bottom_sheet_location_add": "Add a location",
|
"exif_bottom_sheet_location_add": "Add a location",
|
||||||
"exif_bottom_sheet_people": "PEOPLE",
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"exif_bottom_sheet_person_age": "Age {}",
|
|
||||||
"exif_bottom_sheet_person_age_months": "Age {} months",
|
|
||||||
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
|
||||||
"exif_bottom_sheet_person_age_years": "Age {}",
|
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
@@ -276,16 +270,11 @@
|
|||||||
"external_network": "External network",
|
"external_network": "External network",
|
||||||
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Failed to load assets",
|
|
||||||
"failed_to_load_folder": "Failed to load folder",
|
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "File name or extension",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"folder": "Folder",
|
|
||||||
"folder_not_found": "Folder not found",
|
|
||||||
"folders": "Folders",
|
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user