mirror of
https://github.com/immich-app/immich.git
synced 2025-12-10 14:51:07 -08:00
Compare commits
107 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a3b6095b61 | ||
|
|
7ca6f80ed2 | ||
|
|
f1b8a7ab54 | ||
|
|
079aa13edb | ||
|
|
67bac9ff59 | ||
|
|
0d80ae3a91 | ||
|
|
b1b215f083 | ||
|
|
f55c80eadf | ||
|
|
c81bb2b70a | ||
|
|
5fa9704a65 | ||
|
|
60d39a7d1f | ||
|
|
13564fbc17 | ||
|
|
77a5820c3c | ||
|
|
b790354f9a | ||
|
|
7948819e0c | ||
|
|
5cd13227ad | ||
|
|
36dc7bd924 | ||
|
|
6bd7c6c06d | ||
|
|
e9b0840f01 | ||
|
|
a8b01dc21a | ||
|
|
a815592954 | ||
|
|
f4475549d6 | ||
|
|
a6eb227330 | ||
|
|
343087e2b4 | ||
|
|
66b2ad7939 | ||
|
|
57a7103d75 | ||
|
|
23b836ffbb | ||
|
|
e54cf914d7 | ||
|
|
fa57853bd2 | ||
|
|
ddd4ec2d9e | ||
|
|
1812e8811b | ||
|
|
1d37d8cac0 | ||
|
|
19da705fcb | ||
|
|
6efc2ec9be | ||
|
|
d0c6c7cb33 | ||
|
|
b3b5f063cf | ||
|
|
3731cc4334 | ||
|
|
13df619ba9 | ||
|
|
3edb347666 | ||
|
|
c73832bd9c | ||
|
|
2f26a7edae | ||
|
|
deaf81e2a4 | ||
|
|
f1b92718d5 | ||
|
|
1f64649434 | ||
|
|
ff32506c5e | ||
|
|
68b5202730 | ||
|
|
c6abef186c | ||
|
|
e5bdf671b5 | ||
|
|
88e92332ee | ||
|
|
6da51deb83 | ||
|
|
b44f8d52ee | ||
|
|
fa03ed7dd7 | ||
|
|
5617b57b26 | ||
|
|
01210dceac | ||
|
|
e4e049d040 | ||
|
|
a405fba3bb | ||
|
|
b5844db0c7 | ||
|
|
28ab1d4551 | ||
|
|
050ee91289 | ||
|
|
5eb8d7e8b0 | ||
|
|
5e4403bb2e | ||
|
|
fb6591607f | ||
|
|
1cf3378499 | ||
|
|
a336aeb007 | ||
|
|
ee49f470b7 | ||
|
|
b9cda59172 | ||
|
|
ba71c83948 | ||
|
|
2835919931 | ||
|
|
310fab526d | ||
|
|
690b87e375 | ||
|
|
e53625b067 | ||
|
|
9e085c1071 | ||
|
|
5f9dfa9493 | ||
|
|
13051c1e5a | ||
|
|
a9cd3609dd | ||
|
|
e0a3e5a200 | ||
|
|
c587fb1df8 | ||
|
|
51cfe10c28 | ||
|
|
bc3f95c57c | ||
|
|
e368b9e50b | ||
|
|
95c75c289c | ||
|
|
23d3657ac2 | ||
|
|
74f04336bb | ||
|
|
54db2a48af | ||
|
|
cde56d5a22 | ||
|
|
3f1cf44717 | ||
|
|
2d83ac4125 | ||
|
|
7147486b6a | ||
|
|
89ddbac8bc | ||
|
|
e071b82e8a | ||
|
|
13b2b2fc4e | ||
|
|
fe9ef1a3ea | ||
|
|
afb0d0f54d | ||
|
|
26085ff82b | ||
|
|
2872886e77 | ||
|
|
a21112e4ab | ||
|
|
f3edf43158 | ||
|
|
1c5926553a | ||
|
|
05fa3092bf | ||
|
|
7d3ec8af37 | ||
|
|
8db008ef0b | ||
|
|
e493e05e99 | ||
|
|
b83e535010 | ||
|
|
111372edc1 | ||
|
|
625a899f64 | ||
|
|
aaf0496f74 | ||
|
|
4977926c88 |
91
.github/workflows/docker.yml
vendored
91
.github/workflows/docker.yml
vendored
@@ -24,18 +24,15 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- context: "server"
|
|
||||||
image: "immich-server"
|
|
||||||
platforms: "linux/arm/v7,linux/amd64,linux/arm64"
|
|
||||||
- context: "web"
|
- context: "web"
|
||||||
image: "immich-web"
|
image: "immich-web"
|
||||||
platforms: "linux/arm/v7,linux/amd64,linux/arm64"
|
platforms: "linux/amd64,linux/arm64"
|
||||||
- context: "machine-learning"
|
- context: "machine-learning"
|
||||||
image: "immich-machine-learning"
|
image: "immich-machine-learning"
|
||||||
platforms: "linux/amd64,linux/arm64"
|
platforms: "linux/amd64,linux/arm64"
|
||||||
- context: "nginx"
|
- context: "nginx"
|
||||||
image: "immich-proxy"
|
image: "immich-proxy"
|
||||||
platforms: "linux/arm/v7,linux/amd64,linux/arm64"
|
platforms: "linux/amd64,linux/arm64"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@@ -110,3 +107,87 @@ jobs:
|
|||||||
cache-to: ${{ steps.cache-target.outputs.cache-to }}
|
cache-to: ${{ steps.cache-target.outputs.cache-to }}
|
||||||
tags: ${{ steps.metadata.outputs.tags }}
|
tags: ${{ steps.metadata.outputs.tags }}
|
||||||
labels: ${{ steps.metadata.outputs.labels }}
|
labels: ${{ steps.metadata.outputs.labels }}
|
||||||
|
|
||||||
|
build_and_push_server_arm_64:
|
||||||
|
runs-on: self-hosted
|
||||||
|
strategy:
|
||||||
|
# Prevent a failure in one image from stopping the other builds
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- context: "server"
|
||||||
|
image: "immich-server"
|
||||||
|
platforms: "linux/arm64,linux/amd64"
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2.2.0
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v2.9.1
|
||||||
|
# Workaround to fix error:
|
||||||
|
# failed to push: failed to copy: io: read/write on closed pipe
|
||||||
|
# See https://github.com/docker/build-push-action/issues/761
|
||||||
|
with:
|
||||||
|
driver-opts: |
|
||||||
|
image=moby/buildkit:v0.10.6
|
||||||
|
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
# Only push to Docker Hub when making a release
|
||||||
|
if: ${{ github.event_name == 'release' }}
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
# Skip when PR from a fork
|
||||||
|
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Generate docker image tags
|
||||||
|
id: metadata
|
||||||
|
uses: docker/metadata-action@v4
|
||||||
|
with:
|
||||||
|
flavor: |
|
||||||
|
# Disable latest tag
|
||||||
|
latest=false
|
||||||
|
images: |
|
||||||
|
name=ghcr.io/${{ github.repository_owner }}/${{matrix.image}}
|
||||||
|
name=altran1502/${{matrix.image}},enable=${{ github.event_name == 'release' }}
|
||||||
|
tags: |
|
||||||
|
# Tag with branch name
|
||||||
|
type=ref,event=branch
|
||||||
|
# Tag with pr-number
|
||||||
|
type=ref,event=pr
|
||||||
|
# Tag with git tag on release
|
||||||
|
type=ref,event=tag
|
||||||
|
type=raw,value=release,enable=${{ github.event_name == 'release' }}
|
||||||
|
|
||||||
|
- name: Determine build cache output
|
||||||
|
id: cache-target
|
||||||
|
run: |
|
||||||
|
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
||||||
|
# Essentially just ignore the cache output (PR can't write to registry cache)
|
||||||
|
echo "cache-to=type=local,dest=/tmp/discard,ignore-error=true" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "cache-to=type=registry,mode=max,ref=ghcr.io/${{ github.repository_owner }}/immich-build-cache:${{ matrix.image }}" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Build and push image
|
||||||
|
uses: docker/build-push-action@v4.1.1
|
||||||
|
with:
|
||||||
|
context: ${{ matrix.context }}
|
||||||
|
platforms: ${{ matrix.platforms }}
|
||||||
|
# Skip pushing when PR from a fork
|
||||||
|
push: ${{ !github.event.pull_request.head.repo.fork }}
|
||||||
|
cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/immich-build-cache:${{matrix.image}}
|
||||||
|
cache-to: ${{ steps.cache-target.outputs.cache-to }}
|
||||||
|
tags: ${{ steps.metadata.outputs.tags }}
|
||||||
|
labels: ${{ steps.metadata.outputs.labels }}
|
||||||
|
|||||||
1
.github/workflows/prepare-release.yml
vendored
1
.github/workflows/prepare-release.yml
vendored
@@ -83,4 +83,5 @@ jobs:
|
|||||||
files: |
|
files: |
|
||||||
docker/docker-compose.yml
|
docker/docker-compose.yml
|
||||||
docker/example.env
|
docker/example.env
|
||||||
|
docker/hwaccel.yml
|
||||||
*.apk
|
*.apk
|
||||||
|
|||||||
@@ -21,13 +21,15 @@
|
|||||||
<a href="README_zh_CN.md">中文</a>
|
<a href="README_zh_CN.md">中文</a>
|
||||||
<a href="README_tr_TR.md">Türkçe</a>
|
<a href="README_tr_TR.md">Türkçe</a>
|
||||||
<a href="README_ca_ES.md">Català</a>
|
<a href="README_ca_ES.md">Català</a>
|
||||||
|
<a href="README_es_ES.md">Español</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Disclaimer
|
## Disclaimer
|
||||||
|
|
||||||
- ⚠️ The project is under **very active** development.
|
- ⚠️ The project is under **very active** development.
|
||||||
- ⚠️ Expect bugs and breaking changes.
|
- ⚠️ Expect bugs and breaking changes.
|
||||||
- ⚠️ **Do not use the app as the only way to store your photos and videos!**
|
- ⚠️ **Do not use the app as the only way to store your photos and videos.**
|
||||||
|
- ⚠️ Always follow [3-2-1](https://www.backblaze.com/blog/the-3-2-1-backup-strategy/) backup plan for your precious photos and videos!
|
||||||
|
|
||||||
## Content
|
## Content
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
<a href="README.md">English</a>
|
<a href="README.md">English</a>
|
||||||
<a href="README_zh_CN.md">中文</a>
|
<a href="README_zh_CN.md">中文</a>
|
||||||
<a href="README_tr_TR.md">Türkçe</a>
|
<a href="README_tr_TR.md">Türkçe</a>
|
||||||
|
<a href="README_ca_ES.md">Español</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Avís legal
|
## Avís legal
|
||||||
|
|||||||
108
README_es_ES.md
Normal file
108
README_es_ES.md
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
<p align="center">
|
||||||
|
<br/>
|
||||||
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-green.svg?color=3F51B5&style=for-the-badge&label=License&logoColor=000000&labelColor=ececec" alt="Licencia: MIT"></a>
|
||||||
|
<a href="https://discord.gg/D8JsnBEuKb">
|
||||||
|
<img src="https://img.shields.io/discord/979116623879368755.svg?label=Discord&logo=Discord&style=for-the-badge&logoColor=000000&labelColor=ececec" atl="Discord"/>
|
||||||
|
</a>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="design/immich-logo.svg" width="150" title="Iniciar sesión con URL personalizada">
|
||||||
|
</p>
|
||||||
|
<h3 align="center">Immich: Una solución Self-Hosted de copia de seguridad de fotos y videos de alto rendimiento</h3>
|
||||||
|
<br/>
|
||||||
|
<a href="https://immich.app">
|
||||||
|
<img src="design/immich-screenshots.png" title="Captura de pantalla principal">
|
||||||
|
</a>
|
||||||
|
<br/>
|
||||||
|
<p align="center">
|
||||||
|
<a href="README.md">English</a>
|
||||||
|
<a href="README_zh_CN.md">中文</a>
|
||||||
|
<a href="README_tr_TR.md">Türkçe</a>
|
||||||
|
<a href="README_ca_ES.md">Català</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Descargo de responsabilidad
|
||||||
|
|
||||||
|
- ⚠️ El proyecto está en **desarrollo muy activo**.
|
||||||
|
- ⚠️ Es probable que haya errores y cambios disruptivos.
|
||||||
|
- ⚠️ **¡No utilices la aplicación como única forma de almacenar tus fotos y videos!**
|
||||||
|
|
||||||
|
## Contenido
|
||||||
|
|
||||||
|
- [Documentación oficial](https://immich.app/docs)
|
||||||
|
- [Hoja de ruta](https://github.com/orgs/immich-app/projects/1)
|
||||||
|
- [Demostración](#demo)
|
||||||
|
- [Funciones](#features)
|
||||||
|
- [Introducción](https://immich.app/docs/overview/introduction)
|
||||||
|
- [Instalación](https://immich.app/docs/install/requirements)
|
||||||
|
- [Directrices para contribuir](https://immich.app/docs/overview/support-the-project)
|
||||||
|
- [Apoya el proyecto](#support-the-project)
|
||||||
|
|
||||||
|
## Documentación
|
||||||
|
|
||||||
|
Puedes encontrar la documentación principal, incluidas las guías de instalación, en <https://immich.app/>.
|
||||||
|
|
||||||
|
## Demostración
|
||||||
|
|
||||||
|
Puedes acceder a la demostración web en <https://demo.immich.app>
|
||||||
|
|
||||||
|
Para la aplicación móvil, puedes usar `https://demo.immich.app/api` como `URL de la terminal del servidor`.
|
||||||
|
|
||||||
|
```bash title="Credenciales de la demostración"
|
||||||
|
Las credenciales son
|
||||||
|
correo electrónico: demo@immich.app
|
||||||
|
contraseña: demo
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Especificaciones: VM de nivel gratuito de Oracle - Ámsterdam - CPU ARM64 de cuatro núcleos a 2.4 GHz, 24 GB de RAM
|
||||||
|
```
|
||||||
|
|
||||||
|
## Funcionalidades
|
||||||
|
|
||||||
|
| Funcionalidades | Móvil | Web |
|
||||||
|
| ----------------------------------------------------- | ------ | --- |
|
||||||
|
| Cargar y ver videos y fotos | Sí | Sí |
|
||||||
|
| Copia de seguridad automática al abrir la aplicación | Sí | N/D |
|
||||||
|
| Álbum(es) selectivo(s) para copia de seguridad | Sí | N/D |
|
||||||
|
| Descargar fotos y videos al dispositivo local | Sí | Sí |
|
||||||
|
| Soporte multiusuario | Sí | Sí |
|
||||||
|
| Álbum y álbumes compartidos | Sí | Sí |
|
||||||
|
| Barra de desplazamiento con función de búsqueda | Sí | Sí |
|
||||||
|
| Soporte para formatos RAW | Sí | Sí |
|
||||||
|
| Visualización de metadatos (EXIF, map) | Sí | Sí |
|
||||||
|
| Búsqueda por metadatos, objetos, rostros y CLIP | Sí | Sí |
|
||||||
|
| Funciones administrativas (gestión de usuarios) | No | Sí |
|
||||||
|
| Copia de seguridad en segundo plano | Sí | N/D |
|
||||||
|
| Desplazamiento virtual | Sí | Sí |
|
||||||
|
| Soporte de OAuth | Sí | Sí |
|
||||||
|
| Claves de API | N/D | Sí |
|
||||||
|
| Copia de seguridad y reproducción de LivePhoto | iOS | Sí |
|
||||||
|
| Estructura de almacenamiento definida por el usuario | Sí | Sí |
|
||||||
|
| Compartir públicamente | No | Sí |
|
||||||
|
| Archivar y marcar como favorito | Sí | Sí |
|
||||||
|
| Mapa global | No | Sí |
|
||||||
|
| Compartir con colaboradores | Sí | Sí |
|
||||||
|
| Reconocimiento facial y agrupación | Sí | Sí |
|
||||||
|
| Recuerdos (hace x años) | Sí | Sí |
|
||||||
|
| Soporte sin conexión | Sí | No |
|
||||||
|
| Galería de solo lectura | Sí | Sí |
|
||||||
|
|
||||||
|
## Apoya el proyecto
|
||||||
|
|
||||||
|
Me he comprometido con este proyecto, y no me detendré. Continuaré actualizando la documentación, agregando nuevas funcionalidades y corrigiendo errores. Pero no puedo hacerlo solo. Por eso, necesito tu ayuda para darme una motivación adicional para seguir adelante.
|
||||||
|
|
||||||
|
Como dijeron nuestros anfitriones en [selfhosted.show - En el episodio 'The-organization-must-not-be-name is a Hostile Actor'](https://selfhosted.show/79?t=1418), esto es una gran tarea de lo que el equipo y yo estamos haciendo. Y me encantaría poder dedicarme a esto a tiempo completo algún día, así que te pido tu ayuda para que eso sea posible.
|
||||||
|
|
||||||
|
Si consideras que esta es una causa justa y la aplicación es algo que te gustaría usar durante mucho tiempo, por favor, considera apoyar el proyecto con las siguientes opciones.
|
||||||
|
|
||||||
|
## Donación
|
||||||
|
|
||||||
|
- [Donación mensual](https://github.com/sponsors/alextran1502) a través de GitHub Sponsors
|
||||||
|
- [Donación única](https://github.com/sponsors/alextran1502?frequency=one-time&sponsor=alextran1502) a través de GitHub Sponsors
|
||||||
|
- [Librepay](https://liberapay.com/alex.tran1502/)
|
||||||
|
- [buymeacoffee](https://www.buymeacoffee.com/altran1502)
|
||||||
|
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
|
||||||
@@ -20,6 +20,8 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="README.md">English</a>
|
<a href="README.md">English</a>
|
||||||
<a href="README_zh_CN.md">中文</a>
|
<a href="README_zh_CN.md">中文</a>
|
||||||
|
<a href="README_ca_ES.md">Català</a>
|
||||||
|
<a href="README_es_ES.md">Español</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Feragatname
|
## Feragatname
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="README.md">English</a>
|
<a href="README.md">English</a>
|
||||||
<a href="README_tr_TR.md">Türkçe</a>
|
<a href="README_tr_TR.md">Türkçe</a>
|
||||||
|
<a href="README_ca_ES.md">Català</a>
|
||||||
|
<a href="README_es_ES.md">Español</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
2507
cli/src/api/open-api/api.ts
generated
2507
cli/src/api/open-api/api.ts
generated
File diff suppressed because it is too large
Load Diff
2
cli/src/api/open-api/base.ts
generated
2
cli/src/api/open-api/base.ts
generated
@@ -4,7 +4,7 @@
|
|||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.69.0
|
* The version of the OpenAPI document: 1.73.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
|||||||
2
cli/src/api/open-api/common.ts
generated
2
cli/src/api/open-api/common.ts
generated
@@ -4,7 +4,7 @@
|
|||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.69.0
|
* The version of the OpenAPI document: 1.73.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
|||||||
2
cli/src/api/open-api/configuration.ts
generated
2
cli/src/api/open-api/configuration.ts
generated
@@ -4,7 +4,7 @@
|
|||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.69.0
|
* The version of the OpenAPI document: 1.73.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
|||||||
2
cli/src/api/open-api/index.ts
generated
2
cli/src/api/open-api/index.ts
generated
@@ -4,7 +4,7 @@
|
|||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.69.0
|
* The version of the OpenAPI document: 1.73.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ program
|
|||||||
)
|
)
|
||||||
.addOption(new Option('-i, --ignore [paths...]', 'Paths to ignore').env('IMMICH_IGNORE_PATHS').default(false))
|
.addOption(new Option('-i, --ignore [paths...]', 'Paths to ignore').env('IMMICH_IGNORE_PATHS').default(false))
|
||||||
.addOption(new Option('--no-read-only', 'Import files without read-only protection, allowing Immich to manage them'))
|
.addOption(new Option('--no-read-only', 'Import files without read-only protection, allowing Immich to manage them'))
|
||||||
.argument('[paths...]', 'One or more paths to assets to be uploaded')
|
.argument('[paths...]', 'One or more paths to assets to be imported')
|
||||||
.action((paths, options) => {
|
.action((paths, options) => {
|
||||||
options.import = true;
|
options.import = true;
|
||||||
options.excludePatterns = options.ignore;
|
options.excludePatterns = options.ignore;
|
||||||
|
|||||||
@@ -47,6 +47,9 @@ services:
|
|||||||
immich-microservices:
|
immich-microservices:
|
||||||
container_name: immich_microservices
|
container_name: immich_microservices
|
||||||
image: immich-microservices:latest
|
image: immich-microservices:latest
|
||||||
|
# extends:
|
||||||
|
# file: hwaccel.yml
|
||||||
|
# service: hwaccel
|
||||||
build:
|
build:
|
||||||
context: ../server
|
context: ../server
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
@@ -115,7 +118,6 @@ services:
|
|||||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||||
POSTGRES_USER: ${DB_USERNAME}
|
POSTGRES_USER: ${DB_USERNAME}
|
||||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||||
PG_DATA: /var/lib/postgresql/data
|
|
||||||
volumes:
|
volumes:
|
||||||
- pgdata:/var/lib/postgresql/data
|
- pgdata:/var/lib/postgresql/data
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -33,6 +33,9 @@ services:
|
|||||||
immich-microservices:
|
immich-microservices:
|
||||||
container_name: immich_microservices
|
container_name: immich_microservices
|
||||||
image: immich-microservices:latest
|
image: immich-microservices:latest
|
||||||
|
# extends:
|
||||||
|
# file: hwaccel.yml
|
||||||
|
# service: hwaccel
|
||||||
build:
|
build:
|
||||||
context: ../server
|
context: ../server
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
@@ -85,7 +88,6 @@ services:
|
|||||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||||
POSTGRES_USER: ${DB_USERNAME}
|
POSTGRES_USER: ${DB_USERNAME}
|
||||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||||
PG_DATA: /var/lib/postgresql/data
|
|
||||||
volumes:
|
volumes:
|
||||||
- pgdata:/var/lib/postgresql/data
|
- pgdata:/var/lib/postgresql/data
|
||||||
restart: always
|
restart: always
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ services:
|
|||||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||||
POSTGRES_USER: ${DB_USERNAME}
|
POSTGRES_USER: ${DB_USERNAME}
|
||||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||||
PG_DATA: /var/lib/postgresql/data
|
|
||||||
volumes:
|
volumes:
|
||||||
- /var/lib/postgresql/data
|
- /var/lib/postgresql/data
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ services:
|
|||||||
immich-microservices:
|
immich-microservices:
|
||||||
container_name: immich_microservices
|
container_name: immich_microservices
|
||||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||||
|
# extends:
|
||||||
|
# file: hwaccel.yml
|
||||||
|
# service: hwaccel
|
||||||
command: [ "start.sh", "microservices" ]
|
command: [ "start.sh", "microservices" ]
|
||||||
volumes:
|
volumes:
|
||||||
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
||||||
@@ -69,7 +72,6 @@ services:
|
|||||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||||
POSTGRES_USER: ${DB_USERNAME}
|
POSTGRES_USER: ${DB_USERNAME}
|
||||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||||
PG_DATA: /var/lib/postgresql/data
|
|
||||||
volumes:
|
volumes:
|
||||||
- pgdata:/var/lib/postgresql/data
|
- pgdata:/var/lib/postgresql/data
|
||||||
restart: always
|
restart: always
|
||||||
|
|||||||
@@ -1,116 +1,19 @@
|
|||||||
###################################################################################
|
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
|
||||||
# Database
|
|
||||||
###################################################################################
|
|
||||||
|
|
||||||
# NOTE: The following four database variables support Docker secrets by adding a *_FILE suffix to the variable name
|
# The location where your uploaded files are stored
|
||||||
# See the docker-compose documentation on secrets for additional details: https://docs.docker.com/compose/compose-file/compose-file-v3/#secrets
|
UPLOAD_LOCATION=./library
|
||||||
|
|
||||||
|
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
|
||||||
|
IMMICH_VERSION=release
|
||||||
|
|
||||||
|
# Connection secrets for postgres and typesense. You should change these to random passwords
|
||||||
|
TYPESENSE_API_KEY=some-random-text
|
||||||
|
DB_PASSWORD=postgres
|
||||||
|
|
||||||
|
# The values below this line do not need to be changed
|
||||||
|
###################################################################################
|
||||||
DB_HOSTNAME=immich_postgres
|
DB_HOSTNAME=immich_postgres
|
||||||
DB_USERNAME=postgres
|
DB_USERNAME=postgres
|
||||||
DB_PASSWORD=postgres
|
|
||||||
DB_DATABASE_NAME=immich
|
DB_DATABASE_NAME=immich
|
||||||
|
|
||||||
# Optional Database settings:
|
|
||||||
# DB_PORT=5432
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Redis
|
|
||||||
###################################################################################
|
|
||||||
|
|
||||||
REDIS_HOSTNAME=immich_redis
|
REDIS_HOSTNAME=immich_redis
|
||||||
|
|
||||||
# REDIS_URL will be used to pass custom options to ioredis.
|
|
||||||
# Example for Sentinel
|
|
||||||
# {"sentinels":[{"host":"redis-sentinel-node-0","port":26379},{"host":"redis-sentinel-node-1","port":26379},{"host":"redis-sentinel-node-2","port":26379}],"name":"redis-sentinel"}
|
|
||||||
# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0=
|
|
||||||
|
|
||||||
# Optional Redis settings:
|
|
||||||
|
|
||||||
# Note: these parameters are not automatically passed to the Redis Container
|
|
||||||
# to do so, please edit the docker-compose.yml file as well. Redis is not configured
|
|
||||||
# via environment variables, only redis.conf or the command line
|
|
||||||
|
|
||||||
# REDIS_PORT=6379
|
|
||||||
# REDIS_DBINDEX=0
|
|
||||||
# REDIS_USERNAME=
|
|
||||||
# REDIS_PASSWORD=
|
|
||||||
# REDIS_SOCKET=
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Upload File Location
|
|
||||||
#
|
|
||||||
# This is the location where uploaded files are stored.
|
|
||||||
###################################################################################
|
|
||||||
|
|
||||||
UPLOAD_LOCATION=absolute_location_on_your_machine_where_you_want_to_store_the_backup
|
|
||||||
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Typesense
|
|
||||||
###################################################################################
|
|
||||||
TYPESENSE_API_KEY=some-random-text
|
|
||||||
# TYPESENSE_ENABLED=false
|
|
||||||
# TYPESENSE_URL uses base64 encoding for the nodes json.
|
|
||||||
# Example JSON that was used:
|
|
||||||
# [
|
|
||||||
# { "host": "typesense-1.example.net", "port": "443", "protocol": "https" },
|
|
||||||
# { "host": "typesense-2.example.net", "port": "443", "protocol": "https" },
|
|
||||||
# { "host": "typesense-3.example.net", "port": "443", "protocol": "https" },
|
|
||||||
# ]
|
|
||||||
# TYPESENSE_URL=ha://WwogIHsgImhvc3QiOiAidHlwZXNlbnNlLTEuZXhhbXBsZS5uZXQiLCAicG9ydCI6ICI0NDMiLCAicHJvdG9jb2wiOiAiaHR0cHMiIH0sCiAgeyAiaG9zdCI6ICJ0eXBlc2Vuc2UtMi5leGFtcGxlLm5ldCIsICJwb3J0IjogIjQ0MyIsICJwcm90b2NvbCI6ICJodHRwcyIgfSwKICB7ICJob3N0IjogInR5cGVzZW5zZS0zLmV4YW1wbGUubmV0IiwgInBvcnQiOiAiNDQzIiwgInByb3RvY29sIjogImh0dHBzIiB9Cl0=
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Reverse Geocoding
|
|
||||||
#
|
|
||||||
# Reverse geocoding is done locally which has a small impact on memory usage
|
|
||||||
# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
|
|
||||||
# This ranges from 0-3 with 3 being the most precise
|
|
||||||
# 3 - Cities > 500 population: ~200MB RAM
|
|
||||||
# 2 - Cities > 1000 population: ~150MB RAM
|
|
||||||
# 1 - Cities > 5000 population: ~80MB RAM
|
|
||||||
# 0 - Cities > 15000 population: ~40MB RAM
|
|
||||||
####################################################################################
|
|
||||||
|
|
||||||
# DISABLE_REVERSE_GEOCODING=false
|
|
||||||
# REVERSE_GEOCODING_PRECISION=3
|
|
||||||
|
|
||||||
####################################################################################
|
|
||||||
# WEB - Optional
|
|
||||||
#
|
|
||||||
# Custom message on the login page, should be written in HTML form.
|
|
||||||
# For example:
|
|
||||||
# PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>"
|
|
||||||
####################################################################################
|
|
||||||
|
|
||||||
PUBLIC_LOGIN_PAGE_MESSAGE=
|
|
||||||
|
|
||||||
####################################################################################
|
|
||||||
# Alternative Service Addresses - Optional
|
|
||||||
#
|
|
||||||
# This is an advanced feature for users who may be running their immich services on different hosts.
|
|
||||||
# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers.
|
|
||||||
# Note: immich-microservices is bound to 3002, but no references are made
|
|
||||||
####################################################################################
|
|
||||||
|
|
||||||
IMMICH_WEB_URL=http://immich-web:3000
|
|
||||||
IMMICH_SERVER_URL=http://immich-server:3001
|
|
||||||
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
|
|
||||||
|
|
||||||
####################################################################################
|
|
||||||
# Alternative API's External Address - Optional
|
|
||||||
#
|
|
||||||
# This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery.
|
|
||||||
# You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash.
|
|
||||||
# NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api
|
|
||||||
# Examples: http://localhost:3001, http://immich-api.example.com, etc
|
|
||||||
####################################################################################
|
|
||||||
|
|
||||||
#IMMICH_API_URL_EXTERNAL=http://localhost:3001
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Immich Version - Optional
|
|
||||||
#
|
|
||||||
# This allows all immich docker images to be pinned to a specific version. By default,
|
|
||||||
# the version is "release" but could be a specific version, like "v1.59.0".
|
|
||||||
###################################################################################
|
|
||||||
|
|
||||||
#IMMICH_VERSION=
|
|
||||||
|
|||||||
23
docker/hwaccel.yml
Normal file
23
docker/hwaccel.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
# Hardware acceleration for transcoding - Optional
|
||||||
|
# This is only needed if you want to use hardware acceleration for transcoding.
|
||||||
|
# Depending on your hardware, you should uncomment the relevant lines below.
|
||||||
|
|
||||||
|
services:
|
||||||
|
hwaccel:
|
||||||
|
# devices:
|
||||||
|
# - /dev/dri:/dev/dri # If using Intel QuickSync or VAAPI
|
||||||
|
# volumes:
|
||||||
|
# - /usr/lib/wsl:/usr/lib/wsl # If using VAAPI in WSL2
|
||||||
|
# environment:
|
||||||
|
# - NVIDIA_DRIVER_CAPABILITIES=all # If using NVIDIA GPU
|
||||||
|
# - LD_LIBRARY_PATH=/usr/lib/wsl/lib # If using VAAPI in WSL2
|
||||||
|
# - LIBVA_DRIVER_NAME=d3d12 # If using VAAPI in WSL2
|
||||||
|
# deploy: # Uncomment this section if using NVIDIA GPU
|
||||||
|
# resources:
|
||||||
|
# reservations:
|
||||||
|
# devices:
|
||||||
|
# - driver: nvidia
|
||||||
|
# count: 1
|
||||||
|
# capabilities: [gpu,video]
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: June 2023 update
|
title: Immich Update - June 2023
|
||||||
authors: [alextran]
|
authors: [alextran]
|
||||||
tags: [update]
|
tags: [update]
|
||||||
---
|
---
|
||||||
|
|||||||
BIN
docs/blog/2023/07-29/images/web-shortcuts-panel.png
Normal file
BIN
docs/blog/2023/07-29/images/web-shortcuts-panel.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
151
docs/blog/2023/07-29/update.mdx
Normal file
151
docs/blog/2023/07-29/update.mdx
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
---
|
||||||
|
title: Immich Update - July 2023
|
||||||
|
authors: [alextran]
|
||||||
|
tags: [update, v1.64.0-v1.71.0]
|
||||||
|
---
|
||||||
|
|
||||||
|
Hello, Immich fans, another month, another milestone. We hope you are staying cool and safe in this scorching hot summer across the globe.
|
||||||
|
|
||||||
|
Immich recently got some good recognition when getting to the front page of HackerNews, which helped to let more people know about the project's existence. The project will help more and more people find a solution to control the privacy of their most precious moments. And with the gain in popularity and recognition, we have gotten new users and more questions from the community than ever.
|
||||||
|
|
||||||
|
I want to express my gratitude to all the contributors and the community who have been tremendously helpful to new users' questions and provided technical support.
|
||||||
|
|
||||||
|
Below are the highlights of new features we added to the application over the past month, along with countless bug fixes and improvements across the board, from developer experience to resource optimization and UI/UX improvement. I hope you find these topics as exciting as I am.
|
||||||
|
|
||||||
|
## Highlights
|
||||||
|
|
||||||
|
- Memories feature.
|
||||||
|
- Facial recognition improvements.
|
||||||
|
- Improvements on multi selection behavior on the web.
|
||||||
|
- Shortcuts for common actions on the web.
|
||||||
|
- Support viewer for 360-panorama photos.
|
||||||
|
|
||||||
|
<!--truncate-->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Memories feature
|
||||||
|
|
||||||
|
We've added the memory feature on the mobile app, so you can reminisce about your past memories.
|
||||||
|
|
||||||
|
<iframe
|
||||||
|
width="560"
|
||||||
|
height="315"
|
||||||
|
src="https://youtube.com/embed/c7OTl-RqNRE"
|
||||||
|
title="YouTube video player"
|
||||||
|
frameborder="0"
|
||||||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||||
|
allowfullscreen
|
||||||
|
></iframe>
|
||||||
|
|
||||||
|
### Facial recognition improvements
|
||||||
|
|
||||||
|
Over the past few releases, we have added many UI improvements to the facial recognition feature to help you manage the recognized people better. Some of the highlights:
|
||||||
|
|
||||||
|
#### Choose a new feature photo for a person.
|
||||||
|
|
||||||
|
<iframe
|
||||||
|
width="560"
|
||||||
|
height="315"
|
||||||
|
src="https://youtube.com/embed/PmJp8DmSh1U"
|
||||||
|
title="YouTube video player"
|
||||||
|
frameborder="0"
|
||||||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||||
|
allowfullscreen
|
||||||
|
></iframe>
|
||||||
|
|
||||||
|
#### Hide and show faces.
|
||||||
|
|
||||||
|
You can now select irrelevant faces to hide them. The hidden faces won’t be displayed in search results and the people section in the info panel.
|
||||||
|
|
||||||
|
#### Merge faces.
|
||||||
|
|
||||||
|
This is useful when you have multiple faces of the same person in your photos, and you want to merge them into one.
|
||||||
|
|
||||||
|
<iframe
|
||||||
|
width="560"
|
||||||
|
height="315"
|
||||||
|
src="https://youtube.com/embed/-Xskhw-vpc4"
|
||||||
|
title="YouTube video player"
|
||||||
|
frameborder="0"
|
||||||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||||
|
allowfullscreen
|
||||||
|
></iframe>
|
||||||
|
|
||||||
|
We also added a nifty mechanism that when naming a face, similar names will prompt you a merge face option for the convenience.
|
||||||
|
|
||||||
|
<iframe
|
||||||
|
width="560"
|
||||||
|
height="315"
|
||||||
|
src="https://youtube.com/embed/XzE6wficbl4"
|
||||||
|
title="YouTube video player"
|
||||||
|
frameborder="0"
|
||||||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||||
|
allowfullscreen
|
||||||
|
></iframe>
|
||||||
|
|
||||||
|
### Improvements on multi selection behavior on the web
|
||||||
|
|
||||||
|
We have added a new multi selection behavior on the web to help you select multiple items easier. You can now select a range of photos and videos by holding the `Shift` key.
|
||||||
|
|
||||||
|
<iframe
|
||||||
|
width="560"
|
||||||
|
height="315"
|
||||||
|
src="https://youtube.com/embed/e_SiuHpVnmM"
|
||||||
|
title="YouTube video player"
|
||||||
|
frameborder="0"
|
||||||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||||
|
allowfullscreen
|
||||||
|
></iframe>
|
||||||
|
|
||||||
|
### Shortcuts for common actions on the web.
|
||||||
|
|
||||||
|
Some of us only navigate the world and the web with a keyboard (looking at you, Vim and Emacs users). So it would take away the sacred weapon of choice to require many clicks to perform repetitive actions. So we added quick shortcuts for the following action on the web.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./images/web-shortcuts-panel.png').default}
|
||||||
|
width="100%"
|
||||||
|
style={{ borderRadius: '25px' }}
|
||||||
|
alt="Dot Env Example"
|
||||||
|
/>
|
||||||
|
|
||||||
|
### Support viewer for 360-panorama photos.
|
||||||
|
|
||||||
|
Photos with the EXIF property of `ProjectionType` will now have a special viewer on the web to view all the angles of the panorama.
|
||||||
|
|
||||||
|
The thumbnail of the 360 degrees panoramas will have a special icon on the top right of the thumbnail
|
||||||
|
|
||||||
|
<img
|
||||||
|
src="https://github.com/immich-app/immich/assets/61410067/728ca1b0-375c-4631-8081-a609843e702f"
|
||||||
|
width="50%"
|
||||||
|
style={{ borderRadius: '25px' }}
|
||||||
|
alt="Dot Env Example"
|
||||||
|
/>
|
||||||
|
|
||||||
|
Panorama in the detail view
|
||||||
|
|
||||||
|
<img
|
||||||
|
src="https://github.com/immich-app/immich/assets/61410067/3c89dac4-395d-45fa-9bc5-98a6248fd476"
|
||||||
|
width="50%"
|
||||||
|
style={{ borderRadius: '25px' }}
|
||||||
|
alt="Dot Env Example"
|
||||||
|
/>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Thank you, and I am asking for your support for the project. I hope to be a full-time maintainer of Immich one day to dedicate myself to the project as my life's work for the community and my family. You can find the support channels below:
|
||||||
|
|
||||||
|
- Monthly donation via [GitHub Sponsors](https://github.com/sponsors/alextran1502)
|
||||||
|
- One-time donation via [GitHub Sponsors](https://github.com/sponsors/alextran1502?frequency=one-time&sponsor=alextran1502)
|
||||||
|
- [Liberapay](https://liberapay.com/alex.tran1502/)
|
||||||
|
- [buymeacoffee](https://www.buymeacoffee.com/altran1502)
|
||||||
|
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
|
||||||
|
- Give a project a star - the contributors love gazing at the stars and seeing their creations shining in the sky.
|
||||||
|
|
||||||
|
Join our friendly [Discord](https://discord.gg/D8JsnBEuKb) to talk and discuss Immich, tech, or anything
|
||||||
|
|
||||||
|
Cheer!
|
||||||
|
|
||||||
|
Until next time!
|
||||||
|
|
||||||
|
Alex
|
||||||
@@ -99,3 +99,29 @@ After removing the containers and volumes, the **Files** can be cleaned up (if n
|
|||||||
### Why iOS app shows duplicate photos on the timeline while the web doesn't?
|
### Why iOS app shows duplicate photos on the timeline while the web doesn't?
|
||||||
|
|
||||||
If you are using `My Photo Stream`, the Photos app temporarily creates duplicates of photos taken in the last 30 days. These photos are included in the `Recents` album and thus shown up twice. To fix this, you can disable `My Photo Stream` in the native Photos app or choose a different album in the backup screen in Immich.
|
If you are using `My Photo Stream`, the Photos app temporarily creates duplicates of photos taken in the last 30 days. These photos are included in the `Recents` album and thus shown up twice. To fix this, you can disable `My Photo Stream` in the native Photos app or choose a different album in the backup screen in Immich.
|
||||||
|
|
||||||
|
### How can I move all data (photos, persons, albums) from one user to another?
|
||||||
|
|
||||||
|
This requires some database queries. You can do this on the command line (in the PostgreSQL container using the psql command), or you can add for example an [Adminer](https://www.adminer.org/) container to the `docker-compose.yml` file, so that you can use a web-interface.
|
||||||
|
|
||||||
|
:::warning
|
||||||
|
This is an advanced operation. If you can't to do it with the steps described here, this is not for you.
|
||||||
|
:::
|
||||||
|
|
||||||
|
1. **MAKE A BACKUP** - See [backup and restore](/docs/administration/backup-and-restore.md).
|
||||||
|
2. Find the id of both the 'source' and the 'destination' user (it's the id column in the users table)
|
||||||
|
3. Three tables need to be updated:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
// reassign albums
|
||||||
|
update albums set "ownerId" = '<destinationId>' where "ownerId" = '<sourceId>';
|
||||||
|
|
||||||
|
// reassign people
|
||||||
|
update person set "ownerId" = '<destinationId>' where "ownerId" = '<sourceId>';
|
||||||
|
|
||||||
|
// reassign assets
|
||||||
|
update assets set "ownerId" = '<destinationId>' where "ownerId" = '<sourceId>'
|
||||||
|
and checksum not in (select checksum from assets where "ownerId" = '<destinationId>');
|
||||||
|
```
|
||||||
|
|
||||||
|
4. There might be left-over assets in the 'source' user's library if they are skipped by the last query because of duplicate checksums. These are probably duplicates anyway, and can probably be removed.
|
||||||
|
|||||||
@@ -12,10 +12,12 @@ The `immich-server` docker image comes preinstalled with an administrative CLI (
|
|||||||
|
|
||||||
## How to run a command
|
## How to run a command
|
||||||
|
|
||||||
To run a command, [connect](/docs/guides/docker-help.md#attach-to-a-container) to the `immich_server` container and then execute the command via `immich <command>`.
|
To run a command, [connect](/docs/guides/docker-help.md#attach-to-a-container) to the `immich_server` container and then execute the command via `immich-admin <command>`.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
Note that the commands below should begin with `immich-admin`.
|
||||||
|
|
||||||
Reset Admin Password
|
Reset Admin Password
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -4,38 +4,107 @@ sidebar_position: 1
|
|||||||
|
|
||||||
# Architecture
|
# Architecture
|
||||||
|
|
||||||
|
Immich uses a traditional client-server design, with a dedicated database for data persistence. The frontend clients communicate with backend services over HTTP using REST APIs.
|
||||||
|
|
||||||
## High Level Diagram
|
## High Level Diagram
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Technology
|
The diagram shows clients communicating with the server via REST, as well as the flow of database between backend services.
|
||||||
|
|
||||||
Immich is a full-stack [TypeScript](https://www.typescriptlang.org/) application, with a [Flutter](https://flutter.dev/) mobile app.
|
## Clients
|
||||||
|
|
||||||
### Mobile
|
Immich has three main clients:
|
||||||
|
|
||||||
- [Flutter](https://flutter.dev/)
|
1. Mobile app - Android, iOS
|
||||||
- [Riverpod](https://riverpod.dev/) for state management.
|
2. Web app - Responsive website
|
||||||
|
3. CLI - Command-line utility for bulk upload
|
||||||
|
|
||||||
### Web
|
:::info
|
||||||
|
All three clients use [OpenAPI](./open-api.md) to auto-generate rest clients for easy integration. For more information about this process, see [OpenAPI](./open-api.md).
|
||||||
|
:::
|
||||||
|
|
||||||
- [SvelteKit](https://kit.svelte.dev/)
|
### Mobile App
|
||||||
- [Tailwindcss](https://tailwindcss.com/)
|
|
||||||
|
|
||||||
### Server
|
The mobile app is written in [Flutter](https://flutter.dev/). It uses [Isar Database](https://isar.dev/) for a local database and [Riverpod](https://riverpod.dev/) for state management.
|
||||||
|
|
||||||
- [Node.js](https://nodejs.org/)
|
### Web Client
|
||||||
- [Nest.js](https://nestjs.com/)
|
|
||||||
- [TypeORM](https://typeorm.io/) for database management.
|
|
||||||
- [Jest](https://jestjs.io/) for testing.
|
|
||||||
- [Python](https://www.python.org/) for Machine Learning.
|
|
||||||
|
|
||||||
### Database
|
The web app is a [TypeScript](https://www.typescriptlang.org/) project that uses [SvelteKit](https://kit.svelte.dev) and [Tailwindcss](https://tailwindcss.com/).
|
||||||
|
|
||||||
- [PostgreSQL](https://www.postgresql.org/)
|
### CLI
|
||||||
- [Redis](https://redis.io/) for job queuing.
|
|
||||||
- [Typesense](https://typesense.org/) for search.
|
|
||||||
|
|
||||||
### Web Server
|
The CLI is a [TypeScript](https://www.typescriptlang.org/) project that parses command line arguments to programmatically upload/import assets to an Immich server. See [Bulk Upload](/docs/features/bulk-upload.md) for more information about its usage.
|
||||||
|
|
||||||
- [NGINX](https://www.nginx.com/) for internal communication between containers and load balancing when scaling.
|
## Server
|
||||||
|
|
||||||
|
The Immich backend is divided into several services, which are run as individual docker containers.
|
||||||
|
|
||||||
|
1. `immich-server` - Handle and respond to REST API requests
|
||||||
|
1. `immich-microservices` - Execute background jobs (thumbnail generation, metadata extraction, transcoding, etc.)
|
||||||
|
1. `immich-machine-learning` - Execute machine learning models
|
||||||
|
1. `postgres` - Persistent data storage
|
||||||
|
1. `redis`- Queue management for `immich-microservices`
|
||||||
|
1. `typesense`- Specialized database for search, specifically with vector comparison features
|
||||||
|
|
||||||
|
### Immich Server
|
||||||
|
|
||||||
|
The Immich Server is a [TypeScript](https://www.typescriptlang.org/) project written for [Node.js](https://nodejs.org/). It uses the [Nest.js](https://nestjs.com) framework, with [TypeORM](https://typeorm.io/) for database management. The server codebase also loosely follows the [Hexagonal Architecture](<https://en.wikipedia.org/wiki/Hexagonal_architecture_(software)>). Specifically, we aim to separate technology specific implementations (`infra/`) from core business logic (`domain/`).
|
||||||
|
|
||||||
|
#### REST Endpoints
|
||||||
|
|
||||||
|
The server is a list of HTTP endpoints and associated handlers (controllers). Each controller usually implements the following CRUD operations:
|
||||||
|
|
||||||
|
- `POST` `/<type>` - **Create**
|
||||||
|
- `GET` `/<type>` - **Read** (all)
|
||||||
|
- `GET` `/<type>/:id` - **Read** (by id)
|
||||||
|
- `PUT` `/<type>/:id` - **Updated** (by id)
|
||||||
|
- `DELETE` `/<type>/:id` - **Delete** (by id)
|
||||||
|
|
||||||
|
#### DTOs
|
||||||
|
|
||||||
|
The server uses [Domain Transfer Objects](https://en.wikipedia.org/wiki/Data_transfer_object) as public interfaces for the inputs (query, params, and body) and outputs (response) for each endpoint. DTOs translate to [OpenAPI](./open-api.md) schemas and control the generated code used by each client.
|
||||||
|
|
||||||
|
### Microservices
|
||||||
|
|
||||||
|
The Immich Microservices image uses the same `Dockerfile` as the Immich Server, but with a different entrypoint. The Immich Microservices service mainly handles executing jobs, which include the following:
|
||||||
|
|
||||||
|
- Thumbnail Generation
|
||||||
|
- Metadata Extraction
|
||||||
|
- Video Transcoding
|
||||||
|
- Object Tagging
|
||||||
|
- Facial Recognition
|
||||||
|
- Storage Template Migration
|
||||||
|
- Search (Typesense synchronization)
|
||||||
|
- Sidecar (see [XMP Sidecars](/docs/features/xmp-sidecars.md))
|
||||||
|
- Background jobs (file deletion, user deletion)
|
||||||
|
|
||||||
|
:::info
|
||||||
|
This list closely matches what is available on the [Administration > Jobs](/docs/administration/jobs.md) page, which provides some remote queue management capabilities.
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Machine Learning
|
||||||
|
|
||||||
|
The machine learning service is written in [Python](https://www.python.org/) and uses [FastAPI](https://fastapi.tiangolo.com/) for HTTP communication.
|
||||||
|
|
||||||
|
All machine learning related operations have been externalized to this service, `immich-machine-learning`. Python is a natural choice for AI and machine learning. It also has some pretty specific hardware requirements. Running it as a separate container makes it possible to run the container on a separate machine, or easily disable it entirely.
|
||||||
|
|
||||||
|
Machine learning models are also quite _large_, requiring _quite a bit_ of memory. We are always looking for ways to improve and optimize this aspect of this container specifically.
|
||||||
|
|
||||||
|
### Postgres
|
||||||
|
|
||||||
|
Immich persists data in Postgres, which includes information about access and authorization, users, albums, asset, sharing settings, etc.
|
||||||
|
|
||||||
|
:::info
|
||||||
|
See [Database Migrations](./database-migrations.md) for more information about how to modify the database to create an index, modify a table, add a new column, etc.
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Redis
|
||||||
|
|
||||||
|
Immich uses [Redis](https://redis.com/) via [BullMQ](https://docs.bullmq.io/) to manage job queues. Some jobs trigger subsequent jobs. For example, object detection relies on thumbnail generation and automatically run after one is generated.
|
||||||
|
|
||||||
|
### Typesense
|
||||||
|
|
||||||
|
Immich synchronizes some of the Postgres data into Typesense, so it can execute vector related queries in order to implement certain features including, facial recognition and CLIP search.
|
||||||
|
|
||||||
|
<!-- - [NGINX](https://www.nginx.com/) for internal communication between containers and load balancing when scaling. -->
|
||||||
|
|||||||
22
docs/docs/developer/directories.md
Normal file
22
docs/docs/developer/directories.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
title: Directories
|
||||||
|
---
|
||||||
|
|
||||||
|
# Repository Folder Structure
|
||||||
|
|
||||||
|
Our [GitHub Repository](https://github.com/immich-app/immich) is a [monorepo](https://en.wikipedia.org/wiki/Monorepo) and includes the following folders:
|
||||||
|
|
||||||
|
| Folder | Description |
|
||||||
|
| :------------------ | :------------------------------------------------------------------- |
|
||||||
|
| `.github/` | Github templates and action workflows |
|
||||||
|
| `.vscode/` | VSCode debug launch profiles |
|
||||||
|
| `cli/` | Source code for the work-in-progress CLI rewrite |
|
||||||
|
| `docker/` | Docker compose resources for dev, test, production |
|
||||||
|
| `design/` | Screenshots and logos for the README |
|
||||||
|
| `docs/` | Source code for the [https://immich.app](https://immich.app) website |
|
||||||
|
| `machine-learning/` | Source code for the `immich-machine-learning` docker image |
|
||||||
|
| `misc/release/` | Scripts for version pumps and draft releases |
|
||||||
|
| `mobile/` | Source code for the mobile app, both Android and iOS |
|
||||||
|
| `nginx/` | Source code for the `immich-proxy` docker image |
|
||||||
|
| `server/` | Source code for the `immich-server` docker image |
|
||||||
|
| `web/` | Source code for the `immich-web` docker image |
|
||||||
@@ -170,4 +170,10 @@ The proper command for above would be as shown below. You should have access to
|
|||||||
immich upload --key HFEJ38DNSDUEG --server http://192.168.1.216:2283/api --recursive /path/to/media --import
|
immich upload --key HFEJ38DNSDUEG --server http://192.168.1.216:2283/api --recursive /path/to/media --import
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you are running the import using the docker command, please note that the volumes should point to the `/path/to/media` exactly on the environment the CLI command is being run on
|
||||||
|
|
||||||
|
```
|
||||||
|
docker run -it --rm -v "/path/to/media:/path/to/media" ghcr.io/immich-app/immich-cli:latest upload --key HFEJ38DNSDUEG --server http://192.168.1.216:2283/api --recursive /path/to/media --import
|
||||||
|
```
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|||||||
60
docs/docs/features/hardware-transcoding.md
Normal file
60
docs/docs/features/hardware-transcoding.md
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# Hardware Transcoding [Experimental]
|
||||||
|
|
||||||
|
This feature allows you to use a GPU or Intel Quick Sync to accelerate transcoding and reduce CPU load.
|
||||||
|
Note that hardware transcoding is much less efficient for file sizes.
|
||||||
|
As this is a new feature, it is still experimental and may not work on all systems.
|
||||||
|
|
||||||
|
## Supported APIs
|
||||||
|
|
||||||
|
- NVENC
|
||||||
|
- NVIDIA GPUs
|
||||||
|
- Quick Sync
|
||||||
|
- Intel CPUs
|
||||||
|
- VAAPI
|
||||||
|
- GPUs
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
- The instructions and configurations here are specific to Docker Compose. Other container engines may require different configuration.
|
||||||
|
- Only Linux and Windows (through WSL2) servers are supported.
|
||||||
|
- WSL2 does not support Quick Sync.
|
||||||
|
- Raspberry Pi is currently not supported.
|
||||||
|
- Two-pass mode is only supported for NVENC. Other APIs will ignore this setting.
|
||||||
|
- Only encoding is currently hardware accelerated, so the CPU is still used for software decoding.
|
||||||
|
- This is mainly because the original video may not be hardware-decodable.
|
||||||
|
- Hardware dependent
|
||||||
|
- Codec support varies, but H.264 and HEVC are usually supported.
|
||||||
|
- Notably, NVIDIA and AMD GPUs do not support VP9 encoding.
|
||||||
|
- Newer devices tend to have higher transcoding quality.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
#### NVENC
|
||||||
|
|
||||||
|
- You must have the official NVIDIA driver installed on the server.
|
||||||
|
- On Linux (except for WSL2), you also need to have [NVIDIA Container Runtime][nvcr] installed.
|
||||||
|
|
||||||
|
#### QSV
|
||||||
|
|
||||||
|
- For VP9 to work:
|
||||||
|
- You must have a 9th gen Intel CPU or newer
|
||||||
|
- If you have an 11th gen CPU or older, then you may need to follow [these][jellyfin-lp] instructions as Low-Power mode is required
|
||||||
|
- Additionally, if the server specifically has an 11th gen CPU and is running kernel 5.15 (shipped with Ubuntu 22.04 LTS), then you will need to upgrade this kernel (from [Jellyfin docs][jellyfin-kernel-bug])
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
1. If you do not already have it, download the latest [`hwaccel.yml`][hw-file] file and ensure it's in the same folder as the `docker-compose.yml`.
|
||||||
|
2. Uncomment the lines that apply to your system and desired usage.
|
||||||
|
3. In the `docker-compose.yml` under `immich-microservices`, uncomment the lines relating to the `hwaccel.yml` file.
|
||||||
|
4. Redeploy the `immich-microservices` container with these updated settings.
|
||||||
|
5. In the Admin page under `FFmpeg settings`, change the hardware acceleration setting to the appropriate option and save.
|
||||||
|
|
||||||
|
## Tips
|
||||||
|
|
||||||
|
- You may want to choose a slower preset than for software transcoding to maintain quality and efficiency
|
||||||
|
- While you can use VAAPI with Nvidia GPUs and Intel CPUs, prefer the more specific APIs since they're more optimized for their respective devices
|
||||||
|
|
||||||
|
[hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.yml
|
||||||
|
[nvcr]: https://github.com/NVIDIA/nvidia-container-runtime/
|
||||||
|
[jellyfin-lp]: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-and-verify-lp-mode-on-linux
|
||||||
|
[jellyfin-kernel-bug]: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#known-issues-and-limitations
|
||||||
26
docs/docs/guides/machine-learning.md
Normal file
26
docs/docs/guides/machine-learning.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Hosting the machine-learning service on another system
|
||||||
|
|
||||||
|
To alleviate [performance issues on low-memory systems](/docs/FAQ.md#why-is-immich-slow-on-low-memory-systems-like-the-raspberry-pi) like the Raspberry Pi, you may also host Immich's machine-learning container on a more powerful system (e.g. your laptop or desktop computer):
|
||||||
|
|
||||||
|
- Set `IMMICH_MACHINE_LEARNING_URL` to point to the designated ML system, e.g. `http://workstation:3003`.
|
||||||
|
- Copy the following `docker-compose.yml` to your ML system.
|
||||||
|
- Start the container by running `docker-compose up -d` or `docker compose up -d` (depending on your Docker version).
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
immich-machine-learning:
|
||||||
|
container_name: immich_machine_learning
|
||||||
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
|
volumes:
|
||||||
|
- model-cache:/cache
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 3003:3003
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
model-cache:
|
||||||
|
```
|
||||||
|
|
||||||
|
Please note that version mismatches between both hosts may cause instabilities and bugs, so make sure to always perform updates together.
|
||||||
@@ -25,10 +25,18 @@ wget https://github.com/immich-app/immich/releases/latest/download/docker-compos
|
|||||||
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
|
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```bash title="(Optional) Get hwaccel.yml file"
|
||||||
|
wget https://github.com/immich-app/immich/releases/latest/download/hwaccel.yml
|
||||||
|
```
|
||||||
|
|
||||||
or by downloading from your browser and moving the files to the directory that you created.
|
or by downloading from your browser and moving the files to the directory that you created.
|
||||||
|
|
||||||
Note: If you downloaded the files from your browser, also ensure that you rename `example.env` to `.env`.
|
Note: If you downloaded the files from your browser, also ensure that you rename `example.env` to `.env`.
|
||||||
|
|
||||||
|
:::info
|
||||||
|
Optionally, you can use the [`hwaccel.yml`][hw-file] file to enable hardware acceleration for transcoding. See the [Hardware Transcoding](/docs/features/hardware-transcoding.md) guide for info on how to set this up.
|
||||||
|
:::
|
||||||
|
|
||||||
### Step 2 - Populate the .env file with custom values
|
### Step 2 - Populate the .env file with custom values
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@@ -166,6 +174,10 @@ docker-compose up -d # or `docker compose up -d` based on your docker-compos
|
|||||||
For more information on how to use the application, please refer to the [Post Installation](/docs/install/post-install.mdx) guide.
|
For more information on how to use the application, please refer to the [Post Installation](/docs/install/post-install.mdx) guide.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Note that downloading container images might require you to authenticate to the GitHub Container Registry ([steps here](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry)).
|
||||||
|
:::
|
||||||
|
|
||||||
### Step 4 - Upgrading
|
### Step 4 - Upgrading
|
||||||
|
|
||||||
If `IMMICH_VERSION` is set, it will need to be updated to the latest or desired version.
|
If `IMMICH_VERSION` is set, it will need to be updated to the latest or desired version.
|
||||||
@@ -182,4 +194,5 @@ Immich is currently under heavy development, which means you can expect breaking
|
|||||||
|
|
||||||
[compose-file]: https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
[compose-file]: https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
||||||
[env-file]: https://github.com/immich-app/immich/releases/latest/download/example.env
|
[env-file]: https://github.com/immich-app/immich/releases/latest/download/example.env
|
||||||
|
[hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.yml
|
||||||
[watchtower]: https://containrrr.dev/watchtower/
|
[watchtower]: https://containrrr.dev/watchtower/
|
||||||
|
|||||||
@@ -184,3 +184,24 @@ Typesense URL example JSON before encoding:
|
|||||||
| `MACHINE_LEARNING_CLASSIFICATION_MODEL` | Classification Model | `microsoft/resnet-50` | machine learning |
|
| `MACHINE_LEARNING_CLASSIFICATION_MODEL` | Classification Model | `microsoft/resnet-50` | machine learning |
|
||||||
| `MACHINE_LEARNING_CACHE_FOLDER` | ML Cache Location | `/cache` | machine learning |
|
| `MACHINE_LEARNING_CACHE_FOLDER` | ML Cache Location | `/cache` | machine learning |
|
||||||
| `TRANSFORMERS_CACHE` | ML Transformers Cache Location | `/cache` | machine learning |
|
| `TRANSFORMERS_CACHE` | ML Transformers Cache Location | `/cache` | machine learning |
|
||||||
|
|
||||||
|
## Docker Secrets
|
||||||
|
|
||||||
|
The following variables support the use of [Docker secrets](https://docs.docker.com/engine/swarm/secrets/) for additional security.
|
||||||
|
|
||||||
|
To use any of these, replace the regular environment variable with the equivalent `_FILE` environment variable. The value of
|
||||||
|
the `_FILE` variable should be set to the path of a file containing the variable value.
|
||||||
|
|
||||||
|
| Regular Variable | Equivalent Docker Secrets '\_FILE' Variable |
|
||||||
|
| :----------------: | :-----------------------------------------: |
|
||||||
|
| `DB_HOSTNAME` | `DB_HOSTNAME_FILE`<sup>\*1</sup> |
|
||||||
|
| `DB_DATABASE_NAME` | `DB_DATABASE_NAME_FILE`<sup>\*1</sup> |
|
||||||
|
| `DB_USERNAME` | `DB_USERNAME_FILE`<sup>\*1</sup> |
|
||||||
|
| `DB_PASSWORD` | `DB_PASSWORD_FILE`<sup>\*1</sup> |
|
||||||
|
| `REDIS_PASSWORD` | `REDIS_PASSWORD_FILE`<sup>\*2</sup> |
|
||||||
|
|
||||||
|
\*1: See the [official documentation](https://github.com/docker-library/docs/tree/master/postgres#docker-secrets) for
|
||||||
|
details on how to use Docker Secrets in the Postgres image.
|
||||||
|
|
||||||
|
\*2: See [this comment](https://github.com/docker-library/redis/issues/46#issuecomment-335326234) for an example of how
|
||||||
|
to use use a Docker secret for the password in the Redis container.
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ I really like the Japanese culture, especially the books, history, and food. The
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
One of my favorite books is [Taikō](https://www.goodreads.com/book/show/336228.Taiko), it is a story about a prominent figure in the history of Japan, [Toyotomy Hideyoshi](https://www.britannica.com/biography/Toyotomi-Hideyoshi). He came from nothing, and through his resilience and wonderful mind, he has become one of the most powerful rulers in Japan's history. I enjoy his personality and the way he moved through life.
|
One of my favorite books is [Taikō](https://www.goodreads.com/book/show/336228.Taiko), it is a story about a prominent figure in the history of Japan, [Toyotomi Hideyoshi](https://www.britannica.com/biography/Toyotomi-Hideyoshi). He came from nothing, and through his resilience and wonderful mind, he has become one of the most powerful rulers in Japan's history. I enjoy his personality and the way he moved through life.
|
||||||
|
|
||||||
The color is an adaptation of **_App-Which-Must-Not-Be-Named_**'s color scheme, with an extra color (pink) to complete the flower's fifth petal. The petal layers are the same color scheme as the main layer rotating back and forth to "bring the flower to life."
|
The color is an adaptation of **_App-Which-Must-Not-Be-Named_**'s color scheme, with an extra color (pink) to complete the flower's fifth petal. The petal layers are the same color scheme as the main layer rotating back and forth to "bring the flower to life."
|
||||||
|
|
||||||
|
|||||||
21
machine-learning/README_es_ES.md
Normal file
21
machine-learning/README_es_ES.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Immich Machine Learning
|
||||||
|
|
||||||
|
- Clasificación de imágenes
|
||||||
|
- Incorporación de CLIP
|
||||||
|
- Reconocimiento facial
|
||||||
|
|
||||||
|
# Configuración
|
||||||
|
|
||||||
|
Este proyecto utiliza [Poetry](https://python-poetry.org/docs/#installation), así que asegúrate de instalarlo primero.
|
||||||
|
Ejecutar `poetry install --no-root --with dev` instalará todo lo necesario en un entorno virtual aislado.
|
||||||
|
|
||||||
|
Para agregar o eliminar dependencias, puedes utilizar los comandos `poetry add $PACKAGE_NAME` y `poetry remove $PACKAGE_NAME`, respectivamente.
|
||||||
|
Asegúrate de hacer commit de los archivos `poetry.lock` y `pyproject.toml` para reflejar cualquier cambio en las dependencias.
|
||||||
|
|
||||||
|
# Pruebas de carga
|
||||||
|
|
||||||
|
Para medir la velocidad y latencia de inferencia, puedes utilizar [Locust](https://locust.io/) con el archivo `locustfile.py` proporcionado.
|
||||||
|
Locust funciona haciendo consultas a los puntos finales del modelo y agregando estadísticas, lo que significa que la aplicación debe estar desplegada.
|
||||||
|
Puedes ejecutar `load_test.sh` para implementar automáticamente la aplicación localmente e iniciar Locust, ajustando opcionalmente sus variables de entorno según sea necesario.
|
||||||
|
|
||||||
|
Alternativamente, para pruebas más personalizadas, también puedes ejecutar `locust` directamente: consulta la [documentación](https://docs.locust.io/en/stable/index.html). Ten en cuenta que, en la jerga de Locust, la concurrencia se mide en `usuarios`, y cada usuario ejecuta una tarea a la vez. Para lograr una concurrencia específica por punto final, multiplica ese número por la cantidad de puntos finales que se desean consultar. Por ejemplo, si hay 3 puntos finales y deseas que cada uno de ellos reciba 8 solicitudes al mismo tiempo, debes configurar el número de usuarios en 24.
|
||||||
@@ -20,7 +20,7 @@ class Settings(BaseSettings):
|
|||||||
min_face_score: float = 0.7
|
min_face_score: float = 0.7
|
||||||
test_full: bool = False
|
test_full: bool = False
|
||||||
|
|
||||||
class Config(BaseSettings.Config):
|
class Config:
|
||||||
env_prefix = "MACHINE_LEARNING_"
|
env_prefix = "MACHINE_LEARNING_"
|
||||||
case_sensitive = False
|
case_sensitive = False
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
from types import SimpleNamespace
|
from typing import Iterator, TypeAlias
|
||||||
from typing import Any, Iterator, TypeAlias
|
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
@@ -22,91 +21,6 @@ def cv_image(pil_image: Image.Image) -> ndarray:
|
|||||||
return np.asarray(pil_image)[:, :, ::-1] # PIL uses RGB while cv2 uses BGR
|
return np.asarray(pil_image)[:, :, ::-1] # PIL uses RGB while cv2 uses BGR
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def mock_classifier_pipeline() -> Iterator[mock.Mock]:
|
|
||||||
with mock.patch("app.models.image_classification.pipeline") as model:
|
|
||||||
classifier_preds = [
|
|
||||||
{"label": "that's an image alright", "score": 0.8},
|
|
||||||
{"label": "well it ends with .jpg", "score": 0.1},
|
|
||||||
{"label": "idk, im just seeing bytes", "score": 0.05},
|
|
||||||
{"label": "not sure", "score": 0.04},
|
|
||||||
{"label": "probably a virus", "score": 0.01},
|
|
||||||
]
|
|
||||||
|
|
||||||
def forward(
|
|
||||||
inputs: Image.Image | list[Image.Image], **kwargs: Any
|
|
||||||
) -> list[dict[str, Any]] | list[list[dict[str, Any]]]:
|
|
||||||
if isinstance(inputs, list) and not all([isinstance(img, Image.Image) for img in inputs]):
|
|
||||||
raise TypeError
|
|
||||||
elif not isinstance(inputs, Image.Image):
|
|
||||||
raise TypeError
|
|
||||||
|
|
||||||
if isinstance(inputs, list):
|
|
||||||
return [classifier_preds] * len(inputs)
|
|
||||||
|
|
||||||
return classifier_preds
|
|
||||||
|
|
||||||
model.return_value = forward
|
|
||||||
yield model
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def mock_st() -> Iterator[mock.Mock]:
|
|
||||||
with mock.patch("app.models.clip.SentenceTransformer") as model:
|
|
||||||
embedding = np.random.rand(512).astype(np.float32)
|
|
||||||
|
|
||||||
def encode(inputs: Image.Image | list[Image.Image], **kwargs: Any) -> ndarray | list[ndarray]:
|
|
||||||
# mypy complains unless isinstance(inputs, list) is used explicitly
|
|
||||||
img_batch = isinstance(inputs, list) and all([isinstance(inst, Image.Image) for inst in inputs])
|
|
||||||
text_batch = isinstance(inputs, list) and all([isinstance(inst, str) for inst in inputs])
|
|
||||||
if isinstance(inputs, list) and not any([img_batch, text_batch]):
|
|
||||||
raise TypeError
|
|
||||||
|
|
||||||
if isinstance(inputs, list):
|
|
||||||
return np.stack([embedding] * len(inputs))
|
|
||||||
|
|
||||||
return embedding
|
|
||||||
|
|
||||||
mocked = mock.Mock()
|
|
||||||
mocked.encode = encode
|
|
||||||
model.return_value = mocked
|
|
||||||
yield model
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def mock_faceanalysis() -> Iterator[mock.Mock]:
|
|
||||||
with mock.patch("app.models.facial_recognition.FaceAnalysis") as model:
|
|
||||||
face_preds = [
|
|
||||||
SimpleNamespace( # this is so these fields can be accessed through dot notation
|
|
||||||
**{
|
|
||||||
"bbox": np.random.rand(4).astype(np.float32),
|
|
||||||
"kps": np.random.rand(5, 2).astype(np.float32),
|
|
||||||
"det_score": np.array([0.67]).astype(np.float32),
|
|
||||||
"normed_embedding": np.random.rand(512).astype(np.float32),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
SimpleNamespace(
|
|
||||||
**{
|
|
||||||
"bbox": np.random.rand(4).astype(np.float32),
|
|
||||||
"kps": np.random.rand(5, 2).astype(np.float32),
|
|
||||||
"det_score": np.array([0.4]).astype(np.float32),
|
|
||||||
"normed_embedding": np.random.rand(512).astype(np.float32),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
||||||
def get(image: np.ndarray[int, np.dtype[np.float32]], **kwargs: Any) -> list[SimpleNamespace]:
|
|
||||||
if not isinstance(image, np.ndarray):
|
|
||||||
raise TypeError
|
|
||||||
|
|
||||||
return face_preds
|
|
||||||
|
|
||||||
mocked = mock.Mock()
|
|
||||||
mocked.get = get
|
|
||||||
model.return_value = mocked
|
|
||||||
yield model
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def mock_get_model() -> Iterator[mock.Mock]:
|
def mock_get_model() -> Iterator[mock.Mock]:
|
||||||
with mock.patch("app.models.cache.InferenceModel.from_model_type", autospec=True) as mocked:
|
with mock.patch("app.models.cache.InferenceModel.from_model_type", autospec=True) as mocked:
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ from fastapi import Body, Depends, FastAPI
|
|||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from .config import settings
|
from .config import settings
|
||||||
from .models.base import InferenceModel
|
|
||||||
from .models.cache import ModelCache
|
from .models.cache import ModelCache
|
||||||
from .schemas import (
|
from .schemas import (
|
||||||
EmbeddingResponse,
|
EmbeddingResponse,
|
||||||
@@ -38,10 +37,7 @@ async def load_models() -> None:
|
|||||||
|
|
||||||
# Get all models
|
# Get all models
|
||||||
for model_name, model_type in models:
|
for model_name, model_type in models:
|
||||||
if settings.eager_startup:
|
await app.state.model_cache.get(model_name, model_type, eager=settings.eager_startup)
|
||||||
await app.state.model_cache.get(model_name, model_type)
|
|
||||||
else:
|
|
||||||
InferenceModel.from_model_type(model_type, model_name)
|
|
||||||
|
|
||||||
|
|
||||||
@app.on_event("startup")
|
@app.on_event("startup")
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from abc import ABC, abstractmethod
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from shutil import rmtree
|
from shutil import rmtree
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
from zipfile import BadZipFile
|
||||||
|
|
||||||
from onnxruntime.capi.onnxruntime_pybind11_state import InvalidProtobuf # type: ignore
|
from onnxruntime.capi.onnxruntime_pybind11_state import InvalidProtobuf # type: ignore
|
||||||
|
|
||||||
@@ -14,22 +15,43 @@ from ..schemas import ModelType
|
|||||||
class InferenceModel(ABC):
|
class InferenceModel(ABC):
|
||||||
_model_type: ModelType
|
_model_type: ModelType
|
||||||
|
|
||||||
def __init__(self, model_name: str, cache_dir: Path | str | None = None, **model_kwargs: Any) -> None:
|
def __init__(
|
||||||
|
self, model_name: str, cache_dir: Path | str | None = None, eager: bool = True, **model_kwargs: Any
|
||||||
|
) -> None:
|
||||||
self.model_name = model_name
|
self.model_name = model_name
|
||||||
|
self._loaded = False
|
||||||
self._cache_dir = Path(cache_dir) if cache_dir is not None else get_cache_dir(model_name, self.model_type)
|
self._cache_dir = Path(cache_dir) if cache_dir is not None else get_cache_dir(model_name, self.model_type)
|
||||||
|
loader = self.load if eager else self.download
|
||||||
try:
|
try:
|
||||||
self.load(**model_kwargs)
|
loader(**model_kwargs)
|
||||||
except (OSError, InvalidProtobuf):
|
except (OSError, InvalidProtobuf, BadZipFile):
|
||||||
self.clear_cache()
|
self.clear_cache()
|
||||||
self.load(**model_kwargs)
|
loader(**model_kwargs)
|
||||||
|
|
||||||
|
def download(self, **model_kwargs: Any) -> None:
|
||||||
|
if not self.cached:
|
||||||
|
self._download(**model_kwargs)
|
||||||
|
|
||||||
|
def load(self, **model_kwargs: Any) -> None:
|
||||||
|
self.download(**model_kwargs)
|
||||||
|
self._load(**model_kwargs)
|
||||||
|
self._loaded = True
|
||||||
|
|
||||||
|
def predict(self, inputs: Any) -> Any:
|
||||||
|
if not self._loaded:
|
||||||
|
self.load()
|
||||||
|
return self._predict(inputs)
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def load(self, **model_kwargs: Any) -> None:
|
def _predict(self, inputs: Any) -> Any:
|
||||||
...
|
...
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def predict(self, inputs: Any) -> Any:
|
def _download(self, **model_kwargs: Any) -> None:
|
||||||
|
...
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def _load(self, **model_kwargs: Any) -> None:
|
||||||
...
|
...
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -44,6 +66,10 @@ class InferenceModel(ABC):
|
|||||||
def cache_dir(self, cache_dir: Path) -> None:
|
def cache_dir(self, cache_dir: Path) -> None:
|
||||||
self._cache_dir = cache_dir
|
self._cache_dir = cache_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cached(self) -> bool:
|
||||||
|
return self.cache_dir.exists() and any(self.cache_dir.iterdir())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_model_type(cls, model_type: ModelType, model_name: str, **model_kwargs: Any) -> InferenceModel:
|
def from_model_type(cls, model_type: ModelType, model_name: str, **model_kwargs: Any) -> InferenceModel:
|
||||||
subclasses = {subclass._model_type: subclass for subclass in cls.__subclasses__()}
|
subclasses = {subclass._model_type: subclass for subclass in cls.__subclasses__()}
|
||||||
@@ -55,7 +81,11 @@ class InferenceModel(ABC):
|
|||||||
def clear_cache(self) -> None:
|
def clear_cache(self) -> None:
|
||||||
if not self.cache_dir.exists():
|
if not self.cache_dir.exists():
|
||||||
return
|
return
|
||||||
elif not rmtree.avoids_symlink_attacks:
|
if not rmtree.avoids_symlink_attacks:
|
||||||
raise RuntimeError("Attempted to clear cache, but rmtree is not safe on this platform.")
|
raise RuntimeError("Attempted to clear cache, but rmtree is not safe on this platform.")
|
||||||
|
|
||||||
rmtree(self.cache_dir)
|
if self.cache_dir.is_dir():
|
||||||
|
rmtree(self.cache_dir)
|
||||||
|
else:
|
||||||
|
self.cache_dir.unlink()
|
||||||
|
self.cache_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
from pathlib import Path
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from PIL.Image import Image
|
from PIL.Image import Image
|
||||||
from sentence_transformers import SentenceTransformer
|
from sentence_transformers import SentenceTransformer
|
||||||
|
from sentence_transformers.util import snapshot_download
|
||||||
|
|
||||||
from ..schemas import ModelType
|
from ..schemas import ModelType
|
||||||
from .base import InferenceModel
|
from .base import InferenceModel
|
||||||
@@ -11,12 +11,21 @@ from .base import InferenceModel
|
|||||||
class CLIPSTEncoder(InferenceModel):
|
class CLIPSTEncoder(InferenceModel):
|
||||||
_model_type = ModelType.CLIP
|
_model_type = ModelType.CLIP
|
||||||
|
|
||||||
def load(self, **model_kwargs: Any) -> None:
|
def _download(self, **model_kwargs: Any) -> None:
|
||||||
|
repo_id = self.model_name if "/" in self.model_name else f"sentence-transformers/{self.model_name}"
|
||||||
|
snapshot_download(
|
||||||
|
cache_dir=self.cache_dir,
|
||||||
|
repo_id=repo_id,
|
||||||
|
library_name="sentence-transformers",
|
||||||
|
ignore_files=["flax_model.msgpack", "rust_model.ot", "tf_model.h5"],
|
||||||
|
)
|
||||||
|
|
||||||
|
def _load(self, **model_kwargs: Any) -> None:
|
||||||
self.model = SentenceTransformer(
|
self.model = SentenceTransformer(
|
||||||
self.model_name,
|
self.model_name,
|
||||||
cache_folder=self.cache_dir.as_posix(),
|
cache_folder=self.cache_dir.as_posix(),
|
||||||
**model_kwargs,
|
**model_kwargs,
|
||||||
)
|
)
|
||||||
|
|
||||||
def predict(self, image_or_text: Image | str) -> list[float]:
|
def _predict(self, image_or_text: Image | str) -> list[float]:
|
||||||
return self.model.encode(image_or_text).tolist()
|
return self.model.encode(image_or_text).tolist()
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
|
import zipfile
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
import cv2
|
import cv2
|
||||||
from insightface.app import FaceAnalysis
|
import numpy as np
|
||||||
|
from insightface.model_zoo import ArcFaceONNX, RetinaFace
|
||||||
|
from insightface.utils.face_align import norm_crop
|
||||||
|
from insightface.utils.storage import BASE_REPO_URL, download_file
|
||||||
|
|
||||||
from ..config import settings
|
from ..config import settings
|
||||||
from ..schemas import ModelType
|
from ..schemas import ModelType
|
||||||
@@ -22,39 +26,62 @@ class FaceRecognizer(InferenceModel):
|
|||||||
self.min_score = min_score
|
self.min_score = min_score
|
||||||
super().__init__(model_name, cache_dir, **model_kwargs)
|
super().__init__(model_name, cache_dir, **model_kwargs)
|
||||||
|
|
||||||
def load(self, **model_kwargs: Any) -> None:
|
def _download(self, **model_kwargs: Any) -> None:
|
||||||
self.model = FaceAnalysis(
|
zip_file = self.cache_dir / f"{self.model_name}.zip"
|
||||||
name=self.model_name,
|
download_file(f"{BASE_REPO_URL}/{self.model_name}.zip", zip_file)
|
||||||
root=self.cache_dir.as_posix(),
|
with zipfile.ZipFile(zip_file, "r") as zip:
|
||||||
allowed_modules=["detection", "recognition"],
|
members = zip.namelist()
|
||||||
**model_kwargs,
|
det_file = next(model for model in members if model.startswith("det_"))
|
||||||
)
|
rec_file = next(model for model in members if model.startswith("w600k_"))
|
||||||
self.model.prepare(
|
zip.extractall(self.cache_dir, members=[det_file, rec_file])
|
||||||
ctx_id=0,
|
zip_file.unlink()
|
||||||
|
|
||||||
|
def _load(self, **model_kwargs: Any) -> None:
|
||||||
|
try:
|
||||||
|
det_file = next(self.cache_dir.glob("det_*.onnx"))
|
||||||
|
rec_file = next(self.cache_dir.glob("w600k_*.onnx"))
|
||||||
|
except StopIteration:
|
||||||
|
raise FileNotFoundError("Facial recognition models not found in cache directory")
|
||||||
|
self.det_model = RetinaFace(det_file.as_posix())
|
||||||
|
self.rec_model = ArcFaceONNX(rec_file.as_posix())
|
||||||
|
|
||||||
|
self.det_model.prepare(
|
||||||
|
ctx_id=-1,
|
||||||
det_thresh=self.min_score,
|
det_thresh=self.min_score,
|
||||||
det_size=(640, 640),
|
input_size=(640, 640),
|
||||||
)
|
)
|
||||||
|
self.rec_model.prepare(ctx_id=-1)
|
||||||
|
|
||||||
|
def _predict(self, image: cv2.Mat) -> list[dict[str, Any]]:
|
||||||
|
bboxes, kpss = self.det_model.detect(image)
|
||||||
|
if bboxes.size == 0:
|
||||||
|
return []
|
||||||
|
assert isinstance(kpss, np.ndarray)
|
||||||
|
|
||||||
|
scores = bboxes[:, 4].tolist()
|
||||||
|
bboxes = bboxes[:, :4].round().tolist()
|
||||||
|
|
||||||
def predict(self, image: cv2.Mat) -> list[dict[str, Any]]:
|
|
||||||
height, width, _ = image.shape
|
|
||||||
results = []
|
results = []
|
||||||
faces = self.model.get(image)
|
height, width, _ = image.shape
|
||||||
|
for (x1, y1, x2, y2), score, kps in zip(bboxes, scores, kpss):
|
||||||
for face in faces:
|
cropped_img = norm_crop(image, kps)
|
||||||
x1, y1, x2, y2 = face.bbox
|
embedding = self.rec_model.get_feat(cropped_img)[0].tolist()
|
||||||
|
|
||||||
results.append(
|
results.append(
|
||||||
{
|
{
|
||||||
"imageWidth": width,
|
"imageWidth": width,
|
||||||
"imageHeight": height,
|
"imageHeight": height,
|
||||||
"boundingBox": {
|
"boundingBox": {
|
||||||
"x1": round(x1),
|
"x1": x1,
|
||||||
"y1": round(y1),
|
"y1": y1,
|
||||||
"x2": round(x2),
|
"x2": x2,
|
||||||
"y2": round(y2),
|
"y2": y2,
|
||||||
},
|
},
|
||||||
"score": face.det_score.item(),
|
"score": score,
|
||||||
"embedding": face.normed_embedding.tolist(),
|
"embedding": embedding,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cached(self) -> bool:
|
||||||
|
return self.cache_dir.is_dir() and any(self.cache_dir.glob("*.onnx"))
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
from huggingface_hub import snapshot_download
|
||||||
from PIL.Image import Image
|
from PIL.Image import Image
|
||||||
from transformers.pipelines import pipeline
|
from transformers.pipelines import pipeline
|
||||||
|
|
||||||
@@ -22,14 +23,19 @@ class ImageClassifier(InferenceModel):
|
|||||||
self.min_score = min_score
|
self.min_score = min_score
|
||||||
super().__init__(model_name, cache_dir, **model_kwargs)
|
super().__init__(model_name, cache_dir, **model_kwargs)
|
||||||
|
|
||||||
def load(self, **model_kwargs: Any) -> None:
|
def _download(self, **model_kwargs: Any) -> None:
|
||||||
|
snapshot_download(
|
||||||
|
cache_dir=self.cache_dir, repo_id=self.model_name, allow_patterns=["*.bin", "*.json", "*.txt"]
|
||||||
|
)
|
||||||
|
|
||||||
|
def _load(self, **model_kwargs: Any) -> None:
|
||||||
self.model = pipeline(
|
self.model = pipeline(
|
||||||
self.model_type.value,
|
self.model_type.value,
|
||||||
self.model_name,
|
self.model_name,
|
||||||
model_kwargs={"cache_dir": self.cache_dir, **model_kwargs},
|
model_kwargs={"cache_dir": self.cache_dir, **model_kwargs},
|
||||||
)
|
)
|
||||||
|
|
||||||
def predict(self, image: Image) -> list[str]:
|
def _predict(self, image: Image) -> list[str]:
|
||||||
predictions: list[dict[str, Any]] = self.model(image) # type: ignore
|
predictions: list[dict[str, Any]] = self.model(image) # type: ignore
|
||||||
tags = [tag for pred in predictions for tag in pred["label"].split(", ") if pred["score"] >= self.min_score]
|
tags = [tag for pred in predictions for tag in pred["label"].split(", ") if pred["score"] >= self.min_score]
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from pathlib import Path
|
from typing import TypeAlias
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
import cv2
|
import cv2
|
||||||
|
import numpy as np
|
||||||
import pytest
|
import pytest
|
||||||
from fastapi.testclient import TestClient
|
from fastapi.testclient import TestClient
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
from pytest_mock import MockerFixture
|
||||||
|
|
||||||
from .config import settings
|
from .config import settings
|
||||||
from .models.cache import ModelCache
|
from .models.cache import ModelCache
|
||||||
@@ -14,22 +16,43 @@ from .models.facial_recognition import FaceRecognizer
|
|||||||
from .models.image_classification import ImageClassifier
|
from .models.image_classification import ImageClassifier
|
||||||
from .schemas import ModelType
|
from .schemas import ModelType
|
||||||
|
|
||||||
|
ndarray: TypeAlias = np.ndarray[int, np.dtype[np.float32]]
|
||||||
|
|
||||||
|
|
||||||
class TestImageClassifier:
|
class TestImageClassifier:
|
||||||
def test_init(self, mock_classifier_pipeline: mock.Mock) -> None:
|
classifier_preds = [
|
||||||
cache_dir = Path("test_cache")
|
{"label": "that's an image alright", "score": 0.8},
|
||||||
classifier = ImageClassifier("test_model_name", 0.5, cache_dir=cache_dir)
|
{"label": "well it ends with .jpg", "score": 0.1},
|
||||||
|
{"label": "idk, im just seeing bytes", "score": 0.05},
|
||||||
|
{"label": "not sure", "score": 0.04},
|
||||||
|
{"label": "probably a virus", "score": 0.01},
|
||||||
|
]
|
||||||
|
|
||||||
assert classifier.min_score == 0.5
|
def test_eager_init(self, mocker: MockerFixture) -> None:
|
||||||
mock_classifier_pipeline.assert_called_once_with(
|
mocker.patch.object(ImageClassifier, "download")
|
||||||
"image-classification",
|
mock_load = mocker.patch.object(ImageClassifier, "load")
|
||||||
"test_model_name",
|
classifier = ImageClassifier("test_model_name", cache_dir="test_cache", eager=True, test_arg="test_arg")
|
||||||
model_kwargs={"cache_dir": cache_dir},
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_min_score(self, pil_image: Image.Image, mock_classifier_pipeline: mock.Mock) -> None:
|
assert classifier.model_name == "test_model_name"
|
||||||
|
mock_load.assert_called_once_with(test_arg="test_arg")
|
||||||
|
|
||||||
|
def test_lazy_init(self, mocker: MockerFixture) -> None:
|
||||||
|
mock_download = mocker.patch.object(ImageClassifier, "download")
|
||||||
|
mock_load = mocker.patch.object(ImageClassifier, "load")
|
||||||
|
face_model = ImageClassifier("test_model_name", cache_dir="test_cache", eager=False, test_arg="test_arg")
|
||||||
|
|
||||||
|
assert face_model.model_name == "test_model_name"
|
||||||
|
mock_download.assert_called_once_with(test_arg="test_arg")
|
||||||
|
mock_load.assert_not_called()
|
||||||
|
|
||||||
|
def test_min_score(self, pil_image: Image.Image, mocker: MockerFixture) -> None:
|
||||||
|
mocker.patch.object(ImageClassifier, "load")
|
||||||
classifier = ImageClassifier("test_model_name", min_score=0.0)
|
classifier = ImageClassifier("test_model_name", min_score=0.0)
|
||||||
classifier.min_score = 0.0
|
assert classifier.min_score == 0.0
|
||||||
|
|
||||||
|
classifier.model = mock.Mock()
|
||||||
|
classifier.model.return_value = self.classifier_preds
|
||||||
|
|
||||||
all_labels = classifier.predict(pil_image)
|
all_labels = classifier.predict(pil_image)
|
||||||
classifier.min_score = 0.5
|
classifier.min_score = 0.5
|
||||||
filtered_labels = classifier.predict(pil_image)
|
filtered_labels = classifier.predict(pil_image)
|
||||||
@@ -46,45 +69,94 @@ class TestImageClassifier:
|
|||||||
|
|
||||||
|
|
||||||
class TestCLIP:
|
class TestCLIP:
|
||||||
def test_init(self, mock_st: mock.Mock) -> None:
|
embedding = np.random.rand(512).astype(np.float32)
|
||||||
CLIPSTEncoder("test_model_name", cache_dir="test_cache")
|
|
||||||
|
|
||||||
mock_st.assert_called_once_with("test_model_name", cache_folder="test_cache")
|
def test_eager_init(self, mocker: MockerFixture) -> None:
|
||||||
|
mocker.patch.object(CLIPSTEncoder, "download")
|
||||||
|
mock_load = mocker.patch.object(CLIPSTEncoder, "load")
|
||||||
|
clip_model = CLIPSTEncoder("test_model_name", cache_dir="test_cache", eager=True, test_arg="test_arg")
|
||||||
|
|
||||||
def test_basic_image(self, pil_image: Image.Image, mock_st: mock.Mock) -> None:
|
assert clip_model.model_name == "test_model_name"
|
||||||
|
mock_load.assert_called_once_with(test_arg="test_arg")
|
||||||
|
|
||||||
|
def test_lazy_init(self, mocker: MockerFixture) -> None:
|
||||||
|
mock_download = mocker.patch.object(CLIPSTEncoder, "download")
|
||||||
|
mock_load = mocker.patch.object(CLIPSTEncoder, "load")
|
||||||
|
clip_model = CLIPSTEncoder("test_model_name", cache_dir="test_cache", eager=False, test_arg="test_arg")
|
||||||
|
|
||||||
|
assert clip_model.model_name == "test_model_name"
|
||||||
|
mock_download.assert_called_once_with(test_arg="test_arg")
|
||||||
|
mock_load.assert_not_called()
|
||||||
|
|
||||||
|
def test_basic_image(self, pil_image: Image.Image, mocker: MockerFixture) -> None:
|
||||||
|
mocker.patch.object(CLIPSTEncoder, "load")
|
||||||
clip_encoder = CLIPSTEncoder("test_model_name", cache_dir="test_cache")
|
clip_encoder = CLIPSTEncoder("test_model_name", cache_dir="test_cache")
|
||||||
|
clip_encoder.model = mock.Mock()
|
||||||
|
clip_encoder.model.encode.return_value = self.embedding
|
||||||
embedding = clip_encoder.predict(pil_image)
|
embedding = clip_encoder.predict(pil_image)
|
||||||
|
|
||||||
assert isinstance(embedding, list)
|
assert isinstance(embedding, list)
|
||||||
assert len(embedding) == 512
|
assert len(embedding) == 512
|
||||||
assert all([isinstance(num, float) for num in embedding])
|
assert all([isinstance(num, float) for num in embedding])
|
||||||
mock_st.assert_called_once()
|
clip_encoder.model.encode.assert_called_once()
|
||||||
|
|
||||||
def test_basic_text(self, mock_st: mock.Mock) -> None:
|
def test_basic_text(self, mocker: MockerFixture) -> None:
|
||||||
|
mocker.patch.object(CLIPSTEncoder, "load")
|
||||||
clip_encoder = CLIPSTEncoder("test_model_name", cache_dir="test_cache")
|
clip_encoder = CLIPSTEncoder("test_model_name", cache_dir="test_cache")
|
||||||
|
clip_encoder.model = mock.Mock()
|
||||||
|
clip_encoder.model.encode.return_value = self.embedding
|
||||||
embedding = clip_encoder.predict("test search query")
|
embedding = clip_encoder.predict("test search query")
|
||||||
|
|
||||||
assert isinstance(embedding, list)
|
assert isinstance(embedding, list)
|
||||||
assert len(embedding) == 512
|
assert len(embedding) == 512
|
||||||
assert all([isinstance(num, float) for num in embedding])
|
assert all([isinstance(num, float) for num in embedding])
|
||||||
mock_st.assert_called_once()
|
clip_encoder.model.encode.assert_called_once()
|
||||||
|
|
||||||
|
|
||||||
class TestFaceRecognition:
|
class TestFaceRecognition:
|
||||||
def test_init(self, mock_faceanalysis: mock.Mock) -> None:
|
def test_eager_init(self, mocker: MockerFixture) -> None:
|
||||||
FaceRecognizer("test_model_name", cache_dir="test_cache")
|
mocker.patch.object(FaceRecognizer, "download")
|
||||||
|
mock_load = mocker.patch.object(FaceRecognizer, "load")
|
||||||
|
face_model = FaceRecognizer("test_model_name", cache_dir="test_cache", eager=True, test_arg="test_arg")
|
||||||
|
|
||||||
mock_faceanalysis.assert_called_once_with(
|
assert face_model.model_name == "test_model_name"
|
||||||
name="test_model_name",
|
mock_load.assert_called_once_with(test_arg="test_arg")
|
||||||
root="test_cache",
|
|
||||||
allowed_modules=["detection", "recognition"],
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_basic(self, cv_image: cv2.Mat, mock_faceanalysis: mock.Mock) -> None:
|
def test_lazy_init(self, mocker: MockerFixture) -> None:
|
||||||
|
mock_download = mocker.patch.object(FaceRecognizer, "download")
|
||||||
|
mock_load = mocker.patch.object(FaceRecognizer, "load")
|
||||||
|
face_model = FaceRecognizer("test_model_name", cache_dir="test_cache", eager=False, test_arg="test_arg")
|
||||||
|
|
||||||
|
assert face_model.model_name == "test_model_name"
|
||||||
|
mock_download.assert_called_once_with(test_arg="test_arg")
|
||||||
|
mock_load.assert_not_called()
|
||||||
|
|
||||||
|
def test_set_min_score(self, mocker: MockerFixture) -> None:
|
||||||
|
mocker.patch.object(FaceRecognizer, "load")
|
||||||
|
face_recognizer = FaceRecognizer("test_model_name", cache_dir="test_cache", min_score=0.5)
|
||||||
|
|
||||||
|
assert face_recognizer.min_score == 0.5
|
||||||
|
|
||||||
|
def test_basic(self, cv_image: cv2.Mat, mocker: MockerFixture) -> None:
|
||||||
|
mocker.patch.object(FaceRecognizer, "load")
|
||||||
face_recognizer = FaceRecognizer("test_model_name", min_score=0.0, cache_dir="test_cache")
|
face_recognizer = FaceRecognizer("test_model_name", min_score=0.0, cache_dir="test_cache")
|
||||||
|
|
||||||
|
det_model = mock.Mock()
|
||||||
|
num_faces = 2
|
||||||
|
bbox = np.random.rand(num_faces, 4).astype(np.float32)
|
||||||
|
score = np.array([[0.67]] * num_faces).astype(np.float32)
|
||||||
|
kpss = np.random.rand(num_faces, 5, 2).astype(np.float32)
|
||||||
|
det_model.detect.return_value = (np.concatenate([bbox, score], axis=-1), kpss)
|
||||||
|
face_recognizer.det_model = det_model
|
||||||
|
|
||||||
|
rec_model = mock.Mock()
|
||||||
|
embedding = np.random.rand(num_faces, 512).astype(np.float32)
|
||||||
|
rec_model.get_feat.return_value = embedding
|
||||||
|
face_recognizer.rec_model = rec_model
|
||||||
|
|
||||||
faces = face_recognizer.predict(cv_image)
|
faces = face_recognizer.predict(cv_image)
|
||||||
|
|
||||||
assert len(faces) == 2
|
assert len(faces) == num_faces
|
||||||
for face in faces:
|
for face in faces:
|
||||||
assert face["imageHeight"] == 800
|
assert face["imageHeight"] == 800
|
||||||
assert face["imageWidth"] == 600
|
assert face["imageWidth"] == 600
|
||||||
@@ -92,7 +164,8 @@ class TestFaceRecognition:
|
|||||||
assert len(face["embedding"]) == 512
|
assert len(face["embedding"]) == 512
|
||||||
assert all([isinstance(num, float) for num in face["embedding"]])
|
assert all([isinstance(num, float) for num in face["embedding"]])
|
||||||
|
|
||||||
mock_faceanalysis.assert_called_once()
|
det_model.detect.assert_called_once()
|
||||||
|
assert rec_model.get_feat.call_count == num_faces
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
|
|||||||
245
machine-learning/poetry.lock
generated
245
machine-learning/poetry.lock
generated
@@ -421,13 +421,13 @@ cron = ["capturer (>=2.4)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "configargparse"
|
name = "configargparse"
|
||||||
version = "1.5.5"
|
version = "1.7"
|
||||||
description = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables."
|
description = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
python-versions = ">=3.5"
|
||||||
files = [
|
files = [
|
||||||
{file = "ConfigArgParse-1.5.5-py3-none-any.whl", hash = "sha256:541360ddc1b15c517f95c0d02d1fca4591266628f3667acdc5d13dccc78884ca"},
|
{file = "ConfigArgParse-1.7-py3-none-any.whl", hash = "sha256:d249da6591465c6c26df64a9f73d2536e743be2f244eb3ebe61114af2f94f86b"},
|
||||||
{file = "ConfigArgParse-1.5.5.tar.gz", hash = "sha256:363d80a6d35614bd446e2f2b1b216f3b33741d03ac6d0a92803306f40e555b58"},
|
{file = "ConfigArgParse-1.7.tar.gz", hash = "sha256:e7067471884de5478c58a511e529f0f9bd1c66bfef1dea90935438d6c23306d1"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@@ -750,45 +750,45 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fonttools"
|
name = "fonttools"
|
||||||
version = "4.41.1"
|
version = "4.42.0"
|
||||||
description = "Tools to manipulate font files"
|
description = "Tools to manipulate font files"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "fonttools-4.41.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a7bbb290d13c6dd718ec2c3db46fe6c5f6811e7ea1e07f145fd8468176398224"},
|
{file = "fonttools-4.42.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9c456d1f23deff64ffc8b5b098718e149279abdea4d8692dba69172fb6a0d597"},
|
||||||
{file = "fonttools-4.41.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ec453a45778524f925a8f20fd26a3326f398bfc55d534e37bab470c5e415caa1"},
|
{file = "fonttools-4.42.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:150122ed93127a26bc3670ebab7e2add1e0983d30927733aec327ebf4255b072"},
|
||||||
{file = "fonttools-4.41.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2071267deaa6d93cb16288613419679c77220543551cbe61da02c93d92df72f"},
|
{file = "fonttools-4.42.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48e82d776d2e93f88ca56567509d102266e7ab2fb707a0326f032fe657335238"},
|
||||||
{file = "fonttools-4.41.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e3334d51f0e37e2c6056e67141b2adabc92613a968797e2571ca8a03bd64773"},
|
{file = "fonttools-4.42.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58c1165f9b2662645de9b19a8c8bdd636b36294ccc07e1b0163856b74f10bafc"},
|
||||||
{file = "fonttools-4.41.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cac73bbef7734e78c60949da11c4903ee5837168e58772371bd42a75872f4f82"},
|
{file = "fonttools-4.42.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2d6dc3fa91414ff4daa195c05f946e6a575bd214821e26d17ca50f74b35b0fe4"},
|
||||||
{file = "fonttools-4.41.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:edee0900cf0eedb29d17c7876102d6e5a91ee333882b1f5abc83e85b934cadb5"},
|
{file = "fonttools-4.42.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fae4e801b774cc62cecf4a57b1eae4097903fced00c608d9e2bc8f84cd87b54a"},
|
||||||
{file = "fonttools-4.41.1-cp310-cp310-win32.whl", hash = "sha256:2a22b2c425c698dcd5d6b0ff0b566e8e9663172118db6fd5f1941f9b8063da9b"},
|
{file = "fonttools-4.42.0-cp310-cp310-win32.whl", hash = "sha256:b8600ae7dce6ec3ddfb201abb98c9d53abbf8064d7ac0c8a0d8925e722ccf2a0"},
|
||||||
{file = "fonttools-4.41.1-cp310-cp310-win_amd64.whl", hash = "sha256:547ab36a799dded58a46fa647266c24d0ed43a66028cd1cd4370b246ad426cac"},
|
{file = "fonttools-4.42.0-cp310-cp310-win_amd64.whl", hash = "sha256:57b68eab183fafac7cd7d464a7bfa0fcd4edf6c67837d14fb09c1c20516cf20b"},
|
||||||
{file = "fonttools-4.41.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:849ec722bbf7d3501a0e879e57dec1fc54919d31bff3f690af30bb87970f9784"},
|
{file = "fonttools-4.42.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0a1466713e54bdbf5521f2f73eebfe727a528905ff5ec63cda40961b4b1eea95"},
|
||||||
{file = "fonttools-4.41.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:38cdecd8f1fd4bf4daae7fed1b3170dfc1b523388d6664b2204b351820aa78a7"},
|
{file = "fonttools-4.42.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3fb2a69870bfe143ec20b039a1c8009e149dd7780dd89554cc8a11f79e5de86b"},
|
||||||
{file = "fonttools-4.41.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ae64303ba670f8959fdaaa30ba0c2dabe75364fdec1caeee596c45d51ca3425"},
|
{file = "fonttools-4.42.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae881e484702efdb6cf756462622de81d4414c454edfd950b137e9a7352b3cb9"},
|
||||||
{file = "fonttools-4.41.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f14f3ccea4cc7dd1b277385adf3c3bf18f9860f87eab9c2fb650b0af16800f55"},
|
{file = "fonttools-4.42.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27ec3246a088555629f9f0902f7412220c67340553ca91eb540cf247aacb1983"},
|
||||||
{file = "fonttools-4.41.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:33191f062549e6bb1a4782c22a04ebd37009c09360e2d6686ac5083774d06d95"},
|
{file = "fonttools-4.42.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ece1886d12bb36c48c00b2031518877f41abae317e3a55620d38e307d799b7e"},
|
||||||
{file = "fonttools-4.41.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:704bccd69b0abb6fab9f5e4d2b75896afa48b427caa2c7988792a2ffce35b441"},
|
{file = "fonttools-4.42.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:10dac980f2b975ef74532e2a94bb00e97a95b4595fb7f98db493c474d5f54d0e"},
|
||||||
{file = "fonttools-4.41.1-cp311-cp311-win32.whl", hash = "sha256:4edc795533421e98f60acee7d28fc8d941ff5ac10f44668c9c3635ad72ae9045"},
|
{file = "fonttools-4.42.0-cp311-cp311-win32.whl", hash = "sha256:83b98be5d291e08501bd4fc0c4e0f8e6e05b99f3924068b17c5c9972af6fff84"},
|
||||||
{file = "fonttools-4.41.1-cp311-cp311-win_amd64.whl", hash = "sha256:aaaef294d8e411f0ecb778a0aefd11bb5884c9b8333cc1011bdaf3b58ca4bd75"},
|
{file = "fonttools-4.42.0-cp311-cp311-win_amd64.whl", hash = "sha256:e35bed436726194c5e6e094fdfb423fb7afaa0211199f9d245e59e11118c576c"},
|
||||||
{file = "fonttools-4.41.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3d1f9471134affc1e3b1b806db6e3e2ad3fa99439e332f1881a474c825101096"},
|
{file = "fonttools-4.42.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c36c904ce0322df01e590ba814d5d69e084e985d7e4c2869378671d79662a7d4"},
|
||||||
{file = "fonttools-4.41.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:59eba8b2e749a1de85760da22333f3d17c42b66e03758855a12a2a542723c6e7"},
|
{file = "fonttools-4.42.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d54e600a2bcfa5cdaa860237765c01804a03b08404d6affcd92942fa7315ffba"},
|
||||||
{file = "fonttools-4.41.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9b3cc10dc9e0834b6665fd63ae0c6964c6bc3d7166e9bc84772e0edd09f9fa2"},
|
{file = "fonttools-4.42.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01cfe02416b6d416c5c8d15e30315cbcd3e97d1b50d3b34b0ce59f742ef55258"},
|
||||||
{file = "fonttools-4.41.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2c2964bdc827ba6b8a91dc6de792620be4da3922c4cf0599f36a488c07e2b2"},
|
{file = "fonttools-4.42.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f81ed9065b4bd3f4f3ce8e4873cd6a6b3f4e92b1eddefde35d332c6f414acc3"},
|
||||||
{file = "fonttools-4.41.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7763316111df7b5165529f4183a334aa24c13cdb5375ffa1dc8ce309c8bf4e5c"},
|
{file = "fonttools-4.42.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:685a4dd6cf31593b50d6d441feb7781a4a7ef61e19551463e14ed7c527b86f9f"},
|
||||||
{file = "fonttools-4.41.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b2d1ee95be42b80d1f002d1ee0a51d7a435ea90d36f1a5ae331be9962ee5a3f1"},
|
{file = "fonttools-4.42.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:329341ba3d86a36e482610db56b30705384cb23bd595eac8cbb045f627778e9d"},
|
||||||
{file = "fonttools-4.41.1-cp38-cp38-win32.whl", hash = "sha256:f48602c0b3fd79cd83a34c40af565fe6db7ac9085c8823b552e6e751e3a5b8be"},
|
{file = "fonttools-4.42.0-cp38-cp38-win32.whl", hash = "sha256:4655c480a1a4d706152ff54f20e20cf7609084016f1df3851cce67cef768f40a"},
|
||||||
{file = "fonttools-4.41.1-cp38-cp38-win_amd64.whl", hash = "sha256:b0938ebbeccf7c80bb9a15e31645cf831572c3a33d5cc69abe436e7000c61b14"},
|
{file = "fonttools-4.42.0-cp38-cp38-win_amd64.whl", hash = "sha256:6bd7e4777bff1dcb7c4eff4786998422770f3bfbef8be401c5332895517ba3fa"},
|
||||||
{file = "fonttools-4.41.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e5c2b0a95a221838991e2f0e455dec1ca3a8cc9cd54febd68cc64d40fdb83669"},
|
{file = "fonttools-4.42.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a9b55d2a3b360e0c7fc5bd8badf1503ca1c11dd3a1cd20f2c26787ffa145a9c7"},
|
||||||
{file = "fonttools-4.41.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:891cfc5a83b0307688f78b9bb446f03a7a1ad981690ac8362f50518bc6153975"},
|
{file = "fonttools-4.42.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0df8ef75ba5791e873c9eac2262196497525e3f07699a2576d3ab9ddf41cb619"},
|
||||||
{file = "fonttools-4.41.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73ef0bb5d60eb02ba4d3a7d23ada32184bd86007cb2de3657cfcb1175325fc83"},
|
{file = "fonttools-4.42.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd2363ea7728496827658682d049ffb2e98525e2247ca64554864a8cc945568"},
|
||||||
{file = "fonttools-4.41.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f240d9adf0583ac8fc1646afe7f4ac039022b6f8fa4f1575a2cfa53675360b69"},
|
{file = "fonttools-4.42.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d40673b2e927f7cd0819c6f04489dfbeb337b4a7b10fc633c89bf4f34ecb9620"},
|
||||||
{file = "fonttools-4.41.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bdd729744ae7ecd7f7311ad25d99da4999003dcfe43b436cf3c333d4e68de73d"},
|
{file = "fonttools-4.42.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c8bf88f9e3ce347c716921804ef3a8330cb128284eb6c0b6c4b3574f3c580023"},
|
||||||
{file = "fonttools-4.41.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b927e5f466d99c03e6e20961946314b81d6e3490d95865ef88061144d9f62e38"},
|
{file = "fonttools-4.42.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:703101eb0490fae32baf385385d47787b73d9ea55253df43b487c89ec767e0d7"},
|
||||||
{file = "fonttools-4.41.1-cp39-cp39-win32.whl", hash = "sha256:afce2aeb80be72b4da7dd114f10f04873ff512793d13ce0b19d12b2a4c44c0f0"},
|
{file = "fonttools-4.42.0-cp39-cp39-win32.whl", hash = "sha256:f0290ea7f9945174bd4dfd66e96149037441eb2008f3649094f056201d99e293"},
|
||||||
{file = "fonttools-4.41.1-cp39-cp39-win_amd64.whl", hash = "sha256:1df1b6f4c7c4bc8201eb47f3b268adbf2539943aa43c400f84556557e3e109c0"},
|
{file = "fonttools-4.42.0-cp39-cp39-win_amd64.whl", hash = "sha256:ae7df0ae9ee2f3f7676b0ff6f4ebe48ad0acaeeeaa0b6839d15dbf0709f2c5ef"},
|
||||||
{file = "fonttools-4.41.1-py3-none-any.whl", hash = "sha256:952cb405f78734cf6466252fec42e206450d1a6715746013f64df9cbd4f896fa"},
|
{file = "fonttools-4.42.0-py3-none-any.whl", hash = "sha256:dfe7fa7e607f7e8b58d0c32501a3a7cac148538300626d1b930082c90ae7f6bd"},
|
||||||
{file = "fonttools-4.41.1.tar.gz", hash = "sha256:e16a9449f21a93909c5be2f5ed5246420f2316e94195dbfccb5238aaa38f9751"},
|
{file = "fonttools-4.42.0.tar.gz", hash = "sha256:614b1283dca88effd20ee48160518e6de275ce9b5456a3134d5f235523fc5065"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@@ -1525,13 +1525,13 @@ test = ["pytest (>=7.4)", "pytest-cov (>=4.1)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "locust"
|
name = "locust"
|
||||||
version = "2.15.1"
|
version = "2.16.1"
|
||||||
description = "Developer friendly load testing framework"
|
description = "Developer friendly load testing framework"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "locust-2.15.1-py3-none-any.whl", hash = "sha256:9e0bb30b4962f9c9611174df0fdea2a4e3f41656b36dc7b0a1a46f618a83d5a9"},
|
{file = "locust-2.16.1-py3-none-any.whl", hash = "sha256:d0f01f9fca6a7d9be987b32185799d9e219fce3b9a3b8250ea03e88003335804"},
|
||||||
{file = "locust-2.15.1.tar.gz", hash = "sha256:a6307f3bf995c180f66e7caed94360b8c8ed95d64dca508614d803d5b0b39f15"},
|
{file = "locust-2.16.1.tar.gz", hash = "sha256:cd54f179b679ae927e9b3ffd2b6a7c89c1078103cfbe96b4dd53c7872774b619"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -1860,36 +1860,36 @@ twitter = ["twython"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "numpy"
|
name = "numpy"
|
||||||
version = "1.25.1"
|
version = "1.25.2"
|
||||||
description = "Fundamental package for array computing in Python"
|
description = "Fundamental package for array computing in Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9"
|
python-versions = ">=3.9"
|
||||||
files = [
|
files = [
|
||||||
{file = "numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa"},
|
{file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"},
|
||||||
{file = "numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b"},
|
{file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"},
|
||||||
{file = "numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf"},
|
{file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"},
|
||||||
{file = "numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588"},
|
{file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"},
|
||||||
{file = "numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19"},
|
{file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"},
|
||||||
{file = "numpy-1.25.1-cp310-cp310-win32.whl", hash = "sha256:fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503"},
|
{file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"},
|
||||||
{file = "numpy-1.25.1-cp310-cp310-win_amd64.whl", hash = "sha256:c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57"},
|
{file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"},
|
||||||
{file = "numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e"},
|
{file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"},
|
||||||
{file = "numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800"},
|
{file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"},
|
||||||
{file = "numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09"},
|
{file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"},
|
||||||
{file = "numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6"},
|
{file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"},
|
||||||
{file = "numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d"},
|
{file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"},
|
||||||
{file = "numpy-1.25.1-cp311-cp311-win32.whl", hash = "sha256:791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb"},
|
{file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"},
|
||||||
{file = "numpy-1.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171"},
|
{file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"},
|
||||||
{file = "numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105"},
|
{file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"},
|
||||||
{file = "numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f"},
|
{file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"},
|
||||||
{file = "numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625"},
|
{file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"},
|
||||||
{file = "numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd"},
|
{file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"},
|
||||||
{file = "numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7"},
|
{file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"},
|
||||||
{file = "numpy-1.25.1-cp39-cp39-win32.whl", hash = "sha256:247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c"},
|
{file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"},
|
||||||
{file = "numpy-1.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631"},
|
{file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"},
|
||||||
{file = "numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009"},
|
{file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"},
|
||||||
{file = "numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004"},
|
{file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"},
|
||||||
{file = "numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe"},
|
{file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"},
|
||||||
{file = "numpy-1.25.1.tar.gz", hash = "sha256:9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf"},
|
{file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2020,13 +2020,13 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pathspec"
|
name = "pathspec"
|
||||||
version = "0.11.1"
|
version = "0.11.2"
|
||||||
description = "Utility library for gitignore style pattern matching of file paths."
|
description = "Utility library for gitignore style pattern matching of file paths."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"},
|
{file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"},
|
||||||
{file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"},
|
{file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2110,18 +2110,18 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "platformdirs"
|
name = "platformdirs"
|
||||||
version = "3.9.1"
|
version = "3.10.0"
|
||||||
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "platformdirs-3.9.1-py3-none-any.whl", hash = "sha256:ad8291ae0ae5072f66c16945166cb11c63394c7a3ad1b1bc9828ca3162da8c2f"},
|
{file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"},
|
||||||
{file = "platformdirs-3.9.1.tar.gz", hash = "sha256:1b42b450ad933e981d56e59f1b97495428c9bd60698baab9f3eb3d00d5822421"},
|
{file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"]
|
docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"]
|
||||||
test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)"]
|
test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pluggy"
|
name = "pluggy"
|
||||||
@@ -2215,47 +2215,47 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pydantic"
|
name = "pydantic"
|
||||||
version = "1.10.11"
|
version = "1.10.12"
|
||||||
description = "Data validation and settings management using python type hints"
|
description = "Data validation and settings management using python type hints"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "pydantic-1.10.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ff44c5e89315b15ff1f7fdaf9853770b810936d6b01a7bcecaa227d2f8fe444f"},
|
{file = "pydantic-1.10.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a1fcb59f2f355ec350073af41d927bf83a63b50e640f4dbaa01053a28b7a7718"},
|
||||||
{file = "pydantic-1.10.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a6c098d4ab5e2d5b3984d3cb2527e2d6099d3de85630c8934efcfdc348a9760e"},
|
{file = "pydantic-1.10.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b7ccf02d7eb340b216ec33e53a3a629856afe1c6e0ef91d84a4e6f2fb2ca70fe"},
|
||||||
{file = "pydantic-1.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16928fdc9cb273c6af00d9d5045434c39afba5f42325fb990add2c241402d151"},
|
{file = "pydantic-1.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fb2aa3ab3728d950bcc885a2e9eff6c8fc40bc0b7bb434e555c215491bcf48b"},
|
||||||
{file = "pydantic-1.10.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0588788a9a85f3e5e9ebca14211a496409cb3deca5b6971ff37c556d581854e7"},
|
{file = "pydantic-1.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:771735dc43cf8383959dc9b90aa281f0b6092321ca98677c5fb6125a6f56d58d"},
|
||||||
{file = "pydantic-1.10.11-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e9baf78b31da2dc3d3f346ef18e58ec5f12f5aaa17ac517e2ffd026a92a87588"},
|
{file = "pydantic-1.10.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ca48477862372ac3770969b9d75f1bf66131d386dba79506c46d75e6b48c1e09"},
|
||||||
{file = "pydantic-1.10.11-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:373c0840f5c2b5b1ccadd9286782852b901055998136287828731868027a724f"},
|
{file = "pydantic-1.10.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a5e7add47a5b5a40c49b3036d464e3c7802f8ae0d1e66035ea16aa5b7a3923ed"},
|
||||||
{file = "pydantic-1.10.11-cp310-cp310-win_amd64.whl", hash = "sha256:c3339a46bbe6013ef7bdd2844679bfe500347ac5742cd4019a88312aa58a9847"},
|
{file = "pydantic-1.10.12-cp310-cp310-win_amd64.whl", hash = "sha256:e4129b528c6baa99a429f97ce733fff478ec955513630e61b49804b6cf9b224a"},
|
||||||
{file = "pydantic-1.10.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:08a6c32e1c3809fbc49debb96bf833164f3438b3696abf0fbeceb417d123e6eb"},
|
{file = "pydantic-1.10.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0d191db0f92dfcb1dec210ca244fdae5cbe918c6050b342d619c09d31eea0cc"},
|
||||||
{file = "pydantic-1.10.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a451ccab49971af043ec4e0d207cbc8cbe53dbf148ef9f19599024076fe9c25b"},
|
{file = "pydantic-1.10.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:795e34e6cc065f8f498c89b894a3c6da294a936ee71e644e4bd44de048af1405"},
|
||||||
{file = "pydantic-1.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b02d24f7b2b365fed586ed73582c20f353a4c50e4be9ba2c57ab96f8091ddae"},
|
{file = "pydantic-1.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69328e15cfda2c392da4e713443c7dbffa1505bc9d566e71e55abe14c97ddc62"},
|
||||||
{file = "pydantic-1.10.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f34739a89260dfa420aa3cbd069fbcc794b25bbe5c0a214f8fb29e363484b66"},
|
{file = "pydantic-1.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2031de0967c279df0d8a1c72b4ffc411ecd06bac607a212892757db7462fc494"},
|
||||||
{file = "pydantic-1.10.11-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e297897eb4bebde985f72a46a7552a7556a3dd11e7f76acda0c1093e3dbcf216"},
|
{file = "pydantic-1.10.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ba5b2e6fe6ca2b7e013398bc7d7b170e21cce322d266ffcd57cca313e54fb246"},
|
||||||
{file = "pydantic-1.10.11-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d185819a7a059550ecb85d5134e7d40f2565f3dd94cfd870132c5f91a89cf58c"},
|
{file = "pydantic-1.10.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2a7bac939fa326db1ab741c9d7f44c565a1d1e80908b3797f7f81a4f86bc8d33"},
|
||||||
{file = "pydantic-1.10.11-cp311-cp311-win_amd64.whl", hash = "sha256:4400015f15c9b464c9db2d5d951b6a780102cfa5870f2c036d37c23b56f7fc1b"},
|
{file = "pydantic-1.10.12-cp311-cp311-win_amd64.whl", hash = "sha256:87afda5539d5140cb8ba9e8b8c8865cb5b1463924d38490d73d3ccfd80896b3f"},
|
||||||
{file = "pydantic-1.10.11-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2417de68290434461a266271fc57274a138510dca19982336639484c73a07af6"},
|
{file = "pydantic-1.10.12-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:549a8e3d81df0a85226963611950b12d2d334f214436a19537b2efed61b7639a"},
|
||||||
{file = "pydantic-1.10.11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:331c031ba1554b974c98679bd0780d89670d6fd6f53f5d70b10bdc9addee1713"},
|
{file = "pydantic-1.10.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:598da88dfa127b666852bef6d0d796573a8cf5009ffd62104094a4fe39599565"},
|
||||||
{file = "pydantic-1.10.11-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8268a735a14c308923e8958363e3a3404f6834bb98c11f5ab43251a4e410170c"},
|
{file = "pydantic-1.10.12-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba5c4a8552bff16c61882db58544116d021d0b31ee7c66958d14cf386a5b5350"},
|
||||||
{file = "pydantic-1.10.11-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:44e51ba599c3ef227e168424e220cd3e544288c57829520dc90ea9cb190c3248"},
|
{file = "pydantic-1.10.12-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c79e6a11a07da7374f46970410b41d5e266f7f38f6a17a9c4823db80dadf4303"},
|
||||||
{file = "pydantic-1.10.11-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d7781f1d13b19700b7949c5a639c764a077cbbdd4322ed505b449d3ca8edcb36"},
|
{file = "pydantic-1.10.12-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab26038b8375581dc832a63c948f261ae0aa21f1d34c1293469f135fa92972a5"},
|
||||||
{file = "pydantic-1.10.11-cp37-cp37m-win_amd64.whl", hash = "sha256:7522a7666157aa22b812ce14c827574ddccc94f361237ca6ea8bb0d5c38f1629"},
|
{file = "pydantic-1.10.12-cp37-cp37m-win_amd64.whl", hash = "sha256:e0a16d274b588767602b7646fa05af2782576a6cf1022f4ba74cbb4db66f6ca8"},
|
||||||
{file = "pydantic-1.10.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc64eab9b19cd794a380179ac0e6752335e9555d214cfcb755820333c0784cb3"},
|
{file = "pydantic-1.10.12-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6a9dfa722316f4acf4460afdf5d41d5246a80e249c7ff475c43a3a1e9d75cf62"},
|
||||||
{file = "pydantic-1.10.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8dc77064471780262b6a68fe67e013298d130414d5aaf9b562c33987dbd2cf4f"},
|
{file = "pydantic-1.10.12-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a73f489aebd0c2121ed974054cb2759af8a9f747de120acd2c3394cf84176ccb"},
|
||||||
{file = "pydantic-1.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe429898f2c9dd209bd0632a606bddc06f8bce081bbd03d1c775a45886e2c1cb"},
|
{file = "pydantic-1.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b30bcb8cbfccfcf02acb8f1a261143fab622831d9c0989707e0e659f77a18e0"},
|
||||||
{file = "pydantic-1.10.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:192c608ad002a748e4a0bed2ddbcd98f9b56df50a7c24d9a931a8c5dd053bd3d"},
|
{file = "pydantic-1.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fcfb5296d7877af406ba1547dfde9943b1256d8928732267e2653c26938cd9c"},
|
||||||
{file = "pydantic-1.10.11-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ef55392ec4bb5721f4ded1096241e4b7151ba6d50a50a80a2526c854f42e6a2f"},
|
{file = "pydantic-1.10.12-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2f9a6fab5f82ada41d56b0602606a5506aab165ca54e52bc4545028382ef1c5d"},
|
||||||
{file = "pydantic-1.10.11-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:41e0bb6efe86281623abbeeb0be64eab740c865388ee934cd3e6a358784aca6e"},
|
{file = "pydantic-1.10.12-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dea7adcc33d5d105896401a1f37d56b47d443a2b2605ff8a969a0ed5543f7e33"},
|
||||||
{file = "pydantic-1.10.11-cp38-cp38-win_amd64.whl", hash = "sha256:265a60da42f9f27e0b1014eab8acd3e53bd0bad5c5b4884e98a55f8f596b2c19"},
|
{file = "pydantic-1.10.12-cp38-cp38-win_amd64.whl", hash = "sha256:1eb2085c13bce1612da8537b2d90f549c8cbb05c67e8f22854e201bde5d98a47"},
|
||||||
{file = "pydantic-1.10.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:469adf96c8e2c2bbfa655fc7735a2a82f4c543d9fee97bd113a7fb509bf5e622"},
|
{file = "pydantic-1.10.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ef6c96b2baa2100ec91a4b428f80d8f28a3c9e53568219b6c298c1125572ebc6"},
|
||||||
{file = "pydantic-1.10.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e6cbfbd010b14c8a905a7b10f9fe090068d1744d46f9e0c021db28daeb8b6de1"},
|
{file = "pydantic-1.10.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c076be61cd0177a8433c0adcb03475baf4ee91edf5a4e550161ad57fc90f523"},
|
||||||
{file = "pydantic-1.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abade85268cc92dff86d6effcd917893130f0ff516f3d637f50dadc22ae93999"},
|
{file = "pydantic-1.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d5a58feb9a39f481eda4d5ca220aa8b9d4f21a41274760b9bc66bfd72595b86"},
|
||||||
{file = "pydantic-1.10.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9738b0f2e6c70f44ee0de53f2089d6002b10c33264abee07bdb5c7f03038303"},
|
{file = "pydantic-1.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5f805d2d5d0a41633651a73fa4ecdd0b3d7a49de4ec3fadf062fe16501ddbf1"},
|
||||||
{file = "pydantic-1.10.11-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:787cf23e5a0cde753f2eabac1b2e73ae3844eb873fd1f5bdbff3048d8dbb7604"},
|
{file = "pydantic-1.10.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1289c180abd4bd4555bb927c42ee42abc3aee02b0fb2d1223fb7c6e5bef87dbe"},
|
||||||
{file = "pydantic-1.10.11-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:174899023337b9fc685ac8adaa7b047050616136ccd30e9070627c1aaab53a13"},
|
{file = "pydantic-1.10.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5d1197e462e0364906cbc19681605cb7c036f2475c899b6f296104ad42b9f5fb"},
|
||||||
{file = "pydantic-1.10.11-cp39-cp39-win_amd64.whl", hash = "sha256:1954f8778489a04b245a1e7b8b22a9d3ea8ef49337285693cf6959e4b757535e"},
|
{file = "pydantic-1.10.12-cp39-cp39-win_amd64.whl", hash = "sha256:fdbdd1d630195689f325c9ef1a12900524dceb503b00a987663ff4f58669b93d"},
|
||||||
{file = "pydantic-1.10.11-py3-none-any.whl", hash = "sha256:008c5e266c8aada206d0627a011504e14268a62091450210eda7c07fabe6963e"},
|
{file = "pydantic-1.10.12-py3-none-any.whl", hash = "sha256:b749a43aa51e32839c9d71dc67eb1e4221bb04af1033a32e3923d46f9effa942"},
|
||||||
{file = "pydantic-1.10.11.tar.gz", hash = "sha256:f66d479cf7eb331372c470614be6511eae96f1f120344c25f3f9bb59fb1b5528"},
|
{file = "pydantic-1.10.12.tar.gz", hash = "sha256:0fe8a415cea8f340e7a9af9c54fc71a649b43e8ca3cc732986116b3cb135d303"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -2346,6 +2346,23 @@ pytest = ">=4.6"
|
|||||||
[package.extras]
|
[package.extras]
|
||||||
testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"]
|
testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pytest-mock"
|
||||||
|
version = "3.11.1"
|
||||||
|
description = "Thin-wrapper around the mock package for easier use with pytest"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "pytest-mock-3.11.1.tar.gz", hash = "sha256:7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f"},
|
||||||
|
{file = "pytest_mock-3.11.1-py3-none-any.whl", hash = "sha256:21c279fff83d70763b05f8874cc9cfb3fcacd6d354247a976f9529d19f9acf39"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pytest = ">=5.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["pre-commit", "pytest-asyncio", "tox"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "python-dateutil"
|
name = "python-dateutil"
|
||||||
version = "2.8.2"
|
version = "2.8.2"
|
||||||
@@ -3664,4 +3681,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.11"
|
python-versions = "^3.11"
|
||||||
content-hash = "4a06d26614d016bfdbb290ad93b3c71378ad03b249a8f06cb53c82465862977f"
|
content-hash = "0a4f26164e0dd32ce9d63da9322739c0812e56a5bdfb4148c973e22434344032"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "machine-learning"
|
name = "machine-learning"
|
||||||
version = "1.69.0"
|
version = "1.73.0"
|
||||||
description = ""
|
description = ""
|
||||||
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
|
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
@@ -33,6 +33,7 @@ httpx = "^0.24.1"
|
|||||||
pytest-asyncio = "^0.21.0"
|
pytest-asyncio = "^0.21.0"
|
||||||
pytest-cov = "^4.1.0"
|
pytest-cov = "^4.1.0"
|
||||||
ruff = "^0.0.272"
|
ruff = "^0.0.272"
|
||||||
|
pytest-mock = "^3.11.1"
|
||||||
|
|
||||||
[[tool.poetry.source]]
|
[[tool.poetry.source]]
|
||||||
name = "pytorch-cpu"
|
name = "pytorch-cpu"
|
||||||
@@ -60,10 +61,14 @@ warn_untyped_fields = true
|
|||||||
|
|
||||||
[[tool.mypy.overrides]]
|
[[tool.mypy.overrides]]
|
||||||
module = [
|
module = [
|
||||||
|
"huggingface_hub",
|
||||||
"transformers.pipelines",
|
"transformers.pipelines",
|
||||||
"cv2",
|
"cv2",
|
||||||
"insightface.app",
|
"insightface.model_zoo",
|
||||||
|
"insightface.utils.face_align",
|
||||||
|
"insightface.utils.storage",
|
||||||
"sentence_transformers",
|
"sentence_transformers",
|
||||||
|
"sentence_transformers.util",
|
||||||
"aiocache.backends.memory",
|
"aiocache.backends.memory",
|
||||||
"aiocache.lock",
|
"aiocache.lock",
|
||||||
"aiocache.plugins"
|
"aiocache.plugins"
|
||||||
|
|||||||
2
mobile/android/.gitignore
vendored
2
mobile/android/.gitignore
vendored
@@ -13,4 +13,4 @@ key.properties
|
|||||||
**/*.jks
|
**/*.jks
|
||||||
|
|
||||||
# Fastlane
|
# Fastlane
|
||||||
/fastlane/report.xml
|
fastlane/report.xml
|
||||||
|
|||||||
@@ -7,6 +7,10 @@
|
|||||||
android:name="io.flutter.embedding.android.EnableImpeller"
|
android:name="io.flutter.embedding.android.EnableImpeller"
|
||||||
android:value="false" />
|
android:value="false" />
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.messaging.default_notification_icon"
|
||||||
|
android:resource="@drawable/notification_icon" />
|
||||||
|
|
||||||
<activity android:name=".MainActivity" android:exported="true" android:launchMode="singleTop"
|
<activity android:name=".MainActivity" android:exported="true" android:launchMode="singleTop"
|
||||||
android:theme="@style/LaunchTheme"
|
android:theme="@style/LaunchTheme"
|
||||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
@@ -66,5 +70,9 @@
|
|||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
<data android:scheme="https" />
|
<data android:scheme="https" />
|
||||||
</intent>
|
</intent>
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<data android:scheme="geo" />
|
||||||
|
</intent>
|
||||||
</queries>
|
</queries>
|
||||||
</manifest>
|
</manifest>
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 624 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
@@ -35,8 +35,8 @@ platform :android do
|
|||||||
task: 'bundle',
|
task: 'bundle',
|
||||||
build_type: 'Release',
|
build_type: 'Release',
|
||||||
properties: {
|
properties: {
|
||||||
"android.injected.version.code" => 92,
|
"android.injected.version.code" => 96,
|
||||||
"android.injected.version.name" => "1.69.0",
|
"android.injected.version.name" => "1.73.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')
|
||||||
|
|||||||
@@ -5,17 +5,17 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000296">
|
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000239">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="1: bundleRelease" time="64.042552">
|
<testcase classname="fastlane.lanes" name="1: bundleRelease" time="68.788432">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="29.676557">
|
<testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="29.76592">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|||||||
@@ -2,60 +2,60 @@
|
|||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"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_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": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Avançat",
|
"advanced_settings_tile_title": "Avançat",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"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": "EXCLUDED",
|
"album_info_card_backup_album_excluded": "Exclosos",
|
||||||
"album_info_card_backup_album_included": "INCLUDED",
|
"album_info_card_backup_album_included": "Inclosos",
|
||||||
"album_thumbnail_card_item": "1 item",
|
"album_thumbnail_card_item": "1 item",
|
||||||
"album_thumbnail_card_items": "{} items",
|
"album_thumbnail_card_items": "{} items",
|
||||||
"album_thumbnail_card_shared": " · Shared",
|
"album_thumbnail_card_shared": " · Shared",
|
||||||
"album_thumbnail_owned": "Owned",
|
"album_thumbnail_owned": "Owned",
|
||||||
"album_thumbnail_shared_by": "Compartit per {}",
|
"album_thumbnail_shared_by": "Compartit per {}",
|
||||||
"album_viewer_appbar_share_delete": "Delete album",
|
"album_viewer_appbar_share_delete": "Esborra l'àlbum",
|
||||||
"album_viewer_appbar_share_err_delete": "Failed to delete album",
|
"album_viewer_appbar_share_err_delete": "Error al esborrar l'àlbum",
|
||||||
"album_viewer_appbar_share_err_leave": "Failed to leave album",
|
"album_viewer_appbar_share_err_leave": "Error al sortir de l'àlbum",
|
||||||
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album",
|
"album_viewer_appbar_share_err_remove": "Hi ha hagut problemes al treure elements de l'àlbum",
|
||||||
"album_viewer_appbar_share_err_title": "Failed to change album title",
|
"album_viewer_appbar_share_err_title": "Error al modificar el títol de l'àlbum",
|
||||||
"album_viewer_appbar_share_leave": "Leave album",
|
"album_viewer_appbar_share_leave": "Surt de l'àlbum",
|
||||||
"album_viewer_appbar_share_remove": "Remove from album",
|
"album_viewer_appbar_share_remove": "Treu de l'àlbum",
|
||||||
"album_viewer_page_share_add_users": "Add users",
|
"album_viewer_page_share_add_users": "Afegeix usuaris",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Persones",
|
||||||
"all_videos_page_title": "Vídeos",
|
"all_videos_page_title": "Vídeos",
|
||||||
"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_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"asset_list_layout_settings_group_automatically": "Automàtic",
|
||||||
"asset_list_layout_settings_group_by": "Group assets by",
|
"asset_list_layout_settings_group_by": "Group assets by",
|
||||||
"asset_list_layout_settings_group_by_month": "Month",
|
"asset_list_layout_settings_group_by_month": "Month",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Àlbums al dispositiu ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
"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_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": "Select albums",
|
"backup_album_selection_page_select_albums": "Selecciona àlbums",
|
||||||
"backup_album_selection_page_selection_info": "Selection Info",
|
"backup_album_selection_page_selection_info": "Informació de la selecció",
|
||||||
"backup_album_selection_page_total_assets": "Total unique assets",
|
"backup_album_selection_page_total_assets": "Total d'elements únics",
|
||||||
"backup_all": "All",
|
"backup_all": "All",
|
||||||
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
||||||
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
||||||
"backup_background_service_current_upload_notification": "Uploading {}",
|
"backup_background_service_current_upload_notification": "Pujant {}",
|
||||||
"backup_background_service_default_notification": "Checking for new assets…",
|
"backup_background_service_default_notification": "Cercant nous elements...",
|
||||||
"backup_background_service_error_title": "Backup error",
|
"backup_background_service_error_title": "Error copiant",
|
||||||
"backup_background_service_in_progress_notification": "Backing up your assets…",
|
"backup_background_service_in_progress_notification": "Copiant els teus elements",
|
||||||
"backup_background_service_upload_failure_notification": "Failed to upload {}",
|
"backup_background_service_upload_failure_notification": "Error al pujar {}",
|
||||||
"backup_controller_page_albums": "Backup Albums",
|
"backup_controller_page_albums": "Copia els àlbums",
|
||||||
"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_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": "Background app refresh disabled",
|
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
||||||
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
|
"backup_controller_page_background_app_refresh_enable_button_text": "Vés a configuració",
|
||||||
"backup_controller_page_background_battery_info_link": "Show me how",
|
"backup_controller_page_background_battery_info_link": "Mostra'm com",
|
||||||
"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_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": "OK",
|
"backup_controller_page_background_battery_info_ok": "D'acord",
|
||||||
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
"backup_controller_page_background_battery_info_title": "Optimitzacions de bateria",
|
||||||
"backup_controller_page_background_charging": "Only while charging",
|
"backup_controller_page_background_charging": "Només mentre es carrega",
|
||||||
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
||||||
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
||||||
"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_description": "Turn on the background service to automatically backup any new assets without needing to open the app",
|
||||||
@@ -64,85 +64,90 @@
|
|||||||
"backup_controller_page_background_turn_off": "Turn off background service",
|
"backup_controller_page_background_turn_off": "Turn off background service",
|
||||||
"backup_controller_page_background_turn_on": "Turn on background service",
|
"backup_controller_page_background_turn_on": "Turn on background service",
|
||||||
"backup_controller_page_background_wifi": "Only on WiFi",
|
"backup_controller_page_background_wifi": "Only on WiFi",
|
||||||
"backup_controller_page_backup": "Backup",
|
"backup_controller_page_backup": "Còpia",
|
||||||
"backup_controller_page_backup_selected": "Selected: ",
|
"backup_controller_page_backup_selected": "Selected: ",
|
||||||
"backup_controller_page_backup_sub": "Backed up photos and videos",
|
"backup_controller_page_backup_sub": "Fotografies i vídeos copiats",
|
||||||
"backup_controller_page_cancel": "Cancel",
|
"backup_controller_page_cancel": "Cancel·la",
|
||||||
"backup_controller_page_created": "Created on: {}",
|
"backup_controller_page_created": "Created on: {}",
|
||||||
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
"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": "Excluded: ",
|
"backup_controller_page_excluded": "Exclosos:",
|
||||||
"backup_controller_page_failed": "Failed ({})",
|
"backup_controller_page_failed": "Failed ({})",
|
||||||
"backup_controller_page_filename": "File name: {} [{}]",
|
"backup_controller_page_filename": "File name: {} [{}]",
|
||||||
"backup_controller_page_id": "ID: {}",
|
"backup_controller_page_id": "ID: {}",
|
||||||
"backup_controller_page_info": "Backup Information",
|
"backup_controller_page_info": "Informació de la còpia",
|
||||||
"backup_controller_page_none_selected": "None selected",
|
"backup_controller_page_none_selected": "None selected",
|
||||||
"backup_controller_page_remainder": "Remainder",
|
"backup_controller_page_remainder": "Restant",
|
||||||
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection",
|
"backup_controller_page_remainder_sub": "Fotografies i vídeos restants per copiar de la selecció",
|
||||||
"backup_controller_page_select": "Select",
|
"backup_controller_page_select": "Selecciona",
|
||||||
"backup_controller_page_server_storage": "Server Storage",
|
"backup_controller_page_server_storage": "Server Storage",
|
||||||
"backup_controller_page_start_backup": "Start Backup",
|
"backup_controller_page_start_backup": "Inicia la còpia",
|
||||||
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
||||||
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
||||||
"backup_controller_page_storage_format": "{} of {} used",
|
"backup_controller_page_storage_format": "{} of {} used",
|
||||||
"backup_controller_page_to_backup": "Albums to be backup",
|
"backup_controller_page_to_backup": "Àlbums a copiar",
|
||||||
"backup_controller_page_total": "Total",
|
"backup_controller_page_total": "Total",
|
||||||
"backup_controller_page_total_sub": "All unique photos and videos from selected albums",
|
"backup_controller_page_total_sub": "Totes les fotografies i vídeos dels àlbums seleccionats",
|
||||||
"backup_controller_page_turn_off": "Turn off foreground backup",
|
"backup_controller_page_turn_off": "Turn off foreground backup",
|
||||||
"backup_controller_page_turn_on": "Turn on foreground backup",
|
"backup_controller_page_turn_on": "Turn on foreground backup",
|
||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "elements",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
||||||
"cache_settings_statistics_album": "Library thumbnails",
|
"cache_settings_statistics_album": "Library thumbnails",
|
||||||
"cache_settings_statistics_assets": "{} assets ({})",
|
"cache_settings_statistics_assets": "{} elements ({})",
|
||||||
"cache_settings_statistics_full": "Full images",
|
"cache_settings_statistics_full": "Imatges completes",
|
||||||
"cache_settings_statistics_shared": "Shared album thumbnails",
|
"cache_settings_statistics_shared": "Shared album thumbnails",
|
||||||
"cache_settings_statistics_thumbnail": "Thumbnails",
|
"cache_settings_statistics_thumbnail": "Miniatures",
|
||||||
"cache_settings_statistics_title": "Cache usage",
|
"cache_settings_statistics_title": "Ús de memòria cau",
|
||||||
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
||||||
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
||||||
"cache_settings_title": "Caching Settings",
|
"cache_settings_title": "Configuració de la memòria cau",
|
||||||
"change_password_form_confirm_password": "Confirm Password",
|
"change_password_form_confirm_password": "Confirma la contrasenya",
|
||||||
"change_password_form_description": "Hi {firstName} {lastName},\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_description": "Hi {firstName} {lastName},\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": "New Password",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Crea un àlbum nou",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"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",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "Add to album",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} elements",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} elements - Compartits",
|
||||||
"control_bottom_app_bar_archive": "Arxiu",
|
"control_bottom_app_bar_archive": "Arxiu",
|
||||||
"control_bottom_app_bar_create_new_album": "Create new album",
|
"control_bottom_app_bar_create_new_album": "Crea un àlbum nou",
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Esborra",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Preferit",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Desarxiva",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Share",
|
"create_shared_album_page_share": "Comparteix",
|
||||||
"create_shared_album_page_share_add_assets": "ADD ASSETS",
|
"create_shared_album_page_share_add_assets": "AFEGEIX ELEMENTS",
|
||||||
"create_shared_album_page_share_select_photos": "Select Photos",
|
"create_shared_album_page_share_select_photos": "Escull fotografies",
|
||||||
"curated_location_page_title": "Localitzacions",
|
"curated_location_page_title": "Localitzacions",
|
||||||
"curated_object_page_title": "Coses",
|
"curated_object_page_title": "Coses",
|
||||||
"daily_title_text_date": "E, MMM dd",
|
"daily_title_text_date": "E, MMM dd",
|
||||||
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||||
"date_format": "E, LLL d, y • h:mm a",
|
"date_format": "E, LLL d, y • h:mm a",
|
||||||
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
|
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "Cancel·la",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "Esborra",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Esborra permanentment",
|
||||||
"description_input_hint_text": "Afegeix descripció...",
|
"description_input_hint_text": "Afegeix descripció...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "Afegeix descripció",
|
||||||
"exif_bottom_sheet_details": "DETAILS",
|
"exif_bottom_sheet_details": "DETALLS",
|
||||||
"exif_bottom_sheet_location": "LOCATION",
|
"exif_bottom_sheet_location": "UBICACIÓ",
|
||||||
"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!",
|
||||||
@@ -156,9 +161,10 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albums",
|
"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": "Favorites",
|
"library_page_favorites": "Favorites",
|
||||||
@@ -166,24 +172,25 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Entra",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "elteu@correu.cat",
|
||||||
"login_form_endpoint_hint": "http://your-server-ip:port/api",
|
"login_form_endpoint_hint": "http://ip-del-servidor:port/api",
|
||||||
"login_form_endpoint_url": "Server Endpoint URL",
|
"login_form_endpoint_url": "URL del servidor",
|
||||||
"login_form_err_http": "Please specify http:// or https://",
|
"login_form_err_http": "Especifica http:// o https://",
|
||||||
"login_form_err_invalid_email": "Invalid Email",
|
"login_form_err_invalid_email": "Adreça de correu electrònic no vàlida",
|
||||||
"login_form_err_invalid_url": "Invalid URL",
|
"login_form_err_invalid_url": "Invalid URL",
|
||||||
"login_form_err_leading_whitespace": "Leading whitespace",
|
"login_form_err_leading_whitespace": "Espai en blanc al principi",
|
||||||
"login_form_err_trailing_whitespace": "Trailing whitespace",
|
"login_form_err_trailing_whitespace": "Espai en blanc al final",
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Correu electrònic",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "Contrasenya",
|
||||||
"login_form_next_button": "Següent",
|
"login_form_next_button": "Següent",
|
||||||
"login_form_password_hint": "password",
|
"login_form_password_hint": "contrasenya",
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Mantingues identificat",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
@@ -194,15 +201,15 @@
|
|||||||
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
"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": "Notification Permission",
|
"notification_permission_list_tile_title": "Notification Permission",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Afegeix company",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "No more users to add",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Failed to add partner",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Escull company",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Compartit amb",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Company",
|
||||||
"permission_onboarding_continue_anyway": "Continue anyway",
|
"permission_onboarding_continue_anyway": "Continue anyway",
|
||||||
"permission_onboarding_get_started": "Get started",
|
"permission_onboarding_get_started": "Get started",
|
||||||
"permission_onboarding_go_to_settings": "Go to settings",
|
"permission_onboarding_go_to_settings": "Go to settings",
|
||||||
@@ -215,7 +222,7 @@
|
|||||||
"profile_drawer_app_logs": "Logs",
|
"profile_drawer_app_logs": "Logs",
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "Tanca la sessió",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
@@ -223,20 +230,20 @@
|
|||||||
"search_page_motion_photos": "Fotografies animades",
|
"search_page_motion_photos": "Fotografies animades",
|
||||||
"search_page_no_objects": "No Objects Info Available",
|
"search_page_no_objects": "No Objects Info Available",
|
||||||
"search_page_no_places": "No Places Info Available",
|
"search_page_no_places": "No Places Info Available",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Persones",
|
||||||
"search_page_places": "Places",
|
"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_selfies": "Autofotos",
|
"search_page_selfies": "Autofotos",
|
||||||
"search_page_things": "Things",
|
"search_page_things": "Coses",
|
||||||
"search_page_videos": "Videos",
|
"search_page_videos": "Videos",
|
||||||
"search_page_view_all_button": "Veure tot",
|
"search_page_view_all_button": "Veure tot",
|
||||||
"search_page_your_activity": "Your activity",
|
"search_page_your_activity": "Your activity",
|
||||||
"search_result_page_new_search_hint": "New Search",
|
"search_result_page_new_search_hint": "Cerca nova",
|
||||||
"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_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Suggestions",
|
"select_additional_user_for_sharing_page_suggestions": "Suggeriments",
|
||||||
"select_user_for_sharing_page_err_album": "Failed to create album",
|
"select_user_for_sharing_page_err_album": "Error al crear l'àlbum",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
||||||
"server_info_box_app_version": "Versió de l'aplicació",
|
"server_info_box_app_version": "Versió de l'aplicació",
|
||||||
"server_info_box_server_version": "Versió del servidor",
|
"server_info_box_server_version": "Versió del servidor",
|
||||||
@@ -259,21 +266,21 @@
|
|||||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
"setting_notifications_total_progress_title": "Show background backup total progress",
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
"setting_pages_app_bar_settings": "Settings",
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
"settings_require_restart": "Please restart Immich to apply this setting",
|
||||||
"share_add": "Add",
|
"share_add": "Afegeix",
|
||||||
"share_add_photos": "Add photos",
|
"share_add_photos": "Afegeix fotografies",
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Afegeix un títol",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Crea un àlbum",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
"share_invite": "Invite to album",
|
"share_invite": "Convida a l'àlbum",
|
||||||
"sharing_page_album": "Shared albums",
|
"sharing_page_album": "Shared albums",
|
||||||
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
||||||
"sharing_page_empty_list": "EMPTY LIST",
|
"sharing_page_empty_list": "EMPTY LIST",
|
||||||
"sharing_silver_appbar_create_shared_album": "Create shared album",
|
"sharing_silver_appbar_create_shared_album": "Crea àlbum compartit",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"sharing_silver_appbar_share_partner": "Comparteix amb un company",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Fotografies",
|
||||||
"tab_controller_nav_search": "Search",
|
"tab_controller_nav_search": "Cerca",
|
||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Compartint",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Přidáno do {album}",
|
"add_to_album_bottom_sheet_added": "Přidáno do {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Již v {album}",
|
"add_to_album_bottom_sheet_already_exists": "Již v {album}",
|
||||||
"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_subtitle": "U některých zařízení je načítání miniatur z prostředků v zařízení velmi pomalé. Aktivujte toto nastavení, aby se místo toho načítaly vzdálené obrázky.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Preferovat vzdálené obrázky",
|
||||||
"advanced_settings_tile_subtitle": "Pokročilé uživatelské nastavení",
|
"advanced_settings_tile_subtitle": "Pokročilé uživatelské nastavení",
|
||||||
"advanced_settings_tile_title": "Pokročilé",
|
"advanced_settings_tile_title": "Pokročilé",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Povolit dodatečné funkce pro řešení problémů",
|
"advanced_settings_troubleshooting_subtitle": "Povolit dodatečné funkce pro řešení problémů",
|
||||||
@@ -22,12 +22,12 @@
|
|||||||
"album_viewer_appbar_share_leave": "Opustit album",
|
"album_viewer_appbar_share_leave": "Opustit album",
|
||||||
"album_viewer_appbar_share_remove": "Odstranit z alba",
|
"album_viewer_appbar_share_remove": "Odstranit z alba",
|
||||||
"album_viewer_page_share_add_users": "Přidat uživatele",
|
"album_viewer_page_share_add_users": "Přidat uživatele",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Lidé",
|
||||||
"all_videos_page_title": "Videa",
|
"all_videos_page_title": "Videa",
|
||||||
"archive_page_no_archived_assets": "No archived assets found",
|
"archive_page_no_archived_assets": "Nebyla nalezena žádná archivovaná média",
|
||||||
"archive_page_title": "Archív ({})",
|
"archive_page_title": "Archív ({})",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Dynamické rozložení",
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamické rozložení",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"asset_list_layout_settings_group_automatically": "Automaticky",
|
||||||
"asset_list_layout_settings_group_by": "Seskupit položky podle",
|
"asset_list_layout_settings_group_by": "Seskupit položky podle",
|
||||||
"asset_list_layout_settings_group_by_month": "Měsíc",
|
"asset_list_layout_settings_group_by_month": "Měsíc",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Měsíc + den",
|
"asset_list_layout_settings_group_by_month_day": "Měsíc + den",
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Nahrávaný soubor",
|
"backup_controller_page_uploading_file_info": "Nahrávaný soubor",
|
||||||
"backup_err_only_album": "Nelze odstranit jediné vybrané album",
|
"backup_err_only_album": "Nelze odstranit jediné vybrané album",
|
||||||
"backup_info_card_assets": "položek",
|
"backup_info_card_assets": "položek",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Selhalo",
|
||||||
|
"backup_manual_in_progress": "Zálohování již probíhá. Zkuste znovu později",
|
||||||
|
"backup_manual_success": "Úspěch",
|
||||||
|
"backup_manual_title": "Stav zálohování",
|
||||||
"cache_settings_album_thumbnails": "Náhledy stránek knihovny (položek {})",
|
"cache_settings_album_thumbnails": "Náhledy stránek knihovny (položek {})",
|
||||||
"cache_settings_clear_cache_button": "Vymazat vyrovnávací paměť",
|
"cache_settings_clear_cache_button": "Vymazat vyrovnávací paměť",
|
||||||
"cache_settings_clear_cache_button_title": "Vymaže vyrovnávací paměť aplikace. To výrazně ovlivní výkon aplikace, dokud se vyrovnávací paměť neobnoví.",
|
"cache_settings_clear_cache_button_title": "Vymaže vyrovnávací paměť aplikace. To výrazně ovlivní výkon aplikace, dokud se vyrovnávací paměť neobnoví.",
|
||||||
@@ -123,7 +128,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Vymazat",
|
"control_bottom_app_bar_delete": "Vymazat",
|
||||||
"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_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Odarchivovat",
|
||||||
"create_album_page_untitled": "Bez názvu",
|
"create_album_page_untitled": "Bez názvu",
|
||||||
"create_shared_album_page_create": "Vytvořit",
|
"create_shared_album_page_create": "Vytvořit",
|
||||||
"create_shared_album_page_share": "Sdílet",
|
"create_shared_album_page_share": "Sdílet",
|
||||||
@@ -147,7 +152,7 @@
|
|||||||
"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!",
|
||||||
"experimental_settings_title": "Experimentální",
|
"experimental_settings_title": "Experimentální",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "Nebyla nalezena žádná oblíbená média",
|
||||||
"favorites_page_title": "Oblíbené",
|
"favorites_page_title": "Oblíbené",
|
||||||
"home_page_add_to_album_conflicts": "Přidáno {added} položek do alba {album}. {failed} položek již je v albu.",
|
"home_page_add_to_album_conflicts": "Přidáno {added} položek do alba {album}. {failed} položek již je v albu.",
|
||||||
"home_page_add_to_album_err_local": "Zatím není možné přidat lokální média do alb, přeskakuje se",
|
"home_page_add_to_album_err_local": "Zatím není možné přidat lokální média do alb, přeskakuje se",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Vytváření časové osy",
|
"home_page_building_timeline": "Vytváření časové osy",
|
||||||
"home_page_favorite_err_local": "Zatím není možné zařadit lokální média mezi oblíbená, přeskakuje se",
|
"home_page_favorite_err_local": "Zatím není možné zařadit lokální média mezi oblíbená, přeskakuje se",
|
||||||
"home_page_first_time_notice": "Pokud aplikaci používáte poprvé, nezapomeňte si vybrat zálohovaná alba, aby se na časové ose mohly nacházet fotografie a videa z vybraných albech.",
|
"home_page_first_time_notice": "Pokud aplikaci používáte poprvé, nezapomeňte si vybrat zálohovaná alba, aby se na časové ose mohly nacházet fotografie a videa z vybraných albech.",
|
||||||
|
"home_page_upload_err_limit": "Lze nahrát nejvýše 30 položek najednou, přeskakuji",
|
||||||
"image_viewer_page_state_provider_download_error": "Chyba stahování",
|
"image_viewer_page_state_provider_download_error": "Chyba stahování",
|
||||||
"image_viewer_page_state_provider_download_success": "Stahování bylo úspěšné",
|
"image_viewer_page_state_provider_download_success": "Stahování bylo úspěšné",
|
||||||
"library_page_albums": "Alba",
|
"library_page_albums": "Alba",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sdílení",
|
"library_page_sharing": "Sdílení",
|
||||||
"library_page_sort_created": "Naposledy vytvořené",
|
"library_page_sort_created": "Naposledy vytvořené",
|
||||||
"library_page_sort_title": "Podle názvu alba",
|
"library_page_sort_title": "Podle názvu alba",
|
||||||
|
"login_disabled": "Přihlášení bylo zakázáno",
|
||||||
"login_form_api_exception": "Výjimka API. Zkontrolujte URL serveru a zkuste to znovu.",
|
"login_form_api_exception": "Výjimka API. Zkontrolujte URL serveru a zkuste to znovu.",
|
||||||
"login_form_button_text": "Přihlásit se",
|
"login_form_button_text": "Přihlásit se",
|
||||||
"login_form_email_hint": "tvůjmail@email.com",
|
"login_form_email_hint": "tvůjmail@email.com",
|
||||||
@@ -194,14 +201,14 @@
|
|||||||
"notification_permission_list_tile_content": "Udělte oprávnění k aktivaci oznámení.",
|
"notification_permission_list_tile_content": "Udělte oprávnění k aktivaci oznámení.",
|
||||||
"notification_permission_list_tile_enable_button": "Povolit oznámení",
|
"notification_permission_list_tile_enable_button": "Povolit oznámení",
|
||||||
"notification_permission_list_tile_title": "Povolení oznámení",
|
"notification_permission_list_tile_title": "Povolení oznámení",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Přidat partnera",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Vaše fotografie zatím nejsou sdíleny s žádným partnerem.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "Žádní další uživatelé k přidání",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Nepodařilo se přidat partnera",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Vyberte partnera",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Sdíleno",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} již nebude mít přístup k vašim fotografiím.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Přestat sdílet vaše fotografie?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Partner",
|
||||||
"permission_onboarding_continue_anyway": "Přesto pokračovat",
|
"permission_onboarding_continue_anyway": "Přesto pokračovat",
|
||||||
"permission_onboarding_get_started": "Začít",
|
"permission_onboarding_get_started": "Začít",
|
||||||
@@ -223,7 +230,7 @@
|
|||||||
"search_page_motion_photos": "Pohyblivé fotky",
|
"search_page_motion_photos": "Pohyblivé fotky",
|
||||||
"search_page_no_objects": "Informace o objektech nejsou k dispozici",
|
"search_page_no_objects": "Informace o objektech nejsou k dispozici",
|
||||||
"search_page_no_places": "Informace o místě nejsou k dispozici",
|
"search_page_no_places": "Informace o místě nejsou k dispozici",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Lidé",
|
||||||
"search_page_places": "Místa",
|
"search_page_places": "Místa",
|
||||||
"search_page_recently_added": "Nedávno přidané",
|
"search_page_recently_added": "Nedávno přidané",
|
||||||
"search_page_screenshots": "Snímky obrazovky",
|
"search_page_screenshots": "Snímky obrazovky",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Téma",
|
"theme_setting_theme_title": "Téma",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Třístupňové načítání může zvýšit výkonnost načítání, ale vede k výrazně vyššímu zatížení sítě.",
|
"theme_setting_three_stage_loading_subtitle": "Třístupňové načítání může zvýšit výkonnost načítání, ale vede k výrazně vyššímu zatížení sítě.",
|
||||||
"theme_setting_three_stage_loading_title": "Povolení třístupňového načítání",
|
"theme_setting_three_stage_loading_title": "Povolení třístupňového načítání",
|
||||||
|
"upload_dialog_cancel": "Zrušit",
|
||||||
|
"upload_dialog_info": "Chcete zálohovat vybrané položky na server?",
|
||||||
|
"upload_dialog_ok": "Zálohovat",
|
||||||
|
"upload_dialog_title": "Zálohovat položku",
|
||||||
"version_announcement_overlay_ack": "Potvrdit",
|
"version_announcement_overlay_ack": "Potvrdit",
|
||||||
"version_announcement_overlay_release_notes": "poznámky k vydání",
|
"version_announcement_overlay_release_notes": "poznámky k vydání",
|
||||||
"version_announcement_overlay_text_1": "Ahoj, je zde nová verze",
|
"version_announcement_overlay_text_1": "Ahoj, je zde nová verze",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploader filinformation",
|
"backup_controller_page_uploading_file_info": "Uploader filinformation",
|
||||||
"backup_err_only_album": "Kan ikke slette det eneste album",
|
"backup_err_only_album": "Kan ikke slette det eneste album",
|
||||||
"backup_info_card_assets": "elementer",
|
"backup_info_card_assets": "elementer",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Biblioteksminiaturebilleder ({} elementer)",
|
"cache_settings_album_thumbnails": "Biblioteksminiaturebilleder ({} elementer)",
|
||||||
"cache_settings_clear_cache_button": "Fjern cache",
|
"cache_settings_clear_cache_button": "Fjern cache",
|
||||||
"cache_settings_clear_cache_button_title": "Fjern appens cache. Dette vil i stor grad påvirke appens ydeevne indtil cachen er genopbygget.",
|
"cache_settings_clear_cache_button_title": "Fjern appens cache. Dette vil i stor grad påvirke appens ydeevne indtil cachen er genopbygget.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Bygger tidslinjen",
|
"home_page_building_timeline": "Bygger tidslinjen",
|
||||||
"home_page_favorite_err_local": "Kan endnu ikke gøre lokale elementer til favoritter. Springer over..",
|
"home_page_favorite_err_local": "Kan endnu ikke gøre lokale elementer til favoritter. Springer over..",
|
||||||
"home_page_first_time_notice": "Hvis dette er din første gang i appen, bedes du vælge en backup af albummer så tidlinjen kan blive fyldt med billeder og videoer fra albummerne.",
|
"home_page_first_time_notice": "Hvis dette er din første gang i appen, bedes du vælge en backup af albummer så tidlinjen kan blive fyldt med billeder og videoer fra albummerne.",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Fejl ved download",
|
"image_viewer_page_state_provider_download_error": "Fejl ved download",
|
||||||
"image_viewer_page_state_provider_download_success": "Download succesfuld",
|
"image_viewer_page_state_provider_download_success": "Download succesfuld",
|
||||||
"library_page_albums": "Albummer",
|
"library_page_albums": "Albummer",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Delte",
|
"library_page_sharing": "Delte",
|
||||||
"library_page_sort_created": "Senest oprettet",
|
"library_page_sort_created": "Senest oprettet",
|
||||||
"library_page_sort_title": "Albumtitel",
|
"library_page_sort_title": "Albumtitel",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API-undtagelse. Tjek serverens URL og prøv igen. ",
|
"login_form_api_exception": "API-undtagelse. Tjek serverens URL og prøv igen. ",
|
||||||
"login_form_button_text": "Log ind",
|
"login_form_button_text": "Log ind",
|
||||||
"login_form_email_hint": "din-e-mail@e-mail.com",
|
"login_form_email_hint": "din-e-mail@e-mail.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Tre-trins indlæsning kan øge ydeevnen, men kan ligeledes føre til højere netværksbelastning",
|
"theme_setting_three_stage_loading_subtitle": "Tre-trins indlæsning kan øge ydeevnen, men kan ligeledes føre til højere netværksbelastning",
|
||||||
"theme_setting_three_stage_loading_title": "Slå tre-trins indlæsning til",
|
"theme_setting_three_stage_loading_title": "Slå tre-trins indlæsning til",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Accepter",
|
"version_announcement_overlay_ack": "Accepter",
|
||||||
"version_announcement_overlay_release_notes": "udgivelsesnoterne",
|
"version_announcement_overlay_release_notes": "udgivelsesnoterne",
|
||||||
"version_announcement_overlay_text_1": "Hej ven, der er en ny version af",
|
"version_announcement_overlay_text_1": "Hej ven, der er en ny version af",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Zu {album} hinzugefügt",
|
"add_to_album_bottom_sheet_added": "Zu {album} hinzugefügt",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
|
||||||
"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_subtitle": "Manche Endgeräte laden Vorschaubilder lokaler Bilder sehr langsam. Durch diese Einstellung werden diese stattdessen direkt vom Server geladen.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Server-Bilder bevorzugen",
|
||||||
"advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen",
|
"advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen",
|
||||||
"advanced_settings_tile_title": "Sonstige",
|
"advanced_settings_tile_title": "Sonstige",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Aktiviere erweiterte Funktionen zur Fehlersuche",
|
"advanced_settings_troubleshooting_subtitle": "Aktiviere erweiterte Funktionen zur Fehlersuche",
|
||||||
@@ -22,9 +22,9 @@
|
|||||||
"album_viewer_appbar_share_leave": "Album verlassen",
|
"album_viewer_appbar_share_leave": "Album verlassen",
|
||||||
"album_viewer_appbar_share_remove": "Entferne vom Album",
|
"album_viewer_appbar_share_remove": "Entferne vom Album",
|
||||||
"album_viewer_page_share_add_users": "Nutzer hinzufügen",
|
"album_viewer_page_share_add_users": "Nutzer hinzufügen",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Personen",
|
||||||
"all_videos_page_title": "Videos",
|
"all_videos_page_title": "Videos",
|
||||||
"archive_page_no_archived_assets": "Keine archivierten Elemente gefunden",
|
"archive_page_no_archived_assets": "Keine archivierten Inhalte gefunden",
|
||||||
"archive_page_title": "Archive ({})",
|
"archive_page_title": "Archive ({})",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Dynamisches Layout",
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamisches Layout",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatisch",
|
"asset_list_layout_settings_group_automatically": "Automatisch",
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Informationen",
|
"backup_controller_page_uploading_file_info": "Informationen",
|
||||||
"backup_err_only_album": "Das einzige Album kann nicht entfernt werden",
|
"backup_err_only_album": "Das einzige Album kann nicht entfernt werden",
|
||||||
"backup_info_card_assets": "Elemente",
|
"backup_info_card_assets": "Elemente",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Zwischenspeicher löschen",
|
"cache_settings_clear_cache_button": "Zwischenspeicher löschen",
|
||||||
"cache_settings_clear_cache_button_title": "Löscht den Zwischenspeicher der App. Dies wird die Leistungsfähigkeit der App deutlich einschränken, bis der Zwischenspeicher wieder aufgebaut wurde.",
|
"cache_settings_clear_cache_button_title": "Löscht den Zwischenspeicher der App. Dies wird die Leistungsfähigkeit der App deutlich einschränken, bis der Zwischenspeicher wieder aufgebaut wurde.",
|
||||||
@@ -127,7 +132,7 @@
|
|||||||
"create_album_page_untitled": "Unbenannt",
|
"create_album_page_untitled": "Unbenannt",
|
||||||
"create_shared_album_page_create": "Erstellen",
|
"create_shared_album_page_create": "Erstellen",
|
||||||
"create_shared_album_page_share": "Teilen",
|
"create_shared_album_page_share": "Teilen",
|
||||||
"create_shared_album_page_share_add_assets": "ELEMENTE HINZUFÜGEN",
|
"create_shared_album_page_share_add_assets": "INHALTE HINZUFÜGEN",
|
||||||
"create_shared_album_page_share_select_photos": "Fotos auswählen",
|
"create_shared_album_page_share_select_photos": "Fotos auswählen",
|
||||||
"curated_location_page_title": "Orte",
|
"curated_location_page_title": "Orte",
|
||||||
"curated_object_page_title": "Dinge",
|
"curated_object_page_title": "Dinge",
|
||||||
@@ -147,7 +152,7 @@
|
|||||||
"experimental_settings_new_asset_list_title": "Experimentelle Fotogitter aktivieren",
|
"experimental_settings_new_asset_list_title": "Experimentelle Fotogitter aktivieren",
|
||||||
"experimental_settings_subtitle": "Benutzung auf eigene Gefahr!",
|
"experimental_settings_subtitle": "Benutzung auf eigene Gefahr!",
|
||||||
"experimental_settings_title": "Experimentell",
|
"experimental_settings_title": "Experimentell",
|
||||||
"favorites_page_no_favorites": "Keine favorisierten Elemente gefunden",
|
"favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
|
||||||
"favorites_page_title": "Favoriten",
|
"favorites_page_title": "Favoriten",
|
||||||
"home_page_add_to_album_conflicts": "{added} Elemente zu {album} hinzugefügt. {failed} Elemente sind bereits vorhanden.",
|
"home_page_add_to_album_conflicts": "{added} Elemente zu {album} hinzugefügt. {failed} Elemente sind bereits vorhanden.",
|
||||||
"home_page_add_to_album_err_local": "Kann lokale Elemente noch nicht zu Alben hinzufügen, überspringe",
|
"home_page_add_to_album_err_local": "Kann lokale Elemente noch nicht zu Alben hinzufügen, überspringe",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Zeitachse wird erstellt.",
|
"home_page_building_timeline": "Zeitachse wird erstellt.",
|
||||||
"home_page_favorite_err_local": "Kann lokale Elemente noch nicht favorisieren, überspringe",
|
"home_page_favorite_err_local": "Kann lokale Elemente noch nicht favorisieren, überspringe",
|
||||||
"home_page_first_time_notice": "Wenn dies das erste Mal ist dass Du Immich nutzt, stelle bitte sicher, dass mindestens ein Album zur Sicherung ausgewählt ist, sodass die Zeitachse mit Fotos und Videos gefüllt werden kann.",
|
"home_page_first_time_notice": "Wenn dies das erste Mal ist dass Du Immich nutzt, stelle bitte sicher, dass mindestens ein Album zur Sicherung ausgewählt ist, sodass die Zeitachse mit Fotos und Videos gefüllt werden kann.",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Fehler beim Herunterladen",
|
"image_viewer_page_state_provider_download_error": "Fehler beim Herunterladen",
|
||||||
"image_viewer_page_state_provider_download_success": "Erfolgreich heruntergeladen",
|
"image_viewer_page_state_provider_download_success": "Erfolgreich heruntergeladen",
|
||||||
"library_page_albums": "Alben",
|
"library_page_albums": "Alben",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Teilen",
|
"library_page_sharing": "Teilen",
|
||||||
"library_page_sort_created": "Zuletzt erstellt",
|
"library_page_sort_created": "Zuletzt erstellt",
|
||||||
"library_page_sort_title": "Albumtitel",
|
"library_page_sort_title": "Albumtitel",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API Fehler. Bitte die Serveradresse überprüfen und erneut versuchen.",
|
"login_form_api_exception": "API Fehler. Bitte die Serveradresse überprüfen und erneut versuchen.",
|
||||||
"login_form_button_text": "Anmelden",
|
"login_form_button_text": "Anmelden",
|
||||||
"login_form_email_hint": "deine@email.de",
|
"login_form_email_hint": "deine@email.de",
|
||||||
@@ -174,8 +181,8 @@
|
|||||||
"login_form_err_http": "Bitte gebe http:// oder https:// an",
|
"login_form_err_http": "Bitte gebe http:// oder https:// an",
|
||||||
"login_form_err_invalid_email": "Ungültige E-Mail",
|
"login_form_err_invalid_email": "Ungültige E-Mail",
|
||||||
"login_form_err_invalid_url": "Ungültige URL",
|
"login_form_err_invalid_url": "Ungültige URL",
|
||||||
"login_form_err_leading_whitespace": "Führendes Leerzichen",
|
"login_form_err_leading_whitespace": "Leerzichen am Anfang",
|
||||||
"login_form_err_trailing_whitespace": "Folgendes Leerzeichen",
|
"login_form_err_trailing_whitespace": "Leerzeichen am Ende",
|
||||||
"login_form_failed_get_oauth_server_config": "Fehler beim Login per OAuth, Server-URL überprüfen",
|
"login_form_failed_get_oauth_server_config": "Fehler beim Login per OAuth, Server-URL überprüfen",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth-Funktion nicht verfügbar auf diesem Server.",
|
"login_form_failed_get_oauth_server_disable": "OAuth-Funktion nicht verfügbar auf diesem Server.",
|
||||||
"login_form_failed_login": "Error logging you in, check server url, email and password",
|
"login_form_failed_login": "Error logging you in, check server url, email and password",
|
||||||
@@ -194,13 +201,13 @@
|
|||||||
"notification_permission_list_tile_content": "Erlaube Berechtigung für Benachrichtigungen",
|
"notification_permission_list_tile_content": "Erlaube Berechtigung für Benachrichtigungen",
|
||||||
"notification_permission_list_tile_enable_button": "Aktiviere Benachrichtigungen",
|
"notification_permission_list_tile_enable_button": "Aktiviere Benachrichtigungen",
|
||||||
"notification_permission_list_tile_title": "Benachrichtigungs-Berechtigung",
|
"notification_permission_list_tile_title": "Benachrichtigungs-Berechtigung",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Partner hinzufügen",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "No more users to add",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Failed to add partner",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Partner auswählen",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Geteilt mit",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} wird nicht mehr auf deine Fotos zugreifen können.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Partner",
|
||||||
"permission_onboarding_continue_anyway": "Trotzdem fortfahren",
|
"permission_onboarding_continue_anyway": "Trotzdem fortfahren",
|
||||||
@@ -223,7 +230,7 @@
|
|||||||
"search_page_motion_photos": "Live Photos",
|
"search_page_motion_photos": "Live Photos",
|
||||||
"search_page_no_objects": "Keine Objektinformationen verfügbar",
|
"search_page_no_objects": "Keine Objektinformationen verfügbar",
|
||||||
"search_page_no_places": "Keine Informationen über Orte verfügbar",
|
"search_page_no_places": "Keine Informationen über Orte verfügbar",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Personen",
|
||||||
"search_page_places": "Orte",
|
"search_page_places": "Orte",
|
||||||
"search_page_recently_added": "Zuletzt hinzugefügt",
|
"search_page_recently_added": "Zuletzt hinzugefügt",
|
||||||
"search_page_screenshots": "Bildschirmfotos",
|
"search_page_screenshots": "Bildschirmfotos",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Das dreistufige Ladeverfahren kann die Performance beim Laden verbessern, erhöht allerdings den Datenverbrauch deutlich",
|
"theme_setting_three_stage_loading_subtitle": "Das dreistufige Ladeverfahren kann die Performance beim Laden verbessern, erhöht allerdings den Datenverbrauch deutlich",
|
||||||
"theme_setting_three_stage_loading_title": "Dreistufiges Laden aktivieren",
|
"theme_setting_three_stage_loading_title": "Dreistufiges Laden aktivieren",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Ich habe verstanden",
|
"version_announcement_overlay_ack": "Ich habe verstanden",
|
||||||
"version_announcement_overlay_release_notes": "Änderungsprotokoll",
|
"version_announcement_overlay_release_notes": "Änderungsprotokoll",
|
||||||
"version_announcement_overlay_text_1": "Hallo mein Freund! Es gibt eine neue Version von",
|
"version_announcement_overlay_text_1": "Hallo mein Freund! Es gibt eine neue Version von",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -186,7 +193,6 @@
|
|||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Stay logged in",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
"login_disabled": "Login has been disabled",
|
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
@@ -285,10 +291,14 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"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_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": "New Server Version Available \uD83C\uDF89"
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89"
|
||||||
}
|
}
|
||||||
@@ -1,83 +1,83 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
"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_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Avanzado",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
||||||
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
"advanced_settings_troubleshooting_title": "Solución de problemas",
|
||||||
"album_info_card_backup_album_excluded": "EXCLUIDOS",
|
"album_info_card_backup_album_excluded": "EXCLUIDOS",
|
||||||
"album_info_card_backup_album_included": "INCLUIDOS",
|
"album_info_card_backup_album_included": "INCLUIDOS",
|
||||||
"album_thumbnail_card_item": "1 item",
|
"album_thumbnail_card_item": "1 elemento",
|
||||||
"album_thumbnail_card_items": "{} items",
|
"album_thumbnail_card_items": "{} elementos",
|
||||||
"album_thumbnail_card_shared": " · Shared",
|
"album_thumbnail_card_shared": "Compartido",
|
||||||
"album_thumbnail_owned": "Owned",
|
"album_thumbnail_owned": "Propio",
|
||||||
"album_thumbnail_shared_by": "Shared by {}",
|
"album_thumbnail_shared_by": "Compartido por {}",
|
||||||
"album_viewer_appbar_share_delete": "Eliminar álbum ",
|
"album_viewer_appbar_share_delete": "Eliminar álbum ",
|
||||||
"album_viewer_appbar_share_err_delete": "No ha podido eliminar el álbum",
|
"album_viewer_appbar_share_err_delete": "No ha podido eliminar el álbum",
|
||||||
"album_viewer_appbar_share_err_leave": "No ha podido dejar el álbum",
|
"album_viewer_appbar_share_err_leave": "No se ha podido abandonar el álbum",
|
||||||
"album_viewer_appbar_share_err_remove": "Hay problemas para eliminar los activos del álbum",
|
"album_viewer_appbar_share_err_remove": "Hay problemas para eliminar los archivos del álbum",
|
||||||
"album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum ",
|
"album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum ",
|
||||||
"album_viewer_appbar_share_leave": "Abandonar álbum ",
|
"album_viewer_appbar_share_leave": "Abandonar álbum ",
|
||||||
"album_viewer_appbar_share_remove": "Eliminar del álbum ",
|
"album_viewer_appbar_share_remove": "Eliminar del álbum ",
|
||||||
"album_viewer_page_share_add_users": "Añadir usuarios",
|
"album_viewer_page_share_add_users": "Agregar usuarios",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Personas",
|
||||||
"all_videos_page_title": "Videos",
|
"all_videos_page_title": "Videos",
|
||||||
"archive_page_no_archived_assets": "No archived assets found",
|
"archive_page_no_archived_assets": "No se encontraron recursos archivados",
|
||||||
"archive_page_title": "Archive ({})",
|
"archive_page_title": "Archivo ({})",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Disposición dinámica",
|
"asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"asset_list_layout_settings_group_automatically": "Automatico",
|
||||||
"asset_list_layout_settings_group_by": "Agrupar recursos por",
|
"asset_list_layout_settings_group_by": "Agrupar recursos por",
|
||||||
"asset_list_layout_settings_group_by_month": "Mes",
|
"asset_list_layout_settings_group_by_month": "Mes",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Mes + día",
|
"asset_list_layout_settings_group_by_month_day": "Mes + día",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Cuadrícula de fotos",
|
||||||
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Toque para incluir, doble toque para excluir",
|
"backup_album_selection_page_albums_tap": "Toque para incluir, doble toque para excluir",
|
||||||
"backup_album_selection_page_assets_scatter": "Los activos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.",
|
"backup_album_selection_page_assets_scatter": "Los archivos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.",
|
||||||
"backup_album_selection_page_select_albums": "Seleccionar Álbumes",
|
"backup_album_selection_page_select_albums": "Seleccionar Álbumes",
|
||||||
"backup_album_selection_page_selection_info": "Información sobre la Selección",
|
"backup_album_selection_page_selection_info": "Información sobre la Selección",
|
||||||
"backup_album_selection_page_total_assets": "Total de activos únicos",
|
"backup_album_selection_page_total_assets": "Total de archivos únicos",
|
||||||
"backup_all": "Todos",
|
"backup_all": "Todos",
|
||||||
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
"backup_background_service_backup_failed_message": "Error al copiar archivos. Reintentando...",
|
||||||
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
"backup_background_service_connection_failed_message": "Error al conectar con el servidor. Reintentando...",
|
||||||
"backup_background_service_current_upload_notification": "Uploading {}",
|
"backup_background_service_current_upload_notification": "Cargando {}",
|
||||||
"backup_background_service_default_notification": "Checking for new assets…",
|
"backup_background_service_default_notification": "Verificando si hay nuevos archivos",
|
||||||
"backup_background_service_error_title": "Backup error",
|
"backup_background_service_error_title": "Error de copia de seguridad",
|
||||||
"backup_background_service_in_progress_notification": "Backing up your assets…",
|
"backup_background_service_in_progress_notification": "Creando copia de seguridad de tus archivos...",
|
||||||
"backup_background_service_upload_failure_notification": "Failed to upload {}",
|
"backup_background_service_upload_failure_notification": "Error al cargar {}",
|
||||||
"backup_controller_page_albums": "Álbumes de copia de seguridad",
|
"backup_controller_page_albums": "Álbumes de copia de seguridad",
|
||||||
"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_content": "Activa la actualización en segundo plano de la aplicación en Configuración > General > Actualización en segundo plano para usar la copia de seguridad en segundo plano.",
|
||||||
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
"backup_controller_page_background_app_refresh_disabled_title": "Actualización en segundo plano desactivada",
|
||||||
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
|
"backup_controller_page_background_app_refresh_enable_button_text": "Ir a configuración",
|
||||||
"backup_controller_page_background_battery_info_link": "Show me how",
|
"backup_controller_page_background_battery_info_link": "Muestrame cómo",
|
||||||
"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_message": "Para obtener la mejor experiencia de copia de seguridad en segundo plano, desactiva cualquier optimización de batería que restrinja la actividad en segundo plano para Immich.\n\nDado que esto es específico en cada dispositivo, busca la información necesaria de el fabricante de tu dispositivo.",
|
||||||
"backup_controller_page_background_battery_info_ok": "OK",
|
"backup_controller_page_background_battery_info_ok": "Ok",
|
||||||
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
"backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
|
||||||
"backup_controller_page_background_charging": "Only while charging",
|
"backup_controller_page_background_charging": "Solo mientras se carga",
|
||||||
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
"backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
"backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos activos: {}",
|
||||||
"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_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
|
||||||
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
"backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
|
||||||
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
"backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está activada",
|
||||||
"backup_controller_page_background_turn_off": "Turn off background service",
|
"backup_controller_page_background_turn_off": "Desactivar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_turn_on": "Turn on background service",
|
"backup_controller_page_background_turn_on": "Activar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_wifi": "Only on WiFi",
|
"backup_controller_page_background_wifi": "Solo en WiFi",
|
||||||
"backup_controller_page_backup": "Copia de Seguridad",
|
"backup_controller_page_backup": "Copia de Seguridad",
|
||||||
"backup_controller_page_backup_selected": "Seleccionado:",
|
"backup_controller_page_backup_selected": "Seleccionado:",
|
||||||
"backup_controller_page_backup_sub": "Copia de seguridad de fotos y vídeos",
|
"backup_controller_page_backup_sub": "Fotos y videos respaldados",
|
||||||
"backup_controller_page_cancel": "Cancelar",
|
"backup_controller_page_cancel": "Cancelar",
|
||||||
"backup_controller_page_created": "Created on: {}",
|
"backup_controller_page_created": "Creado el: {}",
|
||||||
"backup_controller_page_desc_backup": "Active la copia de seguridad para cargar automáticamente los nuevos activos al servidor.",
|
"backup_controller_page_desc_backup": "Active la copia de seguridad para cargar automáticamente los nuevos activos al servidor.",
|
||||||
"backup_controller_page_excluded": "Excluido:",
|
"backup_controller_page_excluded": "Excluido:",
|
||||||
"backup_controller_page_failed": "Failed ({})",
|
"backup_controller_page_failed": "Fallidos ({})",
|
||||||
"backup_controller_page_filename": "File name: {} [{}]",
|
"backup_controller_page_filename": "Nombre del archivo: {} [{}]",
|
||||||
"backup_controller_page_id": "ID: {}",
|
"backup_controller_page_id": "ID: {}",
|
||||||
"backup_controller_page_info": "Información de la Copia de Seguridad",
|
"backup_controller_page_info": "Información de la Copia de Seguridad",
|
||||||
"backup_controller_page_none_selected": "Ninguno seleccionado",
|
"backup_controller_page_none_selected": "Ninguno seleccionado",
|
||||||
"backup_controller_page_remainder": "Remanente",
|
"backup_controller_page_remainder": "Restante",
|
||||||
"backup_controller_page_remainder_sub": "Fotos y álbumes restantes para hacer una copia de seguridad de la selección",
|
"backup_controller_page_remainder_sub": "Fotos y videos restantes para hacer una copia de seguridad de la selección",
|
||||||
"backup_controller_page_select": "Seleccionar",
|
"backup_controller_page_select": "Seleccionar",
|
||||||
"backup_controller_page_server_storage": "Almacenamiento en el servidor",
|
"backup_controller_page_server_storage": "Almacenamiento en el servidor",
|
||||||
"backup_controller_page_start_backup": "Iniciar copia de seguridad",
|
"backup_controller_page_start_backup": "Iniciar copia de seguridad",
|
||||||
@@ -89,48 +89,53 @@
|
|||||||
"backup_controller_page_total_sub": "Todas las fotos y vídeos únicos de los álbumes seleccionados",
|
"backup_controller_page_total_sub": "Todas las fotos y vídeos únicos de los álbumes seleccionados",
|
||||||
"backup_controller_page_turn_off": "Apagar la copia de seguridad",
|
"backup_controller_page_turn_off": "Apagar la copia de seguridad",
|
||||||
"backup_controller_page_turn_on": "Activar la copia de seguridad",
|
"backup_controller_page_turn_on": "Activar la copia de seguridad",
|
||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Cargando información del archivo",
|
||||||
"backup_err_only_album": "No se puede eliminar el único álbum",
|
"backup_err_only_album": "No se puede eliminar el único álbum",
|
||||||
"backup_info_card_assets": "activos",
|
"backup_info_card_assets": "archivos",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"backup_manual_cancelled": "Cancelled",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"backup_manual_failed": "Failed",
|
||||||
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
"backup_manual_success": "Success",
|
||||||
"cache_settings_statistics_album": "Library thumbnails",
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_statistics_assets": "{} assets ({})",
|
"cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
|
||||||
"cache_settings_statistics_full": "Full images",
|
"cache_settings_clear_cache_button": "Borrar caché",
|
||||||
"cache_settings_statistics_shared": "Shared album thumbnails",
|
"cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
|
||||||
"cache_settings_statistics_thumbnail": "Thumbnails",
|
"cache_settings_image_cache_size": "Tamaño de la caché de imágenes ({} archivos)",
|
||||||
"cache_settings_statistics_title": "Cache usage",
|
"cache_settings_statistics_album": "Miniaturas de la biblioteca",
|
||||||
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
"cache_settings_statistics_assets": "{} archivos ({})",
|
||||||
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
"cache_settings_statistics_full": "Imágenes completas",
|
||||||
"cache_settings_title": "Caching Settings",
|
"cache_settings_statistics_shared": "Miniaturas de álbumes compartidos",
|
||||||
"change_password_form_confirm_password": "Confirm Password",
|
"cache_settings_statistics_thumbnail": "Miniaturas",
|
||||||
"change_password_form_description": "Hi {firstName} {lastName},\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.",
|
"cache_settings_statistics_title": "Uso de caché",
|
||||||
"change_password_form_new_password": "New Password",
|
"cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"cache_settings_title": "Configuración de la caché",
|
||||||
"common_add_to_album": "Add to album",
|
"change_password_form_confirm_password": "Confirmar Contraseña",
|
||||||
"common_change_password": "Change Password",
|
"change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
|
||||||
"common_create_new_album": "Create new album",
|
"change_password_form_new_password": "Nueva Contraseña",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
||||||
"common_shared": "Shared",
|
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
||||||
"control_bottom_app_bar_add_to_album": "Añadir al álbum",
|
"common_add_to_album": "Agregar al álbum",
|
||||||
|
"common_change_password": "Cambiar Contraseña",
|
||||||
|
"common_create_new_album": "Crear nuevo álbum",
|
||||||
|
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
||||||
|
"common_shared": "Compartido",
|
||||||
|
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
||||||
"control_bottom_app_bar_album_info": "{} elementos",
|
"control_bottom_app_bar_album_info": "{} elementos",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartido",
|
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
||||||
"control_bottom_app_bar_archive": "Archive",
|
"control_bottom_app_bar_archive": "Archivar",
|
||||||
"control_bottom_app_bar_create_new_album": "Crear nuevo álbum",
|
"control_bottom_app_bar_create_new_album": "Crear nuevo álbum",
|
||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Desarchivar",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Sin título",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Crear",
|
||||||
"create_shared_album_page_share": "Compartir",
|
"create_shared_album_page_share": "Compartir",
|
||||||
"create_shared_album_page_share_add_assets": "AÑADIR ACTIVOS",
|
"create_shared_album_page_share_add_assets": "AGREGAR ARCHIVOS",
|
||||||
"create_shared_album_page_share_select_photos": "Seleccionar Fotos",
|
"create_shared_album_page_share_select_photos": "Seleccionar Fotos",
|
||||||
"curated_location_page_title": "Places",
|
"curated_location_page_title": "Lugares",
|
||||||
"curated_object_page_title": "Things",
|
"curated_object_page_title": "Objetos",
|
||||||
"daily_title_text_date": "E dd, MMM",
|
"daily_title_text_date": "E dd, MMM",
|
||||||
"daily_title_text_date_year": "E dd de MMM, yyyy",
|
"daily_title_text_date_year": "E dd de MMM, yyyy",
|
||||||
"date_format": "E d, LLL y • h:mm a",
|
"date_format": "E d, LLL y • h:mm a",
|
||||||
@@ -138,35 +143,37 @@
|
|||||||
"delete_dialog_cancel": "Cancelar",
|
"delete_dialog_cancel": "Cancelar",
|
||||||
"delete_dialog_ok": "Eliminar",
|
"delete_dialog_ok": "Eliminar",
|
||||||
"delete_dialog_title": "Eliminar Permanentemente",
|
"delete_dialog_title": "Eliminar Permanentemente",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Agregar descripción...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
||||||
"exif_bottom_sheet_description": "Añadir Descripción...",
|
"exif_bottom_sheet_description": "Agregar Descripción...",
|
||||||
"exif_bottom_sheet_details": "DETALLES",
|
"exif_bottom_sheet_details": "DETALLES",
|
||||||
"exif_bottom_sheet_location": "LOCALZACIÓN",
|
"exif_bottom_sheet_location": "UBICACIÓN",
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
"home_page_add_to_album_conflicts": "Añadidos {added} elementos al álbum {album}. {failed} elementos ya están añadidos.",
|
"home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.{failed} elementos ya existen en el álbum.",
|
||||||
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
"home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
|
||||||
"home_page_add_to_album_success": "Añadidos {added} elementos al álbum {album}.",
|
"home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
|
||||||
"home_page_archive_err_local": "Can not archive local assets yet, skipping",
|
"home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
|
||||||
"home_page_building_timeline": "Construyendo la línea de tiempo",
|
"home_page_building_timeline": "Construyendo la línea de tiempo",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
|
||||||
"home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
|
"home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
||||||
"library_page_albums": "Albums",
|
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
||||||
"library_page_archive": "Archive",
|
"library_page_albums": "Álbumes",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_archive": "Archivo",
|
||||||
|
"library_page_device_albums": "Álbumes en el dispositivo",
|
||||||
"library_page_favorites": "Favoritos",
|
"library_page_favorites": "Favoritos",
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "Nuevo álbum",
|
||||||
"library_page_sharing": "Compartiendo",
|
"library_page_sharing": "Compartiendo",
|
||||||
"library_page_sort_created": "Creado más recientemente",
|
"library_page_sort_created": "Creado más recientemente",
|
||||||
"library_page_sort_title": "Título del álbum",
|
"library_page_sort_title": "Título del álbum",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_disabled": "Login has been disabled",
|
||||||
|
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
||||||
"login_form_button_text": "Iniciar Sesión",
|
"login_form_button_text": "Iniciar Sesión",
|
||||||
"login_form_email_hint": "tucorreo@correo.com",
|
"login_form_email_hint": "tucorreo@correo.com",
|
||||||
"login_form_endpoint_hint": "http://tu-ip-de-servidor:puerto/api",
|
"login_form_endpoint_hint": "http://tu-ip-de-servidor:puerto/api",
|
||||||
@@ -176,118 +183,122 @@
|
|||||||
"login_form_err_invalid_url": "URL no válida",
|
"login_form_err_invalid_url": "URL no válida",
|
||||||
"login_form_err_leading_whitespace": "Espacio en blanco inicial",
|
"login_form_err_leading_whitespace": "Espacio en blanco inicial",
|
||||||
"login_form_err_trailing_whitespace": "Espacio en blanco al final",
|
"login_form_err_trailing_whitespace": "Espacio en blanco al final",
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
||||||
"login_form_label_email": "Correo",
|
"login_form_label_email": "Correo",
|
||||||
"login_form_label_password": "Contraseña",
|
"login_form_label_password": "Contraseña",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Siguiente",
|
||||||
"login_form_password_hint": "contraseña",
|
"login_form_password_hint": "contraseña",
|
||||||
"login_form_save_login": "Mantener la sesión iniciada",
|
"login_form_save_login": "Mantener la sesión iniciada",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Agrega la URL del servidor.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "No se pudo conectar al servidor.",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Foto en Movimiento",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Ajustes",
|
||||||
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
"notification_permission_list_tile_content": "Concede permiso para habilitar las notificaciones.",
|
||||||
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
"notification_permission_list_tile_enable_button": "Permitir notificaciones",
|
||||||
"notification_permission_list_tile_title": "Notification Permission",
|
"notification_permission_list_tile_title": "Permisos de Notificacion",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Agregar compañero",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Tus fotos aún no se han compartido con ningún compañero.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "No hay más usuarios para agregar",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Compañero no pudo ser agregado ",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Seleccionar compañero",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Compartido con",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} ya no podrá acceder a tus fotos",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Compañero",
|
||||||
"permission_onboarding_continue_anyway": "Continue anyway",
|
"permission_onboarding_continue_anyway": "Continuar de todos modos",
|
||||||
"permission_onboarding_get_started": "Get started",
|
"permission_onboarding_get_started": "Empezar",
|
||||||
"permission_onboarding_go_to_settings": "Go to settings",
|
"permission_onboarding_go_to_settings": "Ir a configuración",
|
||||||
"permission_onboarding_grant_permission": "Grant permission",
|
"permission_onboarding_grant_permission": "Conceder permiso",
|
||||||
"permission_onboarding_log_out": "Log out",
|
"permission_onboarding_log_out": "Cerrar sesión",
|
||||||
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_denied": "Permiso denegado. Para usar Immich, concede permisos de fotos y videos en Configuración.",
|
||||||
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
"permission_onboarding_permission_granted": "¡Permiso concedido! Todo listo.",
|
||||||
"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_permission_limited": "Permiso limitado. Para permitir que Immich haga copia de seguridad y gestione toda tu colección de galería, concede permisos de fotos y videos en Configuración.",
|
||||||
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
"permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
|
||||||
"profile_drawer_app_logs": "Logs",
|
"profile_drawer_app_logs": "Registros",
|
||||||
"profile_drawer_client_server_up_to_date": "El Cliente y el Servidor están actualizados",
|
"profile_drawer_client_server_up_to_date": "El Cliente y el Servidor están actualizados",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Configuración",
|
||||||
"profile_drawer_sign_out": "Cerrar Sesión",
|
"profile_drawer_sign_out": "Cerrar Sesión",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recién Agregadas",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categorías",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favoritos",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Foto en Movimiento",
|
||||||
"search_page_no_objects": "No Objects Info Available",
|
"search_page_no_objects": "No hay información de objetos disponibles",
|
||||||
"search_page_no_places": "No hay información de lugares disponibles",
|
"search_page_no_places": "No hay información de lugares disponibles",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Personas",
|
||||||
"search_page_places": "Lugares",
|
"search_page_places": "Lugares",
|
||||||
"search_page_recently_added": "Recently added",
|
"search_page_recently_added": "Recién agregadas",
|
||||||
"search_page_screenshots": "Screenshots",
|
"search_page_screenshots": "Capturas de pantalla",
|
||||||
"search_page_selfies": "Selfies",
|
"search_page_selfies": "Selfies",
|
||||||
"search_page_things": "Cosas",
|
"search_page_things": "Cosas",
|
||||||
"search_page_videos": "Videos",
|
"search_page_videos": "Videos",
|
||||||
"search_page_view_all_button": "View all",
|
"search_page_view_all_button": "Ver todo",
|
||||||
"search_page_your_activity": "Your activity",
|
"search_page_your_activity": "Tu actividad",
|
||||||
"search_result_page_new_search_hint": "Nueva Busqueda",
|
"search_result_page_new_search_hint": "Nueva Busqueda",
|
||||||
"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_1": "La búsqueda inteligente está habilitada por defecto, para buscar metadatos utiliza esta sintaxis ",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
"search_suggestion_list_smart_search_hint_2": "m:tu-término-de-búsqueda",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Sugerencias",
|
"select_additional_user_for_sharing_page_suggestions": "Sugerencias",
|
||||||
"select_user_for_sharing_page_err_album": "Fallo al crear el álbum",
|
"select_user_for_sharing_page_err_album": "Fallo al crear el álbum",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
"select_user_for_sharing_page_share_suggestions": "Sugerencias",
|
||||||
"server_info_box_app_version": "App Version",
|
"server_info_box_app_version": "Versión de la Aplicación",
|
||||||
"server_info_box_server_version": "Server Version",
|
"server_info_box_server_version": "Versión del Servidor",
|
||||||
"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_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
|
||||||
"setting_image_viewer_original_subtitle": "Habilitar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
|
"setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
|
||||||
"setting_image_viewer_original_title": "Cargar imagen original",
|
"setting_image_viewer_original_title": "Cargar imagen original",
|
||||||
"setting_image_viewer_preview_subtitle": "Habilitar para cargar una imagen de resolución media. Deshabilitar para cargar directamente la imagen original o usar una miniatura.",
|
"setting_image_viewer_preview_subtitle": "Activar para cargar una imagen de resolución media. Deshabilitar para cargar directamente la imagen original o usar una miniatura.",
|
||||||
"setting_image_viewer_preview_title": "Cargar imagen de previsualización",
|
"setting_image_viewer_preview_title": "Cargar imagen de previsualización",
|
||||||
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
"setting_notifications_notify_failures_grace_period": "Notificar fallos de copia de seguridad en segundo plano: {}",
|
||||||
"setting_notifications_notify_hours": "{} hours",
|
"setting_notifications_notify_hours": "{} horas",
|
||||||
"setting_notifications_notify_immediately": "immediately",
|
"setting_notifications_notify_immediately": "inmediatamente",
|
||||||
"setting_notifications_notify_minutes": "{} minutes",
|
"setting_notifications_notify_minutes": "{} minutos",
|
||||||
"setting_notifications_notify_never": "never",
|
"setting_notifications_notify_never": "nunca",
|
||||||
"setting_notifications_notify_seconds": "{} seconds",
|
"setting_notifications_notify_seconds": "{} segundos",
|
||||||
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
"setting_notifications_single_progress_subtitle": "Información detallada del progreso de subida de cada archivo",
|
||||||
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
"setting_notifications_single_progress_title": "Mostrar progreso detallado de copia de seguridad en segundo plano",
|
||||||
"setting_notifications_subtitle": "Adjust your notification preferences",
|
"setting_notifications_subtitle": "Ajusta tus preferencias de notificación",
|
||||||
"setting_notifications_title": "Notifications",
|
"setting_notifications_title": "Notificaciones",
|
||||||
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
"setting_notifications_total_progress_subtitle": "Progreso general de subida (archivos completados/total)",
|
||||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
"setting_notifications_total_progress_title": "Mostrar progreso total de copia de seguridad en segundo plano",
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
"setting_pages_app_bar_settings": "Ajustes",
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
|
||||||
"share_add": "Añadir",
|
"share_add": "Agregar",
|
||||||
"share_add_photos": "Añadir fotos",
|
"share_add_photos": "Agregar fotos",
|
||||||
"share_add_title": "Añadir un título",
|
"share_add_title": "Agregar un título",
|
||||||
"share_create_album": "Crear álbum",
|
"share_create_album": "Crear álbum",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparando...",
|
||||||
"share_invite": "Invitar al álbum",
|
"share_invite": "Invitar al álbum",
|
||||||
"sharing_page_album": "Álbumes compartidos",
|
"sharing_page_album": "Álbumes compartidos",
|
||||||
"sharing_page_description": "Crea álbumes compartidos para compartir fotos y vídeos con las personas de tu red.",
|
"sharing_page_description": "Crea álbumes compartidos para compartir fotos y vídeos con las personas de tu red.",
|
||||||
"sharing_page_empty_list": "LISTA VACIA",
|
"sharing_page_empty_list": "LISTA VACIA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Crear un álbum compartido",
|
"sharing_silver_appbar_create_shared_album": "Crear un álbum compartido",
|
||||||
"sharing_silver_appbar_share_partner": "Compartir con el compañero",
|
"sharing_silver_appbar_share_partner": "Compartir con el compañero",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Biblioteca",
|
||||||
"tab_controller_nav_photos": "Fotos",
|
"tab_controller_nav_photos": "Fotos",
|
||||||
"tab_controller_nav_search": "Buscar",
|
"tab_controller_nav_search": "Buscar",
|
||||||
"tab_controller_nav_sharing": "Compartiendo",
|
"tab_controller_nav_sharing": "Compartiendo",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({})",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Modo oscuro",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Tema",
|
||||||
"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_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
||||||
"version_announcement_overlay_ack": "Reconocer",
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
|
"version_announcement_overlay_ack": "Aceptar",
|
||||||
"version_announcement_overlay_release_notes": "notas de versión",
|
"version_announcement_overlay_release_notes": "notas de versión",
|
||||||
"version_announcement_overlay_text_1": "Hola amigo, hay una nueva versión de",
|
"version_announcement_overlay_text_1": "Hola amigo, hay una nueva versión de",
|
||||||
"version_announcement_overlay_text_2": "tómese su tiempo para visitar la ",
|
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
||||||
"version_announcement_overlay_text_3": "y asegurate de que tu configuración de docker-compose y .env está actualizada para evitar cualquier desconfiguración, especialmente si utiliza WatchTower o cualquier mecanismo que se encargue de actualizar su aplicación de servidor automáticamente.",
|
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
||||||
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
||||||
}
|
}
|
||||||
@@ -1,69 +1,69 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
"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_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Avanzado",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
||||||
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
"advanced_settings_troubleshooting_title": "Solución de problemas",
|
||||||
"album_info_card_backup_album_excluded": "EXCLUIDOS",
|
"album_info_card_backup_album_excluded": "EXCLUIDOS",
|
||||||
"album_info_card_backup_album_included": "INCLUIDOS",
|
"album_info_card_backup_album_included": "INCLUIDOS",
|
||||||
"album_thumbnail_card_item": "1 elemento",
|
"album_thumbnail_card_item": "1 elemento",
|
||||||
"album_thumbnail_card_items": "{} elementos",
|
"album_thumbnail_card_items": "{} elementos",
|
||||||
"album_thumbnail_card_shared": " · Compartido",
|
"album_thumbnail_card_shared": " · Compartido",
|
||||||
"album_thumbnail_owned": "Owned",
|
"album_thumbnail_owned": "Propio",
|
||||||
"album_thumbnail_shared_by": "Shared by {}",
|
"album_thumbnail_shared_by": "Compartido por {}",
|
||||||
"album_viewer_appbar_share_delete": "Eliminar álbum",
|
"album_viewer_appbar_share_delete": "Eliminar álbum",
|
||||||
"album_viewer_appbar_share_err_delete": "No se ha podido eliminar el álbum",
|
"album_viewer_appbar_share_err_delete": "No se ha podido eliminar el álbum",
|
||||||
"album_viewer_appbar_share_err_leave": "No se ha podido abandonar el álbum",
|
"album_viewer_appbar_share_err_leave": "No se ha podido abandonar el álbum",
|
||||||
"album_viewer_appbar_share_err_remove": "Hay problemas para eliminar recursos del álbum",
|
"album_viewer_appbar_share_err_remove": "Hay problemas para eliminar los archivos del álbum",
|
||||||
"album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
|
"album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
|
||||||
"album_viewer_appbar_share_leave": "Abandonar álbum ",
|
"album_viewer_appbar_share_leave": "Abandonar álbum ",
|
||||||
"album_viewer_appbar_share_remove": "Eliminar del álbum",
|
"album_viewer_appbar_share_remove": "Eliminar del álbum",
|
||||||
"album_viewer_page_share_add_users": "Añadir usuarios",
|
"album_viewer_page_share_add_users": "Agregar usuarios",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Personas",
|
||||||
"all_videos_page_title": "Videos",
|
"all_videos_page_title": "Videos",
|
||||||
"archive_page_no_archived_assets": "No archived assets found",
|
"archive_page_no_archived_assets": "No se encontraron recursos archivados",
|
||||||
"archive_page_title": "Archive ({})",
|
"archive_page_title": "Archivo ({})",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
"asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"asset_list_layout_settings_group_automatically": "Automatico",
|
||||||
"asset_list_layout_settings_group_by": "Group assets by",
|
"asset_list_layout_settings_group_by": "Agrupar recursos por",
|
||||||
"asset_list_layout_settings_group_by_month": "Month",
|
"asset_list_layout_settings_group_by_month": "Mes",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
"asset_list_layout_settings_group_by_month_day": "Mes + día",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Cuadrícula de fotos",
|
||||||
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
||||||
"backup_album_selection_page_assets_scatter": "Los recursos pueden dispersarse entre varios álbumes. Por lo tanto, los álbumes pueden incluirse o excluirse durante el proceso de respaldo.",
|
"backup_album_selection_page_assets_scatter": "Los archivos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.",
|
||||||
"backup_album_selection_page_select_albums": "Seleccionar álbumes",
|
"backup_album_selection_page_select_albums": "Seleccionar álbumes",
|
||||||
"backup_album_selection_page_selection_info": "Información de la selección",
|
"backup_album_selection_page_selection_info": "Información de la selección",
|
||||||
"backup_album_selection_page_total_assets": "Total de recursos únicos",
|
"backup_album_selection_page_total_assets": "Total de archivos únicos",
|
||||||
"backup_all": "Todos",
|
"backup_all": "Todos",
|
||||||
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
"backup_background_service_backup_failed_message": "Error al copiar archivos. Reintentando...",
|
||||||
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
"backup_background_service_connection_failed_message": "Error al conectar con el servidor. Reintentando...",
|
||||||
"backup_background_service_current_upload_notification": "Cargando {}",
|
"backup_background_service_current_upload_notification": "Cargando {}",
|
||||||
"backup_background_service_default_notification": "Comprobando por nuevos recursos...",
|
"backup_background_service_default_notification": "Verificando si hay nuevos archivos",
|
||||||
"backup_background_service_error_title": "Error al respaldar",
|
"backup_background_service_error_title": "Error de copia de seguridad",
|
||||||
"backup_background_service_in_progress_notification": "Respaldando tus recursos...",
|
"backup_background_service_in_progress_notification": "Creando copia de seguridad de tus archivos...",
|
||||||
"backup_background_service_upload_failure_notification": "Error al cargar {}",
|
"backup_background_service_upload_failure_notification": "Error al cargar {}",
|
||||||
"backup_controller_page_albums": "Álbumes de respaldo",
|
"backup_controller_page_albums": "Álbumes de respaldo",
|
||||||
"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_content": "Activa la actualización en segundo plano de la aplicación en Configuración > General > Actualización en segundo plano para usar la copia de seguridad en segundo plano.",
|
||||||
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
"backup_controller_page_background_app_refresh_disabled_title": "Actualización en segundo plano desactivada",
|
||||||
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
|
"backup_controller_page_background_app_refresh_enable_button_text": "Ir a configuración",
|
||||||
"backup_controller_page_background_battery_info_link": "Show me how",
|
"backup_controller_page_background_battery_info_link": "Muestrame cómo",
|
||||||
"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_message": "Para obtener la mejor experiencia de copia de seguridad en segundo plano, desactiva cualquier optimización de batería que restrinja la actividad en segundo plano para Immich.\n\nDado que esto es específico en cada dispositivo, busca la información necesaria de el fabricante de tu dispositivo.",
|
||||||
"backup_controller_page_background_battery_info_ok": "OK",
|
"backup_controller_page_background_battery_info_ok": "Ok",
|
||||||
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
"backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
|
||||||
"backup_controller_page_background_charging": "Only while charging",
|
"backup_controller_page_background_charging": "Solo mientras se carga",
|
||||||
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
"backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
"backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos activos: {}",
|
||||||
"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_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
|
||||||
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
"backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
|
||||||
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
"backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está desactivada",
|
||||||
"backup_controller_page_background_turn_off": "Turn off background service",
|
"backup_controller_page_background_turn_off": "Desactivar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_turn_on": "Turn on background service",
|
"backup_controller_page_background_turn_on": "Activar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_wifi": "Only on WiFi",
|
"backup_controller_page_background_wifi": "Solo en WiFi",
|
||||||
"backup_controller_page_backup": "Respaldo",
|
"backup_controller_page_backup": "Respaldo",
|
||||||
"backup_controller_page_backup_selected": "Seleccionado:",
|
"backup_controller_page_backup_selected": "Seleccionado:",
|
||||||
"backup_controller_page_backup_sub": "Fotos y videos respaldados",
|
"backup_controller_page_backup_sub": "Fotos y videos respaldados",
|
||||||
@@ -72,12 +72,12 @@
|
|||||||
"backup_controller_page_desc_backup": "Activa la copia de seguridad en primer plano para cargar automáticamente nuevos recursos al servidor al abrir la aplicación.",
|
"backup_controller_page_desc_backup": "Activa la copia de seguridad en primer plano para cargar automáticamente nuevos recursos al servidor al abrir la aplicación.",
|
||||||
"backup_controller_page_excluded": "Excluido:",
|
"backup_controller_page_excluded": "Excluido:",
|
||||||
"backup_controller_page_failed": "Fallidos ({})",
|
"backup_controller_page_failed": "Fallidos ({})",
|
||||||
"backup_controller_page_filename": "Nombre: {} [{}]",
|
"backup_controller_page_filename": "Nombre del archivo: {} [{}]",
|
||||||
"backup_controller_page_id": "ID: {}",
|
"backup_controller_page_id": "ID: {}",
|
||||||
"backup_controller_page_info": "Información del respaldo",
|
"backup_controller_page_info": "Información del respaldo",
|
||||||
"backup_controller_page_none_selected": "Ninguno seleccionado",
|
"backup_controller_page_none_selected": "Ninguno seleccionado",
|
||||||
"backup_controller_page_remainder": "Restante",
|
"backup_controller_page_remainder": "Restante",
|
||||||
"backup_controller_page_remainder_sub": "Fotos y videos restantes de la selección a los que realizar un respaldo",
|
"backup_controller_page_remainder_sub": "Fotos y videos restantes para hacer una copia de seguridad de la selección",
|
||||||
"backup_controller_page_select": "Seleccionar",
|
"backup_controller_page_select": "Seleccionar",
|
||||||
"backup_controller_page_server_storage": "Almacenamiento del servidor",
|
"backup_controller_page_server_storage": "Almacenamiento del servidor",
|
||||||
"backup_controller_page_start_backup": "Iniciar respaldo",
|
"backup_controller_page_start_backup": "Iniciar respaldo",
|
||||||
@@ -89,48 +89,53 @@
|
|||||||
"backup_controller_page_total_sub": "Todas las fotos y videos únicos de los álbumes seleccionados",
|
"backup_controller_page_total_sub": "Todas las fotos y videos únicos de los álbumes seleccionados",
|
||||||
"backup_controller_page_turn_off": "Desactivar la copia de seguridad en primer plano",
|
"backup_controller_page_turn_off": "Desactivar la copia de seguridad en primer plano",
|
||||||
"backup_controller_page_turn_on": "Activar la copia de seguridad en primer plano",
|
"backup_controller_page_turn_on": "Activar la copia de seguridad en primer plano",
|
||||||
"backup_controller_page_uploading_file_info": "Info de carga de archivo",
|
"backup_controller_page_uploading_file_info": "Cargando información del archivo",
|
||||||
"backup_err_only_album": "No se puede eliminar el único álbum",
|
"backup_err_only_album": "No se puede eliminar el único álbum",
|
||||||
"backup_info_card_assets": "recursos",
|
"backup_info_card_assets": "archivos",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"backup_manual_cancelled": "Cancelled",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"backup_manual_failed": "Failed",
|
||||||
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
"backup_manual_success": "Success",
|
||||||
"cache_settings_statistics_album": "Library thumbnails",
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_statistics_assets": "{} assets ({})",
|
"cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
|
||||||
"cache_settings_statistics_full": "Full images",
|
"cache_settings_clear_cache_button": "Borrar caché",
|
||||||
"cache_settings_statistics_shared": "Shared album thumbnails",
|
"cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
|
||||||
"cache_settings_statistics_thumbnail": "Thumbnails",
|
"cache_settings_image_cache_size": "Tamaño de la caché de imágenes ({} archivos)",
|
||||||
"cache_settings_statistics_title": "Cache usage",
|
"cache_settings_statistics_album": "Miniaturas de la biblioteca",
|
||||||
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
"cache_settings_statistics_assets": "{} archivos ({})",
|
||||||
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
"cache_settings_statistics_full": "Imágenes completas",
|
||||||
"cache_settings_title": "Caching Settings",
|
"cache_settings_statistics_shared": "Miniaturas de álbumes compartidos",
|
||||||
"change_password_form_confirm_password": "Confirm Password",
|
"cache_settings_statistics_thumbnail": "Miniaturas",
|
||||||
"change_password_form_description": "Hi {firstName} {lastName},\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.",
|
"cache_settings_statistics_title": "Uso de caché",
|
||||||
"change_password_form_new_password": "New Password",
|
"cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"cache_settings_title": "Configuración de la caché",
|
||||||
"common_add_to_album": "Add to album",
|
"change_password_form_confirm_password": "Confirmar Contraseña",
|
||||||
"common_change_password": "Change Password",
|
"change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
|
||||||
"common_create_new_album": "Create new album",
|
"change_password_form_new_password": "Nueva Contraseña",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
||||||
"common_shared": "Shared",
|
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"common_add_to_album": "Agregar al álbum",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"common_change_password": "Cambiar Contraseña",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"common_create_new_album": "Crear nuevo álbum",
|
||||||
"control_bottom_app_bar_archive": "Archive",
|
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
||||||
"control_bottom_app_bar_create_new_album": "Create new album",
|
"common_shared": "Compartido",
|
||||||
|
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
||||||
|
"control_bottom_app_bar_album_info": "{} elementos",
|
||||||
|
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
||||||
|
"control_bottom_app_bar_archive": "Archivar",
|
||||||
|
"control_bottom_app_bar_create_new_album": "Crear nuevo álbum",
|
||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Desarchivar",
|
||||||
"create_album_page_untitled": "Sin título",
|
"create_album_page_untitled": "Sin título",
|
||||||
"create_shared_album_page_create": "Crear",
|
"create_shared_album_page_create": "Crear",
|
||||||
"create_shared_album_page_share": "Compartir",
|
"create_shared_album_page_share": "Compartir",
|
||||||
"create_shared_album_page_share_add_assets": "AÑADIR RECURSOS",
|
"create_shared_album_page_share_add_assets": "AGREGAR ARCHIVOS",
|
||||||
"create_shared_album_page_share_select_photos": "Seleccionar fotos",
|
"create_shared_album_page_share_select_photos": "Seleccionar fotos",
|
||||||
"curated_location_page_title": "Places",
|
"curated_location_page_title": "Lugares",
|
||||||
"curated_object_page_title": "Things",
|
"curated_object_page_title": "Objetos",
|
||||||
"daily_title_text_date": "E, dd MMM",
|
"daily_title_text_date": "E, dd MMM",
|
||||||
"daily_title_text_date_year": "E, dd de MMM de yyyy",
|
"daily_title_text_date_year": "E, dd de MMM de yyyy",
|
||||||
"date_format": "E d, LLL y • h:mm a",
|
"date_format": "E d, LLL y • h:mm a",
|
||||||
@@ -138,130 +143,132 @@
|
|||||||
"delete_dialog_cancel": "Cancelar",
|
"delete_dialog_cancel": "Cancelar",
|
||||||
"delete_dialog_ok": "Eliminar",
|
"delete_dialog_ok": "Eliminar",
|
||||||
"delete_dialog_title": "Eliminar permanentemente",
|
"delete_dialog_title": "Eliminar permanentemente",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Agregar descripción...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
||||||
"exif_bottom_sheet_description": "Añadir descripción...",
|
"exif_bottom_sheet_description": "Agregar Descripción...",
|
||||||
"exif_bottom_sheet_details": "DETALLES",
|
"exif_bottom_sheet_details": "DETALLES",
|
||||||
"exif_bottom_sheet_location": "UBICACIÓN",
|
"exif_bottom_sheet_location": "UBICACIÓN",
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favoritos",
|
||||||
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
"home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.",
|
||||||
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
"home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
|
||||||
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
"home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
|
||||||
"home_page_archive_err_local": "Can not archive local assets yet, skipping",
|
"home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
|
||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Construyendo la línea de tiempo",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
|
||||||
"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_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
||||||
|
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
||||||
"library_page_albums": "Álbumes",
|
"library_page_albums": "Álbumes",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archivo",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Álbumes en el dispositivo",
|
||||||
"library_page_favorites": "Favorites",
|
"library_page_favorites": "Favoritos",
|
||||||
"library_page_new_album": "Nuevo álbum",
|
"library_page_new_album": "Nuevo álbum",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Compartiendo",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Creado más recientemente",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Título del álbum",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_disabled": "Login has been disabled",
|
||||||
|
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
||||||
"login_form_button_text": "Iniciar sesión",
|
"login_form_button_text": "Iniciar sesión",
|
||||||
"login_form_email_hint": "tucorreo@correo.com",
|
"login_form_email_hint": "tucorreo@correo.com",
|
||||||
"login_form_endpoint_hint": "http://la-ip-de-tu-servidor:puerto/api",
|
"login_form_endpoint_hint": "http://la-ip-de-tu-servidor:puerto/api",
|
||||||
"login_form_endpoint_url": "URL del servidor",
|
"login_form_endpoint_url": "URL del servidor",
|
||||||
"login_form_err_http": "Por favor, especifique http:// o https://",
|
"login_form_err_http": "Por favor, especifique http:// o https://",
|
||||||
"login_form_err_invalid_email": "Correo electrónico inválido",
|
"login_form_err_invalid_email": "Correo electrónico inválido",
|
||||||
"login_form_err_invalid_url": "Invalid URL",
|
"login_form_err_invalid_url": "URL no válida",
|
||||||
"login_form_err_leading_whitespace": "Espacio en blanco inicial",
|
"login_form_err_leading_whitespace": "Espacio en blanco inicial",
|
||||||
"login_form_err_trailing_whitespace": "Espacio en blanco al final",
|
"login_form_err_trailing_whitespace": "Espacio en blanco al final",
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
||||||
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
||||||
"login_form_label_email": "Correo electrónico",
|
"login_form_label_email": "Correo electrónico",
|
||||||
"login_form_label_password": "Contraseña",
|
"login_form_label_password": "Contraseña",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Siguiente",
|
||||||
"login_form_password_hint": "contraseña",
|
"login_form_password_hint": "contraseña",
|
||||||
"login_form_save_login": "Permanecer conectado",
|
"login_form_save_login": "Permanecer conectado",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Agrega la URL del servidor.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "No se pudo conectar al servidor.",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Foto en Movimiento",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Ajustes",
|
||||||
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
"notification_permission_list_tile_content": "Concede permiso para habilitar las notificaciones.",
|
||||||
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
"notification_permission_list_tile_enable_button": "Permitir notificaciones",
|
||||||
"notification_permission_list_tile_title": "Notification Permission",
|
"notification_permission_list_tile_title": "Permisos de Notificacion",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Agregar compañero",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Tus fotos aún no se han compartido con ningún compañero.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "No hay más usuarios para agregar",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Compañero no pudo ser agregado ",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Seleccionar compañero",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Compartido con",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} ya no podrá acceder a tus fotos",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Compañero",
|
||||||
"permission_onboarding_continue_anyway": "Continue anyway",
|
"permission_onboarding_continue_anyway": "Continuar de todos modos",
|
||||||
"permission_onboarding_get_started": "Get started",
|
"permission_onboarding_get_started": "Empezar",
|
||||||
"permission_onboarding_go_to_settings": "Go to settings",
|
"permission_onboarding_go_to_settings": "Ir a configuración",
|
||||||
"permission_onboarding_grant_permission": "Grant permission",
|
"permission_onboarding_grant_permission": "Conceder permiso",
|
||||||
"permission_onboarding_log_out": "Log out",
|
"permission_onboarding_log_out": "Cerrar sesión",
|
||||||
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_denied": "Permiso denegado. Para usar Immich, concede permisos de fotos y videos en Configuración.",
|
||||||
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
"permission_onboarding_permission_granted": "¡Permiso concedido! Todo listo.",
|
||||||
"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_permission_limited": "Permiso limitado. Para permitir que Immich haga copia de seguridad y gestione toda tu colección de galería, concede permisos de fotos y videos en Configuración.",
|
||||||
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
"permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
|
||||||
"profile_drawer_app_logs": "Logs",
|
"profile_drawer_app_logs": "Registros",
|
||||||
"profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
|
"profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
|
||||||
"profile_drawer_settings": "Configuración",
|
"profile_drawer_settings": "Configuración",
|
||||||
"profile_drawer_sign_out": "Cerrar sesión",
|
"profile_drawer_sign_out": "Cerrar sesión",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recién Agregadas",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categorías",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favoritos",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Foto en Movimiento",
|
||||||
"search_page_no_objects": "No hay información de objetos disponible",
|
"search_page_no_objects": "No hay información de objetos disponibles",
|
||||||
"search_page_no_places": "No hay información de lugares disponible",
|
"search_page_no_places": "No hay información de lugares disponible",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Personas",
|
||||||
"search_page_places": "Lugares",
|
"search_page_places": "Lugares",
|
||||||
"search_page_recently_added": "Recently added",
|
"search_page_recently_added": "Recién agregadas",
|
||||||
"search_page_screenshots": "Screenshots",
|
"search_page_screenshots": "Capturas de pantalla",
|
||||||
"search_page_selfies": "Selfies",
|
"search_page_selfies": "Selfies",
|
||||||
"search_page_things": "Cosas",
|
"search_page_things": "Cosas",
|
||||||
"search_page_videos": "Videos",
|
"search_page_videos": "Videos",
|
||||||
"search_page_view_all_button": "View all",
|
"search_page_view_all_button": "Ver todo",
|
||||||
"search_page_your_activity": "Your activity",
|
"search_page_your_activity": "Tu actividad",
|
||||||
"search_result_page_new_search_hint": "Nueva búsqueda",
|
"search_result_page_new_search_hint": "Nueva búsqueda",
|
||||||
"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_1": "La búsqueda inteligente está habilitada por defecto, para buscar metadatos utiliza esta sintaxis ",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
"search_suggestion_list_smart_search_hint_2": "m:tu-término-de-búsqueda",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Sugerencias",
|
"select_additional_user_for_sharing_page_suggestions": "Sugerencias",
|
||||||
"select_user_for_sharing_page_err_album": "Error al crear álbum",
|
"select_user_for_sharing_page_err_album": "Error al crear álbum",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Sugerencias",
|
"select_user_for_sharing_page_share_suggestions": "Sugerencias",
|
||||||
"server_info_box_app_version": "App Version",
|
"server_info_box_app_version": "Versión de la Aplicación",
|
||||||
"server_info_box_server_version": "Server Version",
|
"server_info_box_server_version": "Versión del Servidor",
|
||||||
"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_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
|
||||||
"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_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
|
||||||
"setting_image_viewer_original_title": "Load original image",
|
"setting_image_viewer_original_title": "Cargar imagen original",
|
||||||
"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_subtitle": "Activar para cargar una imagen de resolución media. Deshabilitar para cargar directamente la imagen original o usar una miniatura.",
|
||||||
"setting_image_viewer_preview_title": "Load preview image",
|
"setting_image_viewer_preview_title": "Cargar imagen de previsualización",
|
||||||
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
"setting_notifications_notify_failures_grace_period": "Notificar fallos de copia de seguridad en segundo plano: {}",
|
||||||
"setting_notifications_notify_hours": "{} hours",
|
"setting_notifications_notify_hours": "{} horas",
|
||||||
"setting_notifications_notify_immediately": "immediately",
|
"setting_notifications_notify_immediately": "inmediatamente",
|
||||||
"setting_notifications_notify_minutes": "{} minutes",
|
"setting_notifications_notify_minutes": "{} minutos",
|
||||||
"setting_notifications_notify_never": "never",
|
"setting_notifications_notify_never": "nunca",
|
||||||
"setting_notifications_notify_seconds": "{} seconds",
|
"setting_notifications_notify_seconds": "{} segundos",
|
||||||
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
"setting_notifications_single_progress_subtitle": "Información detallada del progreso de subida de cada archivo",
|
||||||
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
"setting_notifications_single_progress_title": "Mostrar progreso detallado de copia de seguridad en segundo plano",
|
||||||
"setting_notifications_subtitle": "Adjust your notification preferences",
|
"setting_notifications_subtitle": "Ajusta tus preferencias de notificación",
|
||||||
"setting_notifications_title": "Notifications",
|
"setting_notifications_title": "Notificaciones",
|
||||||
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
"setting_notifications_total_progress_subtitle": "Progreso general de subida (archivos completados/total)",
|
||||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
"setting_notifications_total_progress_title": "Mostrar progreso total de copia de seguridad en segundo plano",
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
"setting_pages_app_bar_settings": "Ajustes",
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
|
||||||
"share_add": "Añadir",
|
"share_add": "Agregar",
|
||||||
"share_add_photos": "Añadir fotos",
|
"share_add_photos": "Agregar fotos",
|
||||||
"share_add_title": "Añadir un título",
|
"share_add_title": "Agregar un título",
|
||||||
"share_create_album": "Crear álbum",
|
"share_create_album": "Crear álbum",
|
||||||
"share_dialog_preparing": "Preparando...",
|
"share_dialog_preparing": "Preparando...",
|
||||||
"share_invite": "Invitar al álbum",
|
"share_invite": "Invitar al álbum",
|
||||||
@@ -274,20 +281,24 @@
|
|||||||
"tab_controller_nav_photos": "Fotos",
|
"tab_controller_nav_photos": "Fotos",
|
||||||
"tab_controller_nav_search": "Buscar",
|
"tab_controller_nav_search": "Buscar",
|
||||||
"tab_controller_nav_sharing": "Compartiendo",
|
"tab_controller_nav_sharing": "Compartiendo",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({})",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Modo oscuro",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Tema",
|
||||||
"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_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Aceptar",
|
"version_announcement_overlay_ack": "Aceptar",
|
||||||
"version_announcement_overlay_release_notes": "notas de la versión",
|
"version_announcement_overlay_release_notes": "notas de la versión",
|
||||||
"version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
|
"version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
|
||||||
"version_announcement_overlay_text_2": "por favor, tómese su tiempo para visitar las",
|
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
||||||
"version_announcement_overlay_text_3": "y asegúrate de que tu configuración de docker-compose y .env está actualizada para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que se encargue de actualizar tu aplicación de servidor automáticamente.",
|
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
||||||
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
||||||
}
|
}
|
||||||
@@ -1,69 +1,69 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
"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_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Avanzado",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
||||||
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
"advanced_settings_troubleshooting_title": "Solución de problemas",
|
||||||
"album_info_card_backup_album_excluded": "EXCLUIDOS",
|
"album_info_card_backup_album_excluded": "EXCLUIDOS",
|
||||||
"album_info_card_backup_album_included": "INCLUIDOS",
|
"album_info_card_backup_album_included": "INCLUIDOS",
|
||||||
"album_thumbnail_card_item": "1 elemento",
|
"album_thumbnail_card_item": "1 elemento",
|
||||||
"album_thumbnail_card_items": "{} elementos",
|
"album_thumbnail_card_items": "{} elementos",
|
||||||
"album_thumbnail_card_shared": " · Compartido",
|
"album_thumbnail_card_shared": " · Compartido",
|
||||||
"album_thumbnail_owned": "Owned",
|
"album_thumbnail_owned": "Propio",
|
||||||
"album_thumbnail_shared_by": "Shared by {}",
|
"album_thumbnail_shared_by": "Compartido por {}",
|
||||||
"album_viewer_appbar_share_delete": "Eliminar álbum",
|
"album_viewer_appbar_share_delete": "Eliminar álbum",
|
||||||
"album_viewer_appbar_share_err_delete": "No se ha podido eliminar el álbum",
|
"album_viewer_appbar_share_err_delete": "No se ha podido eliminar el álbum",
|
||||||
"album_viewer_appbar_share_err_leave": "No se ha podido abandonar el álbum",
|
"album_viewer_appbar_share_err_leave": "No se ha podido abandonar el álbum",
|
||||||
"album_viewer_appbar_share_err_remove": "Hay problemas para eliminar recursos del álbum",
|
"album_viewer_appbar_share_err_remove": "Hay problemas para eliminar los archivos del álbum",
|
||||||
"album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
|
"album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
|
||||||
"album_viewer_appbar_share_leave": "Abandonar álbum ",
|
"album_viewer_appbar_share_leave": "Abandonar álbum ",
|
||||||
"album_viewer_appbar_share_remove": "Eliminar del álbum",
|
"album_viewer_appbar_share_remove": "Eliminar del álbum",
|
||||||
"album_viewer_page_share_add_users": "Añadir usuarios",
|
"album_viewer_page_share_add_users": "Agregar usuarios",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Personas",
|
||||||
"all_videos_page_title": "Videos",
|
"all_videos_page_title": "Videos",
|
||||||
"archive_page_no_archived_assets": "No archived assets found",
|
"archive_page_no_archived_assets": "No se encontraron recursos archivados",
|
||||||
"archive_page_title": "Archive ({})",
|
"archive_page_title": "Archivo ({})",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
"asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"asset_list_layout_settings_group_automatically": "Automatico",
|
||||||
"asset_list_layout_settings_group_by": "Group assets by",
|
"asset_list_layout_settings_group_by": "Agrupar recursos por",
|
||||||
"asset_list_layout_settings_group_by_month": "Month",
|
"asset_list_layout_settings_group_by_month": "Mes",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
"asset_list_layout_settings_group_by_month_day": "Mes + día",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Cuadrícula de fotos",
|
||||||
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
||||||
"backup_album_selection_page_assets_scatter": "Los recursos pueden dispersarse entre varios álbumes. Por lo tanto, los álbumes pueden incluirse o excluirse durante el proceso de respaldo.",
|
"backup_album_selection_page_assets_scatter": "Los archivos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.",
|
||||||
"backup_album_selection_page_select_albums": "Seleccionar álbumes",
|
"backup_album_selection_page_select_albums": "Seleccionar álbumes",
|
||||||
"backup_album_selection_page_selection_info": "Información de la selección",
|
"backup_album_selection_page_selection_info": "Información de la selección",
|
||||||
"backup_album_selection_page_total_assets": "Total de recursos únicos",
|
"backup_album_selection_page_total_assets": "Total de archivos únicos",
|
||||||
"backup_all": "Todos",
|
"backup_all": "Todos",
|
||||||
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
"backup_background_service_backup_failed_message": "Error al copiar archivos. Reintentando...",
|
||||||
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
"backup_background_service_connection_failed_message": "Error al conectar con el servidor. Reintentando...",
|
||||||
"backup_background_service_current_upload_notification": "Cargando {}",
|
"backup_background_service_current_upload_notification": "Cargando {}",
|
||||||
"backup_background_service_default_notification": "Comprobando por nuevos recursos...",
|
"backup_background_service_default_notification": "Verificando si hay nuevos archivos",
|
||||||
"backup_background_service_error_title": "Error al respaldar",
|
"backup_background_service_error_title": "Error de copia de seguridad",
|
||||||
"backup_background_service_in_progress_notification": "Respaldando tus recursos...",
|
"backup_background_service_in_progress_notification": "Creando copia de seguridad de tus archivos...",
|
||||||
"backup_background_service_upload_failure_notification": "Error al cargar {}",
|
"backup_background_service_upload_failure_notification": "Error al cargar {}",
|
||||||
"backup_controller_page_albums": "Álbumes de respaldo",
|
"backup_controller_page_albums": "Álbumes de respaldo",
|
||||||
"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_content": "Activa la actualización en segundo plano de la aplicación en Configuración > General > Actualización en segundo plano para usar la copia de seguridad en segundo plano.",
|
||||||
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
"backup_controller_page_background_app_refresh_disabled_title": "Actualización en segundo plano desactivada",
|
||||||
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
|
"backup_controller_page_background_app_refresh_enable_button_text": "Ir a configuración",
|
||||||
"backup_controller_page_background_battery_info_link": "Show me how",
|
"backup_controller_page_background_battery_info_link": "Muestrame cómo",
|
||||||
"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_message": "Para obtener la mejor experiencia de copia de seguridad en segundo plano, desactiva cualquier optimización de batería que restrinja la actividad en segundo plano para Immich.\n\nDado que esto es específico en cada dispositivo, busca la información necesaria de el fabricante de tu dispositivo.",
|
||||||
"backup_controller_page_background_battery_info_ok": "OK",
|
"backup_controller_page_background_battery_info_ok": "Ok",
|
||||||
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
"backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
|
||||||
"backup_controller_page_background_charging": "Only while charging",
|
"backup_controller_page_background_charging": "Solo mientras se carga",
|
||||||
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
"backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
"backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos activos: {}",
|
||||||
"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_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
|
||||||
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
"backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
|
||||||
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
"backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está desactivada",
|
||||||
"backup_controller_page_background_turn_off": "Turn off background service",
|
"backup_controller_page_background_turn_off": "Desactivar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_turn_on": "Turn on background service",
|
"backup_controller_page_background_turn_on": "Activar el servicio en segundo plano",
|
||||||
"backup_controller_page_background_wifi": "Only on WiFi",
|
"backup_controller_page_background_wifi": "Solo en WiFi",
|
||||||
"backup_controller_page_backup": "Respaldo",
|
"backup_controller_page_backup": "Respaldo",
|
||||||
"backup_controller_page_backup_selected": "Seleccionado:",
|
"backup_controller_page_backup_selected": "Seleccionado:",
|
||||||
"backup_controller_page_backup_sub": "Fotos y videos respaldados",
|
"backup_controller_page_backup_sub": "Fotos y videos respaldados",
|
||||||
@@ -72,12 +72,12 @@
|
|||||||
"backup_controller_page_desc_backup": "Activa la copia de seguridad en primer plano para cargar automáticamente nuevos recursos al servidor al abrir la aplicación.",
|
"backup_controller_page_desc_backup": "Activa la copia de seguridad en primer plano para cargar automáticamente nuevos recursos al servidor al abrir la aplicación.",
|
||||||
"backup_controller_page_excluded": "Excluido:",
|
"backup_controller_page_excluded": "Excluido:",
|
||||||
"backup_controller_page_failed": "Fallidos ({})",
|
"backup_controller_page_failed": "Fallidos ({})",
|
||||||
"backup_controller_page_filename": "Nombre: {} [{}]",
|
"backup_controller_page_filename": "Nombre del archivo: {} [{}]",
|
||||||
"backup_controller_page_id": "ID: {}",
|
"backup_controller_page_id": "ID: {}",
|
||||||
"backup_controller_page_info": "Información del respaldo",
|
"backup_controller_page_info": "Información del respaldo",
|
||||||
"backup_controller_page_none_selected": "Ninguno seleccionado",
|
"backup_controller_page_none_selected": "Ninguno seleccionado",
|
||||||
"backup_controller_page_remainder": "Restante",
|
"backup_controller_page_remainder": "Restante",
|
||||||
"backup_controller_page_remainder_sub": "Fotos y videos restantes de la selección a los que realizar un respaldo",
|
"backup_controller_page_remainder_sub": "Fotos y videos restantes para hacer una copia de seguridad de la selección",
|
||||||
"backup_controller_page_select": "Seleccionar",
|
"backup_controller_page_select": "Seleccionar",
|
||||||
"backup_controller_page_server_storage": "Almacenamiento del servidor",
|
"backup_controller_page_server_storage": "Almacenamiento del servidor",
|
||||||
"backup_controller_page_start_backup": "Iniciar respaldo",
|
"backup_controller_page_start_backup": "Iniciar respaldo",
|
||||||
@@ -89,48 +89,53 @@
|
|||||||
"backup_controller_page_total_sub": "Todas las fotos y videos únicos de los álbumes seleccionados",
|
"backup_controller_page_total_sub": "Todas las fotos y videos únicos de los álbumes seleccionados",
|
||||||
"backup_controller_page_turn_off": "Desactivar la copia de seguridad en primer plano",
|
"backup_controller_page_turn_off": "Desactivar la copia de seguridad en primer plano",
|
||||||
"backup_controller_page_turn_on": "Activar la copia de seguridad en primer plano",
|
"backup_controller_page_turn_on": "Activar la copia de seguridad en primer plano",
|
||||||
"backup_controller_page_uploading_file_info": "Info de carga de archivo",
|
"backup_controller_page_uploading_file_info": "Cargando información del archivo",
|
||||||
"backup_err_only_album": "No se puede eliminar el único álbum",
|
"backup_err_only_album": "No se puede eliminar el único álbum",
|
||||||
"backup_info_card_assets": "recursos",
|
"backup_info_card_assets": "archivos",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"backup_manual_cancelled": "Cancelled",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"backup_manual_failed": "Failed",
|
||||||
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
"backup_manual_success": "Success",
|
||||||
"cache_settings_statistics_album": "Library thumbnails",
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_statistics_assets": "{} assets ({})",
|
"cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
|
||||||
"cache_settings_statistics_full": "Full images",
|
"cache_settings_clear_cache_button": "Borrar caché",
|
||||||
"cache_settings_statistics_shared": "Shared album thumbnails",
|
"cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
|
||||||
"cache_settings_statistics_thumbnail": "Thumbnails",
|
"cache_settings_image_cache_size": "Tamaño de la caché de imágenes ({} archivos)",
|
||||||
"cache_settings_statistics_title": "Cache usage",
|
"cache_settings_statistics_album": "Miniaturas de la biblioteca",
|
||||||
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
"cache_settings_statistics_assets": "{} archivos ({})",
|
||||||
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
"cache_settings_statistics_full": "Imágenes completas",
|
||||||
"cache_settings_title": "Caching Settings",
|
"cache_settings_statistics_shared": "Miniaturas de álbumes compartidos",
|
||||||
"change_password_form_confirm_password": "Confirm Password",
|
"cache_settings_statistics_thumbnail": "Miniaturas",
|
||||||
"change_password_form_description": "Hi {firstName} {lastName},\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.",
|
"cache_settings_statistics_title": "Uso de caché",
|
||||||
"change_password_form_new_password": "New Password",
|
"cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"cache_settings_title": "Configuración de la caché",
|
||||||
"common_add_to_album": "Add to album",
|
"change_password_form_confirm_password": "Confirmar Contraseña",
|
||||||
"common_change_password": "Change Password",
|
"change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
|
||||||
"common_create_new_album": "Create new album",
|
"change_password_form_new_password": "Nueva Contraseña",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
||||||
"common_shared": "Shared",
|
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"common_add_to_album": "Agregar al álbum",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"common_change_password": "Cambiar Contraseña",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"common_create_new_album": "Crear nuevo álbum",
|
||||||
"control_bottom_app_bar_archive": "Archive",
|
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
||||||
"control_bottom_app_bar_create_new_album": "Create new album",
|
"common_shared": "Compartido",
|
||||||
|
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
||||||
|
"control_bottom_app_bar_album_info": "{} elementos",
|
||||||
|
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
||||||
|
"control_bottom_app_bar_archive": "Archivar",
|
||||||
|
"control_bottom_app_bar_create_new_album": "Crear nuevo álbum",
|
||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Desarchivar",
|
||||||
"create_album_page_untitled": "Sin título",
|
"create_album_page_untitled": "Sin título",
|
||||||
"create_shared_album_page_create": "Crear",
|
"create_shared_album_page_create": "Crear",
|
||||||
"create_shared_album_page_share": "Compartir",
|
"create_shared_album_page_share": "Compartir",
|
||||||
"create_shared_album_page_share_add_assets": "AÑADIR RECURSOS",
|
"create_shared_album_page_share_add_assets": "AGREGAR ARCHIVOS",
|
||||||
"create_shared_album_page_share_select_photos": "Seleccionar fotos",
|
"create_shared_album_page_share_select_photos": "Seleccionar fotos",
|
||||||
"curated_location_page_title": "Places",
|
"curated_location_page_title": "Lugares",
|
||||||
"curated_object_page_title": "Things",
|
"curated_object_page_title": "Objetos",
|
||||||
"daily_title_text_date": "E, dd MMM",
|
"daily_title_text_date": "E, dd MMM",
|
||||||
"daily_title_text_date_year": "E, dd de MMM de yyyy",
|
"daily_title_text_date_year": "E, dd de MMM de yyyy",
|
||||||
"date_format": "E d, LLL y • h:mm a",
|
"date_format": "E d, LLL y • h:mm a",
|
||||||
@@ -138,130 +143,132 @@
|
|||||||
"delete_dialog_cancel": "Cancelar",
|
"delete_dialog_cancel": "Cancelar",
|
||||||
"delete_dialog_ok": "Eliminar",
|
"delete_dialog_ok": "Eliminar",
|
||||||
"delete_dialog_title": "Eliminar permanentemente",
|
"delete_dialog_title": "Eliminar permanentemente",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Agregar descripción...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
||||||
"exif_bottom_sheet_description": "Añadir descripción...",
|
"exif_bottom_sheet_description": "Agregar Descripción...",
|
||||||
"exif_bottom_sheet_details": "DETALLES",
|
"exif_bottom_sheet_details": "DETALLES",
|
||||||
"exif_bottom_sheet_location": "UBICACIÓN",
|
"exif_bottom_sheet_location": "UBICACIÓN",
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
|
||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favoritos",
|
||||||
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
"home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.",
|
||||||
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
"home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
|
||||||
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
"home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
|
||||||
"home_page_archive_err_local": "Can not archive local assets yet, skipping",
|
"home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
|
||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Construyendo la línea de tiempo",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
|
||||||
"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_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
||||||
|
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
||||||
"library_page_albums": "Álbumes",
|
"library_page_albums": "Álbumes",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archivo",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Álbumes en el dispositivo",
|
||||||
"library_page_favorites": "Favorites",
|
"library_page_favorites": "Favoritos",
|
||||||
"library_page_new_album": "Nuevo álbum",
|
"library_page_new_album": "Nuevo álbum",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Compartiendo",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Creado más recientemente",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Título del álbum",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_disabled": "Login has been disabled",
|
||||||
|
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
||||||
"login_form_button_text": "Iniciar sesión",
|
"login_form_button_text": "Iniciar sesión",
|
||||||
"login_form_email_hint": "tucorreo@correo.com",
|
"login_form_email_hint": "tucorreo@correo.com",
|
||||||
"login_form_endpoint_hint": "http://la-ip-de-tu-servidor:puerto/api",
|
"login_form_endpoint_hint": "http://la-ip-de-tu-servidor:puerto/api",
|
||||||
"login_form_endpoint_url": "URL del servidor",
|
"login_form_endpoint_url": "URL del servidor",
|
||||||
"login_form_err_http": "Por favor, especifique http:// o https://",
|
"login_form_err_http": "Por favor, especifique http:// o https://",
|
||||||
"login_form_err_invalid_email": "Correo electrónico inválido",
|
"login_form_err_invalid_email": "Correo electrónico inválido",
|
||||||
"login_form_err_invalid_url": "Invalid URL",
|
"login_form_err_invalid_url": "URL no válida",
|
||||||
"login_form_err_leading_whitespace": "Espacio en blanco inicial",
|
"login_form_err_leading_whitespace": "Espacio en blanco inicial",
|
||||||
"login_form_err_trailing_whitespace": "Espacio en blanco al final",
|
"login_form_err_trailing_whitespace": "Espacio en blanco al final",
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
||||||
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
||||||
"login_form_label_email": "Correo electrónico",
|
"login_form_label_email": "Correo electrónico",
|
||||||
"login_form_label_password": "Contraseña",
|
"login_form_label_password": "Contraseña",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Siguiente",
|
||||||
"login_form_password_hint": "contraseña",
|
"login_form_password_hint": "contraseña",
|
||||||
"login_form_save_login": "Permanecer conectado",
|
"login_form_save_login": "Permanecer conectado",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Agrega la URL del servidor.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "No se pudo conectar al servidor.",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Foto en Movimiento",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Ajustes",
|
||||||
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
"notification_permission_list_tile_content": "Concede permiso para habilitar las notificaciones.",
|
||||||
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
"notification_permission_list_tile_enable_button": "Permitir notificaciones",
|
||||||
"notification_permission_list_tile_title": "Notification Permission",
|
"notification_permission_list_tile_title": "Permisos de Notificacion",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Agregar compañero",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Tus fotos aún no se han compartido con ningún compañero.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "No hay más usuarios para agregar",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Compañero no pudo ser agregado ",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Seleccionar compañero",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Compartido con",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} ya no podrá acceder a tus fotos",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Compañero",
|
||||||
"permission_onboarding_continue_anyway": "Continue anyway",
|
"permission_onboarding_continue_anyway": "Continuar de todos modos",
|
||||||
"permission_onboarding_get_started": "Get started",
|
"permission_onboarding_get_started": "Empezar",
|
||||||
"permission_onboarding_go_to_settings": "Go to settings",
|
"permission_onboarding_go_to_settings": "Ir a configuración",
|
||||||
"permission_onboarding_grant_permission": "Grant permission",
|
"permission_onboarding_grant_permission": "Conceder permiso",
|
||||||
"permission_onboarding_log_out": "Log out",
|
"permission_onboarding_log_out": "Cerrar sesión",
|
||||||
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_denied": "Permiso denegado. Para usar Immich, concede permisos de fotos y videos en Configuración.",
|
||||||
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
"permission_onboarding_permission_granted": "¡Permiso concedido! Todo listo.",
|
||||||
"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_permission_limited": "Permiso limitado. Para permitir que Immich haga copia de seguridad y gestione toda tu colección de galería, concede permisos de fotos y videos en Configuración.",
|
||||||
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
"permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
|
||||||
"profile_drawer_app_logs": "Logs",
|
"profile_drawer_app_logs": "Registros",
|
||||||
"profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
|
"profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
|
||||||
"profile_drawer_settings": "Configuración",
|
"profile_drawer_settings": "Configuración",
|
||||||
"profile_drawer_sign_out": "Cerrar sesión",
|
"profile_drawer_sign_out": "Cerrar sesión",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recién Agregadas",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categorías",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favoritos",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Foto en Movimiento",
|
||||||
"search_page_no_objects": "No hay información de objetos disponible",
|
"search_page_no_objects": "No hay información de objetos disponibles",
|
||||||
"search_page_no_places": "No hay información de lugares disponible",
|
"search_page_no_places": "No hay información de lugares disponible",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Personas",
|
||||||
"search_page_places": "Lugares",
|
"search_page_places": "Lugares",
|
||||||
"search_page_recently_added": "Recently added",
|
"search_page_recently_added": "Recién agregadas",
|
||||||
"search_page_screenshots": "Screenshots",
|
"search_page_screenshots": "Capturas de pantalla",
|
||||||
"search_page_selfies": "Selfies",
|
"search_page_selfies": "Selfies",
|
||||||
"search_page_things": "Cosas",
|
"search_page_things": "Cosas",
|
||||||
"search_page_videos": "Videos",
|
"search_page_videos": "Videos",
|
||||||
"search_page_view_all_button": "View all",
|
"search_page_view_all_button": "Ver todo",
|
||||||
"search_page_your_activity": "Your activity",
|
"search_page_your_activity": "Tu actividad",
|
||||||
"search_result_page_new_search_hint": "Nueva búsqueda",
|
"search_result_page_new_search_hint": "Nueva búsqueda",
|
||||||
"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_1": "La búsqueda inteligente está habilitada por defecto, para buscar metadatos utiliza esta sintaxis ",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
"search_suggestion_list_smart_search_hint_2": "m:tu-término-de-búsqueda",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Sugerencias",
|
"select_additional_user_for_sharing_page_suggestions": "Sugerencias",
|
||||||
"select_user_for_sharing_page_err_album": "Error al crear álbum",
|
"select_user_for_sharing_page_err_album": "Error al crear álbum",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Sugerencias",
|
"select_user_for_sharing_page_share_suggestions": "Sugerencias",
|
||||||
"server_info_box_app_version": "App Version",
|
"server_info_box_app_version": "Versión de la Aplicación",
|
||||||
"server_info_box_server_version": "Server Version",
|
"server_info_box_server_version": "Versión del Servidor",
|
||||||
"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_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
|
||||||
"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_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
|
||||||
"setting_image_viewer_original_title": "Load original image",
|
"setting_image_viewer_original_title": "Cargar imagen original",
|
||||||
"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_subtitle": "Activar para cargar una imagen de resolución media. Deshabilitar para cargar directamente la imagen original o usar una miniatura.",
|
||||||
"setting_image_viewer_preview_title": "Load preview image",
|
"setting_image_viewer_preview_title": "Cargar imagen de previsualización",
|
||||||
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
"setting_notifications_notify_failures_grace_period": "Notificar fallos de copia de seguridad en segundo plano: {}",
|
||||||
"setting_notifications_notify_hours": "{} hours",
|
"setting_notifications_notify_hours": "{} horas",
|
||||||
"setting_notifications_notify_immediately": "immediately",
|
"setting_notifications_notify_immediately": "inmediatamente",
|
||||||
"setting_notifications_notify_minutes": "{} minutes",
|
"setting_notifications_notify_minutes": "{} minutos",
|
||||||
"setting_notifications_notify_never": "never",
|
"setting_notifications_notify_never": "nunca",
|
||||||
"setting_notifications_notify_seconds": "{} seconds",
|
"setting_notifications_notify_seconds": "{} segundos",
|
||||||
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
"setting_notifications_single_progress_subtitle": "Información detallada del progreso de subida de cada archivo",
|
||||||
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
"setting_notifications_single_progress_title": "Mostrar progreso detallado de copia de seguridad en segundo plano",
|
||||||
"setting_notifications_subtitle": "Adjust your notification preferences",
|
"setting_notifications_subtitle": "Ajusta tus preferencias de notificación",
|
||||||
"setting_notifications_title": "Notifications",
|
"setting_notifications_title": "Notificaciones",
|
||||||
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
"setting_notifications_total_progress_subtitle": "Progreso general de subida (archivos completados/total)",
|
||||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
"setting_notifications_total_progress_title": "Mostrar progreso total de copia de seguridad en segundo plano",
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
"setting_pages_app_bar_settings": "Ajustes",
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
|
||||||
"share_add": "Añadir",
|
"share_add": "Agregar",
|
||||||
"share_add_photos": "Añadir fotos",
|
"share_add_photos": "Agregar fotos",
|
||||||
"share_add_title": "Añadir un título",
|
"share_add_title": "Agregar un título",
|
||||||
"share_create_album": "Crear álbum",
|
"share_create_album": "Crear álbum",
|
||||||
"share_dialog_preparing": "Preparando...",
|
"share_dialog_preparing": "Preparando...",
|
||||||
"share_invite": "Invitar al álbum",
|
"share_invite": "Invitar al álbum",
|
||||||
@@ -274,20 +281,24 @@
|
|||||||
"tab_controller_nav_photos": "Fotos",
|
"tab_controller_nav_photos": "Fotos",
|
||||||
"tab_controller_nav_search": "Buscar",
|
"tab_controller_nav_search": "Buscar",
|
||||||
"tab_controller_nav_sharing": "Compartiendo",
|
"tab_controller_nav_sharing": "Compartiendo",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({})",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Modo oscuro",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Tema",
|
||||||
"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_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Aceptar",
|
"version_announcement_overlay_ack": "Aceptar",
|
||||||
"version_announcement_overlay_release_notes": "notas de la versión",
|
"version_announcement_overlay_release_notes": "notas de la versión",
|
||||||
"version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
|
"version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
|
||||||
"version_announcement_overlay_text_2": "por favor, tómese su tiempo para visitar las",
|
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
||||||
"version_announcement_overlay_text_3": "y asegúrate de que tu configuración de docker-compose y .env está actualizada para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que se encargue de actualizar tu aplicación de servidor automáticamente.",
|
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
||||||
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
||||||
}
|
}
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Tiedostojen lähetystiedot",
|
"backup_controller_page_uploading_file_info": "Tiedostojen lähetystiedot",
|
||||||
"backup_err_only_album": "Vähintään yhden albumin tulee olla valittuna",
|
"backup_err_only_album": "Vähintään yhden albumin tulee olla valittuna",
|
||||||
"backup_info_card_assets": "kohdetta",
|
"backup_info_card_assets": "kohdetta",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Kirjastosivun esikatselukuvat ({} kohdetta)",
|
"cache_settings_album_thumbnails": "Kirjastosivun esikatselukuvat ({} kohdetta)",
|
||||||
"cache_settings_clear_cache_button": "Tyhjennä välimuisti",
|
"cache_settings_clear_cache_button": "Tyhjennä välimuisti",
|
||||||
"cache_settings_clear_cache_button_title": "Tyhjennä sovelluksen välimuisti. Tämä vaikuttaa merkittävästi sovelluksen suorituskykyyn, kunnes välimuisti on rakennettu uudelleen.",
|
"cache_settings_clear_cache_button_title": "Tyhjennä sovelluksen välimuisti. Tämä vaikuttaa merkittävästi sovelluksen suorituskykyyn, kunnes välimuisti on rakennettu uudelleen.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Rakennetaan aikajanaa",
|
"home_page_building_timeline": "Rakennetaan aikajanaa",
|
||||||
"home_page_favorite_err_local": "Paikallisten kohteiden lisääminen suosikkeihin ei ole mahdollista, ohitetaan",
|
"home_page_favorite_err_local": "Paikallisten kohteiden lisääminen suosikkeihin ei ole mahdollista, ohitetaan",
|
||||||
"home_page_first_time_notice": "Jos käytät sovellusta ensimmäistä kertaa, muista valita varmuuskopioitavat albumi(t), jotta aikajanalla voi olla kuvia ja videoita.",
|
"home_page_first_time_notice": "Jos käytät sovellusta ensimmäistä kertaa, muista valita varmuuskopioitavat albumi(t), jotta aikajanalla voi olla kuvia ja videoita.",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Lataus epäonnistui",
|
"image_viewer_page_state_provider_download_error": "Lataus epäonnistui",
|
||||||
"image_viewer_page_state_provider_download_success": "Lataus onnistui",
|
"image_viewer_page_state_provider_download_success": "Lataus onnistui",
|
||||||
"library_page_albums": "Albumit",
|
"library_page_albums": "Albumit",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Jakaminen",
|
"library_page_sharing": "Jakaminen",
|
||||||
"library_page_sort_created": "Viimeisin luotu",
|
"library_page_sort_created": "Viimeisin luotu",
|
||||||
"library_page_sort_title": "Albumin otsikko",
|
"library_page_sort_title": "Albumin otsikko",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API-virhe. Tarkista palvelimen URL-osoite ja yritä uudelleen.",
|
"login_form_api_exception": "API-virhe. Tarkista palvelimen URL-osoite ja yritä uudelleen.",
|
||||||
"login_form_button_text": "Kirjaudu",
|
"login_form_button_text": "Kirjaudu",
|
||||||
"login_form_email_hint": "sahkopostisi@esimerkki.fi",
|
"login_form_email_hint": "sahkopostisi@esimerkki.fi",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Teema",
|
"theme_setting_theme_title": "Teema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Kolmivaiheinen lataaminen saattaa parantaa latauksen suorituskykyä, mutta lisää kaistankäyttöä huomattavasti.",
|
"theme_setting_three_stage_loading_subtitle": "Kolmivaiheinen lataaminen saattaa parantaa latauksen suorituskykyä, mutta lisää kaistankäyttöä huomattavasti.",
|
||||||
"theme_setting_three_stage_loading_title": "Ota kolmivaiheinen lataus käyttöön",
|
"theme_setting_three_stage_loading_title": "Ota kolmivaiheinen lataus käyttöön",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Tiedostan",
|
"version_announcement_overlay_ack": "Tiedostan",
|
||||||
"version_announcement_overlay_release_notes": "julkaisutiedoissa",
|
"version_announcement_overlay_release_notes": "julkaisutiedoissa",
|
||||||
"version_announcement_overlay_text_1": "Hei, kaveri! Uusi palvelinversio on saatavilla sovelluksesta",
|
"version_announcement_overlay_text_1": "Hei, kaveri! Uusi palvelinversio on saatavilla sovelluksesta",
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
{
|
{
|
||||||
"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_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_subtitle": "Certains appareils sont terriblement lents à charger des miniatures à partir de ressources présentes sur l'appareil. Activez ce paramètre pour charger des images distantes à la place.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Préférer les images distantes",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Paramètres d'utilisateur avancés",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Avancé",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Activer des fonctions supplémentaires pour le dépannage",
|
||||||
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
"advanced_settings_troubleshooting_title": "Dépannage",
|
||||||
"album_info_card_backup_album_excluded": "EXCLU",
|
"album_info_card_backup_album_excluded": "EXCLU",
|
||||||
"album_info_card_backup_album_included": "INCLUS",
|
"album_info_card_backup_album_included": "INCLUS",
|
||||||
"album_thumbnail_card_item": "1 élément",
|
"album_thumbnail_card_item": "1 élément",
|
||||||
"album_thumbnail_card_items": "{} éléments",
|
"album_thumbnail_card_items": "{} éléments",
|
||||||
"album_thumbnail_card_shared": " · Partagé",
|
"album_thumbnail_card_shared": " · Partagé",
|
||||||
"album_thumbnail_owned": "Owned",
|
"album_thumbnail_owned": "Possédé",
|
||||||
"album_thumbnail_shared_by": "Shared by {}",
|
"album_thumbnail_shared_by": "Partagé par {}",
|
||||||
"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",
|
||||||
@@ -22,12 +22,12 @@
|
|||||||
"album_viewer_appbar_share_leave": "Quitter l'album",
|
"album_viewer_appbar_share_leave": "Quitter l'album",
|
||||||
"album_viewer_appbar_share_remove": "Retirer de l'album",
|
"album_viewer_appbar_share_remove": "Retirer de l'album",
|
||||||
"album_viewer_page_share_add_users": "Ajouter des utilisateurs",
|
"album_viewer_page_share_add_users": "Ajouter des utilisateurs",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Personnes",
|
||||||
"all_videos_page_title": "Videos",
|
"all_videos_page_title": "Vidéos",
|
||||||
"archive_page_no_archived_assets": "No archived assets found",
|
"archive_page_no_archived_assets": "Aucun élément archivé n'a été trouvé",
|
||||||
"archive_page_title": "Archive ({})",
|
"archive_page_title": "Archive ({})",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Affichage dynamique",
|
"asset_list_layout_settings_dynamic_layout_title": "Affichage dynamique",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"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",
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Transfert des informations du fichier",
|
"backup_controller_page_uploading_file_info": "Transfert des informations du fichier",
|
||||||
"backup_err_only_album": "Impossible de retirer le seul album",
|
"backup_err_only_album": "Impossible de retirer le seul album",
|
||||||
"backup_info_card_assets": "éléments",
|
"backup_info_card_assets": "éléments",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Miniatures de la page bibliothèque ({} éléments)",
|
"cache_settings_album_thumbnails": "Miniatures 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.",
|
||||||
@@ -113,7 +118,7 @@
|
|||||||
"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": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"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é",
|
||||||
"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",
|
||||||
@@ -123,14 +128,14 @@
|
|||||||
"control_bottom_app_bar_delete": "Supprimer",
|
"control_bottom_app_bar_delete": "Supprimer",
|
||||||
"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_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Désarchiver",
|
||||||
"create_album_page_untitled": "Sans titre",
|
"create_album_page_untitled": "Sans titre",
|
||||||
"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",
|
||||||
"curated_location_page_title": "Places",
|
"curated_location_page_title": "Places",
|
||||||
"curated_object_page_title": "Things",
|
"curated_object_page_title": "Objets",
|
||||||
"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",
|
||||||
@@ -138,8 +143,8 @@
|
|||||||
"delete_dialog_cancel": "Annuler",
|
"delete_dialog_cancel": "Annuler",
|
||||||
"delete_dialog_ok": "Supprimer",
|
"delete_dialog_ok": "Supprimer",
|
||||||
"delete_dialog_title": "Supprimer définitivement",
|
"delete_dialog_title": "Supprimer définitivement",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Ajouter une description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Erreur de mise à jour de la description, vérifier le journal pour plus de détails",
|
||||||
"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",
|
||||||
@@ -147,94 +152,96 @@
|
|||||||
"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",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
||||||
"favorites_page_title": "Favoris",
|
"favorites_page_title": "Favoris",
|
||||||
"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_archive_err_local": "Can not archive local assets yet, skipping",
|
"home_page_archive_err_local": "Impossible d'archiver les ressources locales pour l'instant, étape ignorée",
|
||||||
"home_page_building_timeline": "Construction de la chronologie",
|
"home_page_building_timeline": "Construction de la chronologie",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"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_success": "Téléchargement réussi",
|
"image_viewer_page_state_provider_download_success": "Téléchargement réussi",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"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_created": "Créations les plus récentes",
|
"library_page_sort_created": "Créations les plus récentes",
|
||||||
"library_page_sort_title": "Titre de l'album",
|
"library_page_sort_title": "Titre de l'album",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_disabled": "Login has been disabled",
|
||||||
|
"login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
|
||||||
"login_form_button_text": "Connexion",
|
"login_form_button_text": "Connexion",
|
||||||
"login_form_email_hint": "votreemail@email.com",
|
"login_form_email_hint": "votreemail@email.com",
|
||||||
"login_form_endpoint_hint": "http://adresse-ip-serveur:port/api",
|
"login_form_endpoint_hint": "http://adresse-ip-serveur:port/api",
|
||||||
"login_form_endpoint_url": "URL du point d'accès au serveur",
|
"login_form_endpoint_url": "URL du point d'accès au serveur",
|
||||||
"login_form_err_http": "Veuillez préciser http:// ou https://",
|
"login_form_err_http": "Veuillez préciser http:// ou https://",
|
||||||
"login_form_err_invalid_email": "Email invalide",
|
"login_form_err_invalid_email": "E-mail invalide",
|
||||||
"login_form_err_invalid_url": "URL invalide",
|
"login_form_err_invalid_url": "URL invalide",
|
||||||
"login_form_err_leading_whitespace": "Espace en début de ligne",
|
"login_form_err_leading_whitespace": "Espace en début de ligne",
|
||||||
"login_form_err_trailing_whitespace": "Espace de fin de ligne",
|
"login_form_err_trailing_whitespace": "Espace de fin de ligne",
|
||||||
"login_form_failed_get_oauth_server_config": "Erreur de connexion par OAuth, vérifiez l\"URL du serveur",
|
"login_form_failed_get_oauth_server_config": "Erreur de connexion par OAuth, vérifiez l\"URL du serveur",
|
||||||
"login_form_failed_get_oauth_server_disable": "La fonctionnalité OAuth n'est pas disponible sur ce serveur",
|
"login_form_failed_get_oauth_server_disable": "La fonctionnalité OAuth n'est pas disponible sur ce serveur",
|
||||||
"login_form_failed_login": "Erreur de connexion, vérifiez l'url du serveur, l'email et le mot de passe",
|
"login_form_failed_login": "Erreur de connexion, vérifiez l'url du serveur, l'email et le mot de passe",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "E-mail",
|
||||||
"login_form_label_password": "Mot de passe",
|
"login_form_label_password": "Mot de passe",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Suivant",
|
||||||
"login_form_password_hint": "mot de passe",
|
"login_form_password_hint": "mot de passe",
|
||||||
"login_form_save_login": "Rester connecté",
|
"login_form_save_login": "Rester connecté",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Saisissez l'URL du serveur.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Impossible de se connecter au serveur.",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Photos avec mouvement",
|
||||||
"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",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Ajouter un partenaire",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Vos photos ne sont pas encore partagées avec un partenaire.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "Plus d'utilisateurs à ajouter",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Échec de l'ajout d'un partenaire",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Sélectionner un partenaire",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Partagé avec",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} ne pourra plus accéder à vos photos.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Arrêter de partager vos photos ?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Partenaire",
|
||||||
"permission_onboarding_continue_anyway": "Continue anyway",
|
"permission_onboarding_continue_anyway": "Continuer quand même",
|
||||||
"permission_onboarding_get_started": "Get started",
|
"permission_onboarding_get_started": "Commencer",
|
||||||
"permission_onboarding_go_to_settings": "Go to settings",
|
"permission_onboarding_go_to_settings": "Accéder aux paramètres",
|
||||||
"permission_onboarding_grant_permission": "Grant permission",
|
"permission_onboarding_grant_permission": "Accorder l'autorisation",
|
||||||
"permission_onboarding_log_out": "Log out",
|
"permission_onboarding_log_out": "Se déconnecter",
|
||||||
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_denied": "Permission refusée. Pour utiliser Immich, accordez lautorisation pour les photos et vidéos dans les Paramètres.",
|
||||||
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
"permission_onboarding_permission_granted": "Permission accordée ! Vous êtes prêts.",
|
||||||
"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_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 requires permission to view your photos and videos.",
|
"permission_onboarding_request": "Immich demande l'autorisation de visionner vos photos et vidéo",
|
||||||
"profile_drawer_app_logs": "Journaux",
|
"profile_drawer_app_logs": "Journaux",
|
||||||
"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_settings": "Paramètres",
|
"profile_drawer_settings": "Paramètres",
|
||||||
"profile_drawer_sign_out": "Se déconnecter",
|
"profile_drawer_sign_out": "Se déconnecter",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Récemment ajouté",
|
||||||
"search_bar_hint": "Rechercher vos photos",
|
"search_bar_hint": "Rechercher vos photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Catégories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favoris",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"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": "People",
|
"search_page_people": "Personnes",
|
||||||
"search_page_places": "Lieux",
|
"search_page_places": "Lieux",
|
||||||
"search_page_recently_added": "Recently added",
|
"search_page_recently_added": "Récemment ajouté",
|
||||||
"search_page_screenshots": "Screenshots",
|
"search_page_screenshots": "Captures d'écran",
|
||||||
"search_page_selfies": "Selfies",
|
"search_page_selfies": "Selfies",
|
||||||
"search_page_things": "Objets",
|
"search_page_things": "Objets",
|
||||||
"search_page_videos": "Videos",
|
"search_page_videos": "Vidéos",
|
||||||
"search_page_view_all_button": "View all",
|
"search_page_view_all_button": "Voir tout",
|
||||||
"search_page_your_activity": "Your activity",
|
"search_page_your_activity": "Votre activité",
|
||||||
"search_result_page_new_search_hint": "Nouvelle recherche",
|
"search_result_page_new_search_hint": "Nouvelle recherche",
|
||||||
"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_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:your-search-term",
|
"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",
|
||||||
@@ -255,7 +262,7 @@
|
|||||||
"setting_notifications_single_progress_title": "Afficher la progression du détail de la sauvegarde en arrière-plan",
|
"setting_notifications_single_progress_title": "Afficher la progression du détail de la sauvegarde en arrière-plan",
|
||||||
"setting_notifications_subtitle": "Ajustez vos préférences de notification",
|
"setting_notifications_subtitle": "Ajustez vos préférences de notification",
|
||||||
"setting_notifications_title": "Notifications",
|
"setting_notifications_title": "Notifications",
|
||||||
"setting_notifications_total_progress_subtitle": "Progrès global du transfert (effectué/total des éléments)",
|
"setting_notifications_total_progress_subtitle": "Progression globale du transfert (effectué/total des éléments)",
|
||||||
"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",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"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",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"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",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Helyi médiát még nem lehet a kedvencek közé tenni. Kihagyjuk.",
|
"home_page_favorite_err_local": "Helyi médiát még nem lehet a kedvencek közé tenni. Kihagyjuk.",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Letöltési Hiba",
|
"image_viewer_page_state_provider_download_error": "Letöltési Hiba",
|
||||||
"image_viewer_page_state_provider_download_success": "Letöltés Sikeres",
|
"image_viewer_page_state_provider_download_success": "Letöltés Sikeres",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API hiba. Kérljük, ellenőrid a szerver címét, majd próbáld újra.",
|
"login_form_api_exception": "API hiba. Kérljük, ellenőrid a szerver címét, majd próbáld újra.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Caricando informazioni sul file",
|
"backup_controller_page_uploading_file_info": "Caricando informazioni sul file",
|
||||||
"backup_err_only_album": "Non è possibile rimuovere l'unico album",
|
"backup_err_only_album": "Non è possibile rimuovere l'unico album",
|
||||||
"backup_info_card_assets": "oggetti ",
|
"backup_info_card_assets": "oggetti ",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Anteprime pagine librerie ({} assets)",
|
"cache_settings_album_thumbnails": "Anteprime pagine librerie ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Cancella cache",
|
"cache_settings_clear_cache_button": "Cancella cache",
|
||||||
"cache_settings_clear_cache_button_title": "Cancella la cache dell'app. Questo impatterà significativamente le prestazioni dell''app fino a quando la cache non sarà rigenerata.",
|
"cache_settings_clear_cache_button_title": "Cancella la cache dell'app. Questo impatterà significativamente le prestazioni dell''app fino a quando la cache non sarà rigenerata.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Costruendo il Timeline",
|
"home_page_building_timeline": "Costruendo il Timeline",
|
||||||
"home_page_favorite_err_local": "Non puoi aggiungere tra i preferiti le foto ancora non caricate",
|
"home_page_favorite_err_local": "Non puoi aggiungere tra i preferiti le foto ancora non caricate",
|
||||||
"home_page_first_time_notice": "Se è la prima volta che usi l'app, assicurati di scegliere gli album per avere il Timeline con immagini e video",
|
"home_page_first_time_notice": "Se è la prima volta che usi l'app, assicurati di scegliere gli album per avere il Timeline con immagini e video",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Errore nel Download",
|
"image_viewer_page_state_provider_download_error": "Errore nel Download",
|
||||||
"image_viewer_page_state_provider_download_success": "Download con successo",
|
"image_viewer_page_state_provider_download_success": "Download con successo",
|
||||||
"library_page_albums": "Album",
|
"library_page_albums": "Album",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Condividendo",
|
"library_page_sharing": "Condividendo",
|
||||||
"library_page_sort_created": "Creato il più recente",
|
"library_page_sort_created": "Creato il più recente",
|
||||||
"library_page_sort_title": "Titolo album",
|
"library_page_sort_title": "Titolo album",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API error, per favore ricontrolli URL del server e riprovi",
|
"login_form_api_exception": "API error, per favore ricontrolli URL del server e riprovi",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "tuaemail@email.com",
|
"login_form_email_hint": "tuaemail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Il caricamento a tre stage aumenterà le performance di caricamento ma anche il consumo di banda",
|
"theme_setting_three_stage_loading_subtitle": "Il caricamento a tre stage aumenterà le performance di caricamento ma anche il consumo di banda",
|
||||||
"theme_setting_three_stage_loading_title": "Abilita il caricamento a tre stage",
|
"theme_setting_three_stage_loading_title": "Abilita il caricamento a tre stage",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Presa visione",
|
"version_announcement_overlay_ack": "Presa visione",
|
||||||
"version_announcement_overlay_release_notes": "note di rilascio ",
|
"version_announcement_overlay_release_notes": "note di rilascio ",
|
||||||
"version_announcement_overlay_text_1": "Ciao, c'è una nuova versione di",
|
"version_announcement_overlay_text_1": "Ciao, c'è una nuova versione di",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "アップロード中のファイル",
|
"backup_controller_page_uploading_file_info": "アップロード中のファイル",
|
||||||
"backup_err_only_album": "最低1つのアルバムを選択してください",
|
"backup_err_only_album": "最低1つのアルバムを選択してください",
|
||||||
"backup_info_card_assets": "写真と動画",
|
"backup_info_card_assets": "写真と動画",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "ライブラリのサムネイル ({}枚)",
|
"cache_settings_album_thumbnails": "ライブラリのサムネイル ({}枚)",
|
||||||
"cache_settings_clear_cache_button": "キャッシュをクリア",
|
"cache_settings_clear_cache_button": "キャッシュをクリア",
|
||||||
"cache_settings_clear_cache_button_title": "キャッシュを削除(キャッシュ再生成までアプリのパフォーマンスが著しく低下)",
|
"cache_settings_clear_cache_button_title": "キャッシュを削除(キャッシュ再生成までアプリのパフォーマンスが著しく低下)",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "タイムライン構築中",
|
"home_page_building_timeline": "タイムライン構築中",
|
||||||
"home_page_favorite_err_local": "まだアップロードされてない項目はお気に入り登録できません",
|
"home_page_favorite_err_local": "まだアップロードされてない項目はお気に入り登録できません",
|
||||||
"home_page_first_time_notice": "はじめてアプリを使う場合、タイムラインに写真を表示するためにアルバムを選択してください",
|
"home_page_first_time_notice": "はじめてアプリを使う場合、タイムラインに写真を表示するためにアルバムを選択してください",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "ダウンロード失敗",
|
"image_viewer_page_state_provider_download_error": "ダウンロード失敗",
|
||||||
"image_viewer_page_state_provider_download_success": "ダウンロード成功",
|
"image_viewer_page_state_provider_download_success": "ダウンロード成功",
|
||||||
"library_page_albums": "アルバム",
|
"library_page_albums": "アルバム",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "共有中",
|
"library_page_sharing": "共有中",
|
||||||
"library_page_sort_created": "作成日時",
|
"library_page_sort_created": "作成日時",
|
||||||
"library_page_sort_title": "アルバム名",
|
"library_page_sort_title": "アルバム名",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "APIエラー。URLをチェックしてもう一度試してください",
|
"login_form_api_exception": "APIエラー。URLをチェックしてもう一度試してください",
|
||||||
"login_form_button_text": "ログイン",
|
"login_form_button_text": "ログイン",
|
||||||
"login_form_email_hint": "hoge@email.com",
|
"login_form_email_hint": "hoge@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "テーマ",
|
"theme_setting_theme_title": "テーマ",
|
||||||
"theme_setting_three_stage_loading_subtitle": "三段階読み込みを有効にするとパフォーマンスが改善する可能性がありますが、ネットワーク負荷が著しく増加します",
|
"theme_setting_three_stage_loading_subtitle": "三段階読み込みを有効にするとパフォーマンスが改善する可能性がありますが、ネットワーク負荷が著しく増加します",
|
||||||
"theme_setting_three_stage_loading_title": "三段階読み込みをオンにする",
|
"theme_setting_three_stage_loading_title": "三段階読み込みをオンにする",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "了解",
|
"version_announcement_overlay_ack": "了解",
|
||||||
"version_announcement_overlay_release_notes": "更新情報",
|
"version_announcement_overlay_release_notes": "更新情報",
|
||||||
"version_announcement_overlay_text_1": "こんにちは、またはこんばんは!新しい",
|
"version_announcement_overlay_text_1": "こんにちは、またはこんばんは!新しい",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "파일 정보 업로드 중",
|
"backup_controller_page_uploading_file_info": "파일 정보 업로드 중",
|
||||||
"backup_err_only_album": "유일한 앨범은 제거할 수 없습니다",
|
"backup_err_only_album": "유일한 앨범은 제거할 수 없습니다",
|
||||||
"backup_info_card_assets": "미디어",
|
"backup_info_card_assets": "미디어",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "라이브러리 페이지 썸네일 ({} 미디어)",
|
"cache_settings_album_thumbnails": "라이브러리 페이지 썸네일 ({} 미디어)",
|
||||||
"cache_settings_clear_cache_button": "캐시 지우기",
|
"cache_settings_clear_cache_button": "캐시 지우기",
|
||||||
"cache_settings_clear_cache_button_title": "앱의 캐시를 지웁니다. 이 작업은 캐시가 다시 빌드될 때까지 앱의 성능에 상당한 영향을 미칩니다.",
|
"cache_settings_clear_cache_button_title": "앱의 캐시를 지웁니다. 이 작업은 캐시가 다시 빌드될 때까지 앱의 성능에 상당한 영향을 미칩니다.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "타임라인 생성",
|
"home_page_building_timeline": "타임라인 생성",
|
||||||
"home_page_favorite_err_local": "미디어파일을 즐겨찾기에 추가할 수 없어, 건너뜁니다.",
|
"home_page_favorite_err_local": "미디어파일을 즐겨찾기에 추가할 수 없어, 건너뜁니다.",
|
||||||
"home_page_first_time_notice": "앱을 처음 사용하는 경우 타임라인이 앨범의 사진과 비디오를 채울 수 있도록 백업대상 앨범을 선택해야 합니다.",
|
"home_page_first_time_notice": "앱을 처음 사용하는 경우 타임라인이 앨범의 사진과 비디오를 채울 수 있도록 백업대상 앨범을 선택해야 합니다.",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "다운로드 에러",
|
"image_viewer_page_state_provider_download_error": "다운로드 에러",
|
||||||
"image_viewer_page_state_provider_download_success": "다운로드 완료",
|
"image_viewer_page_state_provider_download_success": "다운로드 완료",
|
||||||
"library_page_albums": "앨범",
|
"library_page_albums": "앨범",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "공유",
|
"library_page_sharing": "공유",
|
||||||
"library_page_sort_created": "최근생성일",
|
"library_page_sort_created": "최근생성일",
|
||||||
"library_page_sort_title": "앨범 제목",
|
"library_page_sort_title": "앨범 제목",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "로그인",
|
"login_form_button_text": "로그인",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "테마",
|
"theme_setting_theme_title": "테마",
|
||||||
"theme_setting_three_stage_loading_subtitle": "이 기능은 로딩 성능을 향상시킬 수 있지만 훨씬 더 많은 데이터를 사용합니다.",
|
"theme_setting_three_stage_loading_subtitle": "이 기능은 로딩 성능을 향상시킬 수 있지만 훨씬 더 많은 데이터를 사용합니다.",
|
||||||
"theme_setting_three_stage_loading_title": "3단계 로딩 활성화",
|
"theme_setting_three_stage_loading_title": "3단계 로딩 활성화",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "승인",
|
"version_announcement_overlay_ack": "승인",
|
||||||
"version_announcement_overlay_release_notes": "릴리스 정보",
|
"version_announcement_overlay_release_notes": "릴리스 정보",
|
||||||
"version_announcement_overlay_text_1": "안녕하세요!",
|
"version_announcement_overlay_text_1": "안녕하세요!",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Pievienots {album}",
|
"add_to_album_bottom_sheet_added": "Pievienots {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Jau pievienots {album}",
|
"add_to_album_bottom_sheet_already_exists": "Jau pievienots {album}",
|
||||||
"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_subtitle": "Dažās ierīcēs sīktēli no ierīcē esošajiem resursiem tiek ielādēti ļoti lēni. Aktivizējiet šo iestatījumu, lai tā vietā ielādētu attālus attēlus.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Dot priekšroku attāliem attēliem",
|
||||||
"advanced_settings_tile_subtitle": "Lietotāja papildu iestatījumi",
|
"advanced_settings_tile_subtitle": "Lietotāja papildu iestatījumi",
|
||||||
"advanced_settings_tile_title": "Papildu",
|
"advanced_settings_tile_title": "Papildu",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Iespējot papildu aktīvus problēmu novēršanai",
|
"advanced_settings_troubleshooting_subtitle": "Iespējot papildu aktīvus problēmu novēršanai",
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
"album_viewer_appbar_share_leave": "Pamest albumu",
|
"album_viewer_appbar_share_leave": "Pamest albumu",
|
||||||
"album_viewer_appbar_share_remove": "Noņemt no albuma",
|
"album_viewer_appbar_share_remove": "Noņemt no albuma",
|
||||||
"album_viewer_page_share_add_users": "Pievienot lietotājus",
|
"album_viewer_page_share_add_users": "Pievienot lietotājus",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Cilvēki",
|
||||||
"all_videos_page_title": "Videoklipi",
|
"all_videos_page_title": "Videoklipi",
|
||||||
"archive_page_no_archived_assets": "Nav atrasts neviens arhivēts aktīvs",
|
"archive_page_no_archived_assets": "Nav atrasts neviens arhivēts aktīvs",
|
||||||
"archive_page_title": "Arhīvs ({})",
|
"archive_page_title": "Arhīvs ({})",
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Faila informācijas augšupielāde",
|
"backup_controller_page_uploading_file_info": "Faila informācijas augšupielāde",
|
||||||
"backup_err_only_album": "Nevar noņemt vienīgo albumu",
|
"backup_err_only_album": "Nevar noņemt vienīgo albumu",
|
||||||
"backup_info_card_assets": "aktīvi",
|
"backup_info_card_assets": "aktīvi",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Bibliotēkas lapu sīktēli ({} aktīvi)",
|
"cache_settings_album_thumbnails": "Bibliotēkas lapu sīktēli ({} aktīvi)",
|
||||||
"cache_settings_clear_cache_button": "Iztīrīt kešatmiņu",
|
"cache_settings_clear_cache_button": "Iztīrīt kešatmiņu",
|
||||||
"cache_settings_clear_cache_button_title": "Iztīra aplikācijas kešatmiņu. Tas būtiski ietekmēs lietotnes veiktspēju, līdz kešatmiņa būs pārbūvēta.",
|
"cache_settings_clear_cache_button_title": "Iztīra aplikācijas kešatmiņu. Tas būtiski ietekmēs lietotnes veiktspēju, līdz kešatmiņa būs pārbūvēta.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Tiek izveidota laika skala",
|
"home_page_building_timeline": "Tiek izveidota laika skala",
|
||||||
"home_page_favorite_err_local": "Vēl nevar pievienot izlaisei vietējos aktīvus, notiek izlaišana",
|
"home_page_favorite_err_local": "Vēl nevar pievienot izlaisei vietējos aktīvus, notiek izlaišana",
|
||||||
"home_page_first_time_notice": "Ja šī ir pirmā reize, kad izmantojat aplikāciju, lūdzu, izvēlieties dublējuma albumu(s), lai laika skala varētu aizpildīt fotoattēlus un videoklipus albumā(os).",
|
"home_page_first_time_notice": "Ja šī ir pirmā reize, kad izmantojat aplikāciju, lūdzu, izvēlieties dublējuma albumu(s), lai laika skala varētu aizpildīt fotoattēlus un videoklipus albumā(os).",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Lejupielādes Kļūda",
|
"image_viewer_page_state_provider_download_error": "Lejupielādes Kļūda",
|
||||||
"image_viewer_page_state_provider_download_success": "Lejupielāde Izdevās",
|
"image_viewer_page_state_provider_download_success": "Lejupielāde Izdevās",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Kopīgošana",
|
"library_page_sharing": "Kopīgošana",
|
||||||
"library_page_sort_created": "Jaunākais izveidotais",
|
"library_page_sort_created": "Jaunākais izveidotais",
|
||||||
"library_page_sort_title": "Albuma virsraksts",
|
"library_page_sort_title": "Albuma virsraksts",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API izņēmums. Lūdzu, pārbaudiet servera URL un mēģiniet vēlreiz.",
|
"login_form_api_exception": "API izņēmums. Lūdzu, pārbaudiet servera URL un mēģiniet vēlreiz.",
|
||||||
"login_form_button_text": "Pieteikties",
|
"login_form_button_text": "Pieteikties",
|
||||||
"login_form_email_hint": "jūsuepasts@email.com",
|
"login_form_email_hint": "jūsuepasts@email.com",
|
||||||
@@ -194,15 +201,15 @@
|
|||||||
"notification_permission_list_tile_content": "Piešķirt atļauju, lai iespējotu paziņojumus.",
|
"notification_permission_list_tile_content": "Piešķirt atļauju, lai iespējotu paziņojumus.",
|
||||||
"notification_permission_list_tile_enable_button": "Iespējot Paziņojumus",
|
"notification_permission_list_tile_enable_button": "Iespējot Paziņojumus",
|
||||||
"notification_permission_list_tile_title": "Paziņojumu Atļaujas",
|
"notification_permission_list_tile_title": "Paziņojumu Atļaujas",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Pievienot partneri",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Jūsu fotogrāfijas pagaidām nav kopīgotas ar nevienu partneri.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "Nav vairs lietotāju, kurus var pievienot",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Neizdevās pievienot partneri",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Izvēlēties partneri",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Kopīgots uz",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} vairs nevarēs piekļūt jūsu fotoattēliem.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Beigt kopīgot jūsu fotogrāfijas?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Partneris",
|
||||||
"permission_onboarding_continue_anyway": "Tomēr turpināt",
|
"permission_onboarding_continue_anyway": "Tomēr turpināt",
|
||||||
"permission_onboarding_get_started": "Darba sākšana",
|
"permission_onboarding_get_started": "Darba sākšana",
|
||||||
"permission_onboarding_go_to_settings": "Doties uz iestatījumiem",
|
"permission_onboarding_go_to_settings": "Doties uz iestatījumiem",
|
||||||
@@ -223,7 +230,7 @@
|
|||||||
"search_page_motion_photos": "Kustību Fotoattēli",
|
"search_page_motion_photos": "Kustību Fotoattēli",
|
||||||
"search_page_no_objects": "Informācija par Objektiem nav pieejama",
|
"search_page_no_objects": "Informācija par Objektiem nav pieejama",
|
||||||
"search_page_no_places": "Nav pieejama Informācija par Vietām",
|
"search_page_no_places": "Nav pieejama Informācija par Vietām",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Cilvēki",
|
||||||
"search_page_places": "Vietas",
|
"search_page_places": "Vietas",
|
||||||
"search_page_recently_added": "Nesen Pievienotais",
|
"search_page_recently_added": "Nesen Pievienotais",
|
||||||
"search_page_screenshots": "Ekrānuzņēmumi",
|
"search_page_screenshots": "Ekrānuzņēmumi",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Dizains",
|
"theme_setting_theme_title": "Dizains",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trīspakāpju ielāde var palielināt ielādēšanas veiktspēju, bet izraisa ievērojami lielāku tīkla noslodzi",
|
"theme_setting_three_stage_loading_subtitle": "Trīspakāpju ielāde var palielināt ielādēšanas veiktspēju, bet izraisa ievērojami lielāku tīkla noslodzi",
|
||||||
"theme_setting_three_stage_loading_title": "Iespējot trīspakāpju ielādi",
|
"theme_setting_three_stage_loading_title": "Iespējot trīspakāpju ielādi",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Atzīt",
|
"version_announcement_overlay_ack": "Atzīt",
|
||||||
"version_announcement_overlay_release_notes": "informācija par laidienu",
|
"version_announcement_overlay_release_notes": "informācija par laidienu",
|
||||||
"version_announcement_overlay_text_1": "Sveiks draugs, ir jauns izlaidums no",
|
"version_announcement_overlay_text_1": "Sveiks draugs, ir jauns izlaidums no",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Lagt til i {album}",
|
"add_to_album_bottom_sheet_added": "Lagt til i {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
||||||
"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_subtitle": "Noen enheter er veldige trege til å hente mikrobilder fra enheten. Aktiver denne innstillingen for å hente de eksternt istedenfor.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Foretrekk eksterne bilder",
|
||||||
"advanced_settings_tile_subtitle": "Avanserte brukerinnstillinger",
|
"advanced_settings_tile_subtitle": "Avanserte brukerinnstillinger",
|
||||||
"advanced_settings_tile_title": "Avansert",
|
"advanced_settings_tile_title": "Avansert",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Aktiver ekstra funksjoner for feilsøking",
|
"advanced_settings_troubleshooting_subtitle": "Aktiver ekstra funksjoner for feilsøking",
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
"album_viewer_appbar_share_leave": "Forlat album",
|
"album_viewer_appbar_share_leave": "Forlat album",
|
||||||
"album_viewer_appbar_share_remove": "Fjern fra album",
|
"album_viewer_appbar_share_remove": "Fjern fra album",
|
||||||
"album_viewer_page_share_add_users": "Legg til brukere",
|
"album_viewer_page_share_add_users": "Legg til brukere",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Folk",
|
||||||
"all_videos_page_title": "Videoer",
|
"all_videos_page_title": "Videoer",
|
||||||
"archive_page_no_archived_assets": "Ingen arkiverte objekter funnet",
|
"archive_page_no_archived_assets": "Ingen arkiverte objekter funnet",
|
||||||
"archive_page_title": "Arkiv ({})",
|
"archive_page_title": "Arkiv ({})",
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Laster opp filinformasjon",
|
"backup_controller_page_uploading_file_info": "Laster opp filinformasjon",
|
||||||
"backup_err_only_album": "Kan ikke fjerne det eneste albumet",
|
"backup_err_only_album": "Kan ikke fjerne det eneste albumet",
|
||||||
"backup_info_card_assets": "objekter",
|
"backup_info_card_assets": "objekter",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Feilet",
|
||||||
|
"backup_manual_in_progress": "Opplasting er allerede i gang. Prøv igjen om litt",
|
||||||
|
"backup_manual_success": "Vellykket",
|
||||||
|
"backup_manual_title": "Opplastingsstatus",
|
||||||
"cache_settings_album_thumbnails": "Bibliotekminiatyrbilder ({} objekter)",
|
"cache_settings_album_thumbnails": "Bibliotekminiatyrbilder ({} objekter)",
|
||||||
"cache_settings_clear_cache_button": "Tøm buffer",
|
"cache_settings_clear_cache_button": "Tøm buffer",
|
||||||
"cache_settings_clear_cache_button_title": "Tømmer app-ens buffer. Dette vil ha betydelig innvirkning på appens ytelse inntil bufferen er gjenoppbygd.",
|
"cache_settings_clear_cache_button_title": "Tømmer app-ens buffer. Dette vil ha betydelig innvirkning på appens ytelse inntil bufferen er gjenoppbygd.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Genererer tidslinjen",
|
"home_page_building_timeline": "Genererer tidslinjen",
|
||||||
"home_page_favorite_err_local": "Kan ikke sette favoritt på lokale objekter enda, hopper over",
|
"home_page_favorite_err_local": "Kan ikke sette favoritt på lokale objekter enda, hopper over",
|
||||||
"home_page_first_time_notice": "Hvis dette er første gangen du benytter appen, velg et album (eller flere) for sikkerhetskopiering, slik at tidslinjen kan fylles med dine bilder og videoer.",
|
"home_page_first_time_notice": "Hvis dette er første gangen du benytter appen, velg et album (eller flere) for sikkerhetskopiering, slik at tidslinjen kan fylles med dine bilder og videoer.",
|
||||||
|
"home_page_upload_err_limit": "Maksimalt 30 objekter kan lastes opp om gangen, hopper over",
|
||||||
"image_viewer_page_state_provider_download_error": "Nedlasting feilet",
|
"image_viewer_page_state_provider_download_error": "Nedlasting feilet",
|
||||||
"image_viewer_page_state_provider_download_success": "Nedlasting vellykket",
|
"image_viewer_page_state_provider_download_success": "Nedlasting vellykket",
|
||||||
"library_page_albums": "Albumer",
|
"library_page_albums": "Albumer",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Deling",
|
"library_page_sharing": "Deling",
|
||||||
"library_page_sort_created": "Nylig opplastet",
|
"library_page_sort_created": "Nylig opplastet",
|
||||||
"library_page_sort_title": "Albumtittel",
|
"library_page_sort_title": "Albumtittel",
|
||||||
|
"login_disabled": "Innlogging har blitt deaktivert",
|
||||||
"login_form_api_exception": "API-feil. Sjekk URL-en til serveren og prøv igjen.",
|
"login_form_api_exception": "API-feil. Sjekk URL-en til serveren og prøv igjen.",
|
||||||
"login_form_button_text": "Logg inn",
|
"login_form_button_text": "Logg inn",
|
||||||
"login_form_email_hint": "dinepost@epost.no",
|
"login_form_email_hint": "dinepost@epost.no",
|
||||||
@@ -194,14 +201,14 @@
|
|||||||
"notification_permission_list_tile_content": "Gi tilgang for å aktivere notifikasjoner",
|
"notification_permission_list_tile_content": "Gi tilgang for å aktivere notifikasjoner",
|
||||||
"notification_permission_list_tile_enable_button": "Aktiver notifikasjoner",
|
"notification_permission_list_tile_enable_button": "Aktiver notifikasjoner",
|
||||||
"notification_permission_list_tile_title": "Notifikasjonstilgang",
|
"notification_permission_list_tile_title": "Notifikasjonstilgang",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Legg til partner",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Dine bilder deles ikke med noen partner.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "Ingen flere brukere å legge til",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Klarte ikke å legge til partner",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Velg partner",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Delt med",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} vil ikke lenger ha tilgang til dine bilder.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Stopp deling av bildene dine?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Partner",
|
||||||
"permission_onboarding_continue_anyway": "Fortsett uansett",
|
"permission_onboarding_continue_anyway": "Fortsett uansett",
|
||||||
"permission_onboarding_get_started": "Kom i gang",
|
"permission_onboarding_get_started": "Kom i gang",
|
||||||
@@ -223,7 +230,7 @@
|
|||||||
"search_page_motion_photos": "Bevegelige bilder",
|
"search_page_motion_photos": "Bevegelige bilder",
|
||||||
"search_page_no_objects": "Ingen objektinfo tilgjengelig",
|
"search_page_no_objects": "Ingen objektinfo tilgjengelig",
|
||||||
"search_page_no_places": "Ingen stedsinformasjon er tilgjengelig",
|
"search_page_no_places": "Ingen stedsinformasjon er tilgjengelig",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Folk",
|
||||||
"search_page_places": "Steder",
|
"search_page_places": "Steder",
|
||||||
"search_page_recently_added": "Nylig lagt til",
|
"search_page_recently_added": "Nylig lagt til",
|
||||||
"search_page_screenshots": "Skjermbilder",
|
"search_page_screenshots": "Skjermbilder",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Tre-trinns innlasting kan øke lasteytelsen, men forårsaker betydelig høyere nettverksbelastning",
|
"theme_setting_three_stage_loading_subtitle": "Tre-trinns innlasting kan øke lasteytelsen, men forårsaker betydelig høyere nettverksbelastning",
|
||||||
"theme_setting_three_stage_loading_title": "Aktiver tre-trinns innlasting",
|
"theme_setting_three_stage_loading_title": "Aktiver tre-trinns innlasting",
|
||||||
|
"upload_dialog_cancel": "Avbryt",
|
||||||
|
"upload_dialog_info": "Vil du utføre backup av valgte objekt(er) til serveren?",
|
||||||
|
"upload_dialog_ok": "Last opp",
|
||||||
|
"upload_dialog_title": "Last opp objekt",
|
||||||
"version_announcement_overlay_ack": "Bekreft",
|
"version_announcement_overlay_ack": "Bekreft",
|
||||||
"version_announcement_overlay_release_notes": "endringsloggen",
|
"version_announcement_overlay_release_notes": "endringsloggen",
|
||||||
"version_announcement_overlay_text_1": "Hei, det er en ny versjon av",
|
"version_announcement_overlay_text_1": "Hei, det er en ny versjon av",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Bestandsgegevens uploaden",
|
"backup_controller_page_uploading_file_info": "Bestandsgegevens uploaden",
|
||||||
"backup_err_only_album": "Kan het enige album niet verwijderen",
|
"backup_err_only_album": "Kan het enige album niet verwijderen",
|
||||||
"backup_info_card_assets": "items",
|
"backup_info_card_assets": "items",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Thumbnails bibliotheekpagina ({} items)",
|
"cache_settings_album_thumbnails": "Thumbnails bibliotheekpagina ({} items)",
|
||||||
"cache_settings_clear_cache_button": "Cache wissen",
|
"cache_settings_clear_cache_button": "Cache wissen",
|
||||||
"cache_settings_clear_cache_button_title": "Wist de cache van de app. Dit zal de presentaties van de app aanzienlijk beïnvloeden totdat de cache opnieuw is opgebouwd.",
|
"cache_settings_clear_cache_button_title": "Wist de cache van de app. Dit zal de presentaties van de app aanzienlijk beïnvloeden totdat de cache opnieuw is opgebouwd.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Tijdlijn opbouwen",
|
"home_page_building_timeline": "Tijdlijn opbouwen",
|
||||||
"home_page_favorite_err_local": "Lokale items kunnen nog niet als favoriet worden aangemerkt, overslaan",
|
"home_page_favorite_err_local": "Lokale items kunnen nog niet als favoriet worden aangemerkt, overslaan",
|
||||||
"home_page_first_time_notice": "Als dit de eerste keer is dat je de app gebruikt, zorg er dan voor dat je een back-up album kiest, zodat de tijdlijn gevuld kan worden met foto's en video's uit het album.",
|
"home_page_first_time_notice": "Als dit de eerste keer is dat je de app gebruikt, zorg er dan voor dat je een back-up album kiest, zodat de tijdlijn gevuld kan worden met foto's en video's uit het album.",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download mislukt",
|
"image_viewer_page_state_provider_download_error": "Download mislukt",
|
||||||
"image_viewer_page_state_provider_download_success": "Download succesvol",
|
"image_viewer_page_state_provider_download_success": "Download succesvol",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Gedeeld",
|
"library_page_sharing": "Gedeeld",
|
||||||
"library_page_sort_created": "Meest recent gemaakt",
|
"library_page_sort_created": "Meest recent gemaakt",
|
||||||
"library_page_sort_title": "Albumtitel",
|
"library_page_sort_title": "Albumtitel",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API fout. Controleer de server URL en probeer opnieuw.",
|
"login_form_api_exception": "API fout. Controleer de server URL en probeer opnieuw.",
|
||||||
"login_form_button_text": "Inloggen",
|
"login_form_button_text": "Inloggen",
|
||||||
"login_form_email_hint": "jouwemail@email.com",
|
"login_form_email_hint": "jouwemail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Thema",
|
"theme_setting_theme_title": "Thema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Laden in drie fasen kan de laadprestaties verbeteren, maar veroorzaakt een aanzienlijk hogere netwerkbelasting",
|
"theme_setting_three_stage_loading_subtitle": "Laden in drie fasen kan de laadprestaties verbeteren, maar veroorzaakt een aanzienlijk hogere netwerkbelasting",
|
||||||
"theme_setting_three_stage_loading_title": "Laden in drie fasen inschakelen",
|
"theme_setting_three_stage_loading_title": "Laden in drie fasen inschakelen",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Bevestig",
|
"version_announcement_overlay_ack": "Bevestig",
|
||||||
"version_announcement_overlay_release_notes": "releaseopmerkingen",
|
"version_announcement_overlay_release_notes": "releaseopmerkingen",
|
||||||
"version_announcement_overlay_text_1": "Hoi, er is een nieuwe versie beschikbaar van",
|
"version_announcement_overlay_text_1": "Hoi, er is een nieuwe versie beschikbaar van",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Przesyłanie informacji o pliku",
|
"backup_controller_page_uploading_file_info": "Przesyłanie informacji o pliku",
|
||||||
"backup_err_only_album": "Nie można usunąć tylko i wyłącznie albumu",
|
"backup_err_only_album": "Nie można usunąć tylko i wyłącznie albumu",
|
||||||
"backup_info_card_assets": "zasoby",
|
"backup_info_card_assets": "zasoby",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Miniatury stron bibliotek ({} zasobów)",
|
"cache_settings_album_thumbnails": "Miniatury stron bibliotek ({} zasobów)",
|
||||||
"cache_settings_clear_cache_button": "Wyczyść Cache",
|
"cache_settings_clear_cache_button": "Wyczyść Cache",
|
||||||
"cache_settings_clear_cache_button_title": "Czyści pamięć podręczną aplikacji. Wpłynie to znacząco na wydajność aplikacji, dopóki pamięć podręczna nie zostanie odbudowana.",
|
"cache_settings_clear_cache_button_title": "Czyści pamięć podręczną aplikacji. Wpłynie to znacząco na wydajność aplikacji, dopóki pamięć podręczna nie zostanie odbudowana.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albumy",
|
"library_page_albums": "Albumy",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "twojmail@email.com",
|
"login_form_email_hint": "twojmail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Motyw",
|
"theme_setting_theme_title": "Motyw",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trójstopniowe ładowanie może zwiększyć wydajność ładowania, ale powoduje znacznie większe obciążenie sieci",
|
"theme_setting_three_stage_loading_subtitle": "Trójstopniowe ładowanie może zwiększyć wydajność ładowania, ale powoduje znacznie większe obciążenie sieci",
|
||||||
"theme_setting_three_stage_loading_title": "Włączenie trójstopniowego ładowania",
|
"theme_setting_three_stage_loading_title": "Włączenie trójstopniowego ładowania",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Potwierdzam",
|
"version_announcement_overlay_ack": "Potwierdzam",
|
||||||
"version_announcement_overlay_release_notes": "informacje o wydaniu",
|
"version_announcement_overlay_release_notes": "informacje o wydaniu",
|
||||||
"version_announcement_overlay_text_1": "Cześć przyjacielu, jest nowe wydanie",
|
"version_announcement_overlay_text_1": "Cześć przyjacielu, jest nowe wydanie",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Загрузка информации о файле",
|
"backup_controller_page_uploading_file_info": "Загрузка информации о файле",
|
||||||
"backup_err_only_album": "Невозможно удалить единственный альбом",
|
"backup_err_only_album": "Невозможно удалить единственный альбом",
|
||||||
"backup_info_card_assets": "объекты",
|
"backup_info_card_assets": "объекты",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Миниатюры страниц библиотеки ({} объектов)",
|
"cache_settings_album_thumbnails": "Миниатюры страниц библиотеки ({} объектов)",
|
||||||
"cache_settings_clear_cache_button": "Очистить кэш",
|
"cache_settings_clear_cache_button": "Очистить кэш",
|
||||||
"cache_settings_clear_cache_button_title": "Очищает кэш приложения. Это значительно повлияет на производительность приложения, до тех пор, пока кэш не будет перестроен заново.",
|
"cache_settings_clear_cache_button_title": "Очищает кэш приложения. Это значительно повлияет на производительность приложения, до тех пор, пока кэш не будет перестроен заново.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Построение временной шкалы",
|
"home_page_building_timeline": "Построение временной шкалы",
|
||||||
"home_page_favorite_err_local": "Пока не удается добавить в избранное локальные объекты, пропускаем",
|
"home_page_favorite_err_local": "Пока не удается добавить в избранное локальные объекты, пропускаем",
|
||||||
"home_page_first_time_notice": "Если вы используете приложение впервые, убедитесь, что вы выбрали резервный(е) альбом(ы), чтобы временная шкала могла заполнить фотографии и видео в альбоме(ах).",
|
"home_page_first_time_notice": "Если вы используете приложение впервые, убедитесь, что вы выбрали резервный(е) альбом(ы), чтобы временная шкала могла заполнить фотографии и видео в альбоме(ах).",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Ошибка загрузки",
|
"image_viewer_page_state_provider_download_error": "Ошибка загрузки",
|
||||||
"image_viewer_page_state_provider_download_success": "Успешно загружено",
|
"image_viewer_page_state_provider_download_success": "Успешно загружено",
|
||||||
"library_page_albums": "Альбомы",
|
"library_page_albums": "Альбомы",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Общие",
|
"library_page_sharing": "Общие",
|
||||||
"library_page_sort_created": "По новизне",
|
"library_page_sort_created": "По новизне",
|
||||||
"library_page_sort_title": "По названию альбома",
|
"library_page_sort_title": "По названию альбома",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Войти",
|
"login_form_button_text": "Войти",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Тема",
|
"theme_setting_theme_title": "Тема",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Трехэтапная загрузка может повысить производительность загрузки, но вызывает значительно более высокую нагрузку на сеть",
|
"theme_setting_three_stage_loading_subtitle": "Трехэтапная загрузка может повысить производительность загрузки, но вызывает значительно более высокую нагрузку на сеть",
|
||||||
"theme_setting_three_stage_loading_title": "Включить трехэтапную загрузку",
|
"theme_setting_three_stage_loading_title": "Включить трехэтапную загрузку",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Подтверждение",
|
"version_announcement_overlay_ack": "Подтверждение",
|
||||||
"version_announcement_overlay_release_notes": "примечания к выпуску",
|
"version_announcement_overlay_release_notes": "примечания к выпуску",
|
||||||
"version_announcement_overlay_text_1": "Привет друг, вышел новый релиз",
|
"version_announcement_overlay_text_1": "Привет друг, вышел новый релиз",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Pridané do {album}",
|
"add_to_album_bottom_sheet_added": "Pridané do {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Už v {album}",
|
"add_to_album_bottom_sheet_already_exists": "Už v {album}",
|
||||||
"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_subtitle": "Niektoré zariadenia sú extrémne pomalé pre načítavanie miniatúr z fotiek na zariadení. Povoľte toto nastavenie aby sa namiesto toho načítavali obrázky zo servera.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Preferovať vzdialené obrázky",
|
||||||
"advanced_settings_tile_subtitle": "Pokročilé nastavenia používateľa",
|
"advanced_settings_tile_subtitle": "Pokročilé nastavenia používateľa",
|
||||||
"advanced_settings_tile_title": "Pokročilé",
|
"advanced_settings_tile_title": "Pokročilé",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Povoliť ďalšie funkcie pre opravu chýb",
|
"advanced_settings_troubleshooting_subtitle": "Povoliť ďalšie funkcie pre opravu chýb",
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
"album_viewer_appbar_share_leave": "Opustiť album",
|
"album_viewer_appbar_share_leave": "Opustiť album",
|
||||||
"album_viewer_appbar_share_remove": "Odstrániť z albumu",
|
"album_viewer_appbar_share_remove": "Odstrániť z albumu",
|
||||||
"album_viewer_page_share_add_users": "Pridať používateľov",
|
"album_viewer_page_share_add_users": "Pridať používateľov",
|
||||||
"all_people_page_title": "People",
|
"all_people_page_title": "Ľudia",
|
||||||
"all_videos_page_title": "Videá",
|
"all_videos_page_title": "Videá",
|
||||||
"archive_page_no_archived_assets": "Žiadne archivované médiá",
|
"archive_page_no_archived_assets": "Žiadne archivované médiá",
|
||||||
"archive_page_title": "Archív ({})",
|
"archive_page_title": "Archív ({})",
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Nahrávaný súbor",
|
"backup_controller_page_uploading_file_info": "Nahrávaný súbor",
|
||||||
"backup_err_only_album": "Nie je možné odstrániť jediný vybraný album",
|
"backup_err_only_album": "Nie je možné odstrániť jediný vybraný album",
|
||||||
"backup_info_card_assets": "položiek",
|
"backup_info_card_assets": "položiek",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Náhľady stránok knižnice (položiek {})",
|
"cache_settings_album_thumbnails": "Náhľady stránok knižnice (položiek {})",
|
||||||
"cache_settings_clear_cache_button": "Vymazať vyrovnávaciu pamäť",
|
"cache_settings_clear_cache_button": "Vymazať vyrovnávaciu pamäť",
|
||||||
"cache_settings_clear_cache_button_title": "Vymaže vyrovnávaciu pamäť aplikácie. To výrazne ovplyvní výkon aplikácie, kým sa vyrovnávacia pamäť neobnoví.",
|
"cache_settings_clear_cache_button_title": "Vymaže vyrovnávaciu pamäť aplikácie. To výrazne ovplyvní výkon aplikácie, kým sa vyrovnávacia pamäť neobnoví.",
|
||||||
@@ -156,16 +161,18 @@
|
|||||||
"home_page_building_timeline": "Vytváranie časovej osi",
|
"home_page_building_timeline": "Vytváranie časovej osi",
|
||||||
"home_page_favorite_err_local": "Zatiaľ nie je možné zaradiť lokálne média medzi obľúbené, preskakuje sa",
|
"home_page_favorite_err_local": "Zatiaľ nie je možné zaradiť lokálne média medzi obľúbené, preskakuje sa",
|
||||||
"home_page_first_time_notice": "Ak aplikáciu používate prvý krát, nezabudnite si vybrať zálohované albumy, aby sa na časovej osi mohli nachádzať fotografie a videá z vybraných albumoch.",
|
"home_page_first_time_notice": "Ak aplikáciu používate prvý krát, nezabudnite si vybrať zálohované albumy, aby sa na časovej osi mohli nachádzať fotografie a videá z vybraných albumoch.",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Chyba sťahovania",
|
"image_viewer_page_state_provider_download_error": "Chyba sťahovania",
|
||||||
"image_viewer_page_state_provider_download_success": "Sťahovanie bolo úspešné",
|
"image_viewer_page_state_provider_download_success": "Sťahovanie bolo úspešné",
|
||||||
"library_page_albums": "Albumy",
|
"library_page_albums": "Albumy",
|
||||||
"library_page_archive": "Archivovať",
|
"library_page_archive": "Archív",
|
||||||
"library_page_device_albums": "Albumy v zariadení",
|
"library_page_device_albums": "Albumy v zariadení",
|
||||||
"library_page_favorites": "Obľúbené",
|
"library_page_favorites": "Obľúbené",
|
||||||
"library_page_new_album": "Nový album",
|
"library_page_new_album": "Nový album",
|
||||||
"library_page_sharing": "Zdieľanie",
|
"library_page_sharing": "Zdieľanie",
|
||||||
"library_page_sort_created": "Najnovšie vytvorené",
|
"library_page_sort_created": "Najnovšie vytvorené",
|
||||||
"library_page_sort_title": "Podľa názvu albumu",
|
"library_page_sort_title": "Podľa názvu albumu",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "Chyba API. Skontrolujte adresu URL servera a skúste to znova.",
|
"login_form_api_exception": "Chyba API. Skontrolujte adresu URL servera a skúste to znova.",
|
||||||
"login_form_button_text": "Prihlásiť sa",
|
"login_form_button_text": "Prihlásiť sa",
|
||||||
"login_form_email_hint": "tvojmail@email.com",
|
"login_form_email_hint": "tvojmail@email.com",
|
||||||
@@ -194,14 +201,14 @@
|
|||||||
"notification_permission_list_tile_content": "Udeľte oprávnenie k aktivácii oznámení.",
|
"notification_permission_list_tile_content": "Udeľte oprávnenie k aktivácii oznámení.",
|
||||||
"notification_permission_list_tile_enable_button": "Povoliť upozornenia",
|
"notification_permission_list_tile_enable_button": "Povoliť upozornenia",
|
||||||
"notification_permission_list_tile_title": "Povolenie oznámení",
|
"notification_permission_list_tile_title": "Povolenie oznámení",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Pridať partnera",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Vaše fotky zatiaľ nie sú zdieľané so žiadnym partnerom.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "Žiadni ďalší užívatelia na zdieľanie",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Pridávanie partnera zlyhalo",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Zvoliť partnera",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Zdieľané pre",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} už nebude mať prístup ku vašim fotkám.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Zastaviť zdieľanie vašich fotiek?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Partner",
|
||||||
"permission_onboarding_continue_anyway": "Pokračovať aj tak",
|
"permission_onboarding_continue_anyway": "Pokračovať aj tak",
|
||||||
"permission_onboarding_get_started": "Začať",
|
"permission_onboarding_get_started": "Začať",
|
||||||
@@ -223,7 +230,7 @@
|
|||||||
"search_page_motion_photos": "Pohyblivé fotky",
|
"search_page_motion_photos": "Pohyblivé fotky",
|
||||||
"search_page_no_objects": "Žiadne informácie o objektoch",
|
"search_page_no_objects": "Žiadne informácie o objektoch",
|
||||||
"search_page_no_places": "Žiadne informácie o mieste",
|
"search_page_no_places": "Žiadne informácie o mieste",
|
||||||
"search_page_people": "People",
|
"search_page_people": "Ľudia",
|
||||||
"search_page_places": "Miesta",
|
"search_page_places": "Miesta",
|
||||||
"search_page_recently_added": "Nedávno pridané",
|
"search_page_recently_added": "Nedávno pridané",
|
||||||
"search_page_screenshots": "Snímky obrazovky",
|
"search_page_screenshots": "Snímky obrazovky",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Téma",
|
"theme_setting_theme_title": "Téma",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trojstupňové načítanie môže zvýšiť výkonnosť načítania, ale vedie k výrazne vyššiemu zaťaženiu siete.",
|
"theme_setting_three_stage_loading_subtitle": "Trojstupňové načítanie môže zvýšiť výkonnosť načítania, ale vedie k výrazne vyššiemu zaťaženiu siete.",
|
||||||
"theme_setting_three_stage_loading_title": "Povolenie trojstupňového načítavania",
|
"theme_setting_three_stage_loading_title": "Povolenie trojstupňového načítavania",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Potvrdiť",
|
"version_announcement_overlay_ack": "Potvrdiť",
|
||||||
"version_announcement_overlay_release_notes": "poznámky k vydaniu",
|
"version_announcement_overlay_release_notes": "poznámky k vydaniu",
|
||||||
"version_announcement_overlay_text_1": "Ahoj, je tu nová verzia",
|
"version_announcement_overlay_text_1": "Ahoj, je tu nová verzia",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Otpremanje svojstava datoteke",
|
"backup_controller_page_uploading_file_info": "Otpremanje svojstava datoteke",
|
||||||
"backup_err_only_album": "Nemoguće brisanje jedinog albuma",
|
"backup_err_only_album": "Nemoguće brisanje jedinog albuma",
|
||||||
"backup_info_card_assets": "zapisi",
|
"backup_info_card_assets": "zapisi",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Sličice na stranici biblioteke",
|
"cache_settings_album_thumbnails": "Sličice na stranici biblioteke",
|
||||||
"cache_settings_clear_cache_button": "Obriši keš memoriju",
|
"cache_settings_clear_cache_button": "Obriši keš memoriju",
|
||||||
"cache_settings_clear_cache_button_title": "Ova opcija briše keš memoriju aplikacije. Ovo će bitno uticati na performanse aplikacije dok se keš memorija ne učita ponovo.",
|
"cache_settings_clear_cache_button_title": "Ova opcija briše keš memoriju aplikacije. Ovo će bitno uticati na performanse aplikacije dok se keš memorija ne učita ponovo.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Kreiranje hronološke linije",
|
"home_page_building_timeline": "Kreiranje hronološke linije",
|
||||||
"home_page_favorite_err_local": "Trenutno nije moguce dodati lokalne zapise u favorite, preskacu se",
|
"home_page_favorite_err_local": "Trenutno nije moguce dodati lokalne zapise u favorite, preskacu se",
|
||||||
"home_page_first_time_notice": "Ako je ovo prvi put da koristite aplikaciju, molimo Vas da odaberete albume koje želite da sačuvate",
|
"home_page_first_time_notice": "Ako je ovo prvi put da koristite aplikaciju, molimo Vas da odaberete albume koje želite da sačuvate",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Preuzimanje Neuspešno",
|
"image_viewer_page_state_provider_download_error": "Preuzimanje Neuspešno",
|
||||||
"image_viewer_page_state_provider_download_success": "Preuzimanje Uspešno",
|
"image_viewer_page_state_provider_download_success": "Preuzimanje Uspešno",
|
||||||
"library_page_albums": "Albumi",
|
"library_page_albums": "Albumi",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Deljenje",
|
"library_page_sharing": "Deljenje",
|
||||||
"library_page_sort_created": "Najnovije kreirano",
|
"library_page_sort_created": "Najnovije kreirano",
|
||||||
"library_page_sort_title": "Naziv albuma",
|
"library_page_sort_title": "Naziv albuma",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Prijavi se",
|
"login_form_button_text": "Prijavi se",
|
||||||
"login_form_email_hint": "vašemail@email.com",
|
"login_form_email_hint": "vašemail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Teme",
|
"theme_setting_theme_title": "Teme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trostepeno učitavanje možda ubrza učitavanje, po cenu potrošnje podataka",
|
"theme_setting_three_stage_loading_subtitle": "Trostepeno učitavanje možda ubrza učitavanje, po cenu potrošnje podataka",
|
||||||
"theme_setting_three_stage_loading_title": "Aktiviraj trostepeno učitavanje",
|
"theme_setting_three_stage_loading_title": "Aktiviraj trostepeno učitavanje",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Priznati",
|
"version_announcement_overlay_ack": "Priznati",
|
||||||
"version_announcement_overlay_release_notes": "novine nove verzije",
|
"version_announcement_overlay_release_notes": "novine nove verzije",
|
||||||
"version_announcement_overlay_text_1": "Ćao, nova verzija",
|
"version_announcement_overlay_text_1": "Ćao, nova verzija",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"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_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": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Avancerad",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
||||||
"album_info_card_backup_album_excluded": "EXKLUDERAD",
|
"album_info_card_backup_album_excluded": "EXKLUDERAD",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"all_people_page_title": "People",
|
"all_people_page_title": "People",
|
||||||
"all_videos_page_title": "Videos",
|
"all_videos_page_title": "Videos",
|
||||||
"archive_page_no_archived_assets": "No archived assets found",
|
"archive_page_no_archived_assets": "No archived assets found",
|
||||||
"archive_page_title": "Archive ({})",
|
"archive_page_title": "Arkivera ({})",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Dynamisk layout",
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamisk layout",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"asset_list_layout_settings_group_automatically": "Automatic",
|
||||||
"asset_list_layout_settings_group_by": "Gruppera bilder efter",
|
"asset_list_layout_settings_group_by": "Gruppera bilder efter",
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Laddar upp filinformation",
|
"backup_controller_page_uploading_file_info": "Laddar upp filinformation",
|
||||||
"backup_err_only_album": "Kan inte ta bort det enda albumet",
|
"backup_err_only_album": "Kan inte ta bort det enda albumet",
|
||||||
"backup_info_card_assets": "objekt",
|
"backup_info_card_assets": "objekt",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Miniatyrbilder för bibliotek ({} bilder och videor)",
|
"cache_settings_album_thumbnails": "Miniatyrbilder för bibliotek ({} bilder och videor)",
|
||||||
"cache_settings_clear_cache_button": "Rensa cacheminnet",
|
"cache_settings_clear_cache_button": "Rensa cacheminnet",
|
||||||
"cache_settings_clear_cache_button_title": "Rensar appens cacheminne. Detta kommer att avsevärt påverka appens prestanda tills cachen har byggts om.",
|
"cache_settings_clear_cache_button_title": "Rensar appens cacheminne. Detta kommer att avsevärt påverka appens prestanda tills cachen har byggts om.",
|
||||||
@@ -138,7 +143,7 @@
|
|||||||
"delete_dialog_cancel": "Avbryt",
|
"delete_dialog_cancel": "Avbryt",
|
||||||
"delete_dialog_ok": "Radera",
|
"delete_dialog_ok": "Radera",
|
||||||
"delete_dialog_title": "Radera permanent",
|
"delete_dialog_title": "Radera permanent",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Lägg till beskrivning...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Lägg till beskrivning...",
|
"exif_bottom_sheet_description": "Lägg till beskrivning...",
|
||||||
"exif_bottom_sheet_details": "DETALJER",
|
"exif_bottom_sheet_details": "DETALJER",
|
||||||
@@ -156,16 +161,18 @@
|
|||||||
"home_page_building_timeline": "Bygger tidslinjen",
|
"home_page_building_timeline": "Bygger tidslinjen",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"home_page_first_time_notice": "Om det här är första gången du använder appen, välj ett eller flera backup-album så att tidslinjen kan fyllas med foton och videor från albumen.",
|
"home_page_first_time_notice": "Om det här är första gången du använder appen, välj ett eller flera backup-album så att tidslinjen kan fyllas med foton och videor från albumen.",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Album",
|
"library_page_albums": "Album",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Arkiv",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
"library_page_favorites": "Favoriter",
|
"library_page_favorites": "Favoriter",
|
||||||
"library_page_new_album": "Nytt album",
|
"library_page_new_album": "Nytt album",
|
||||||
"library_page_sharing": "Delas",
|
"library_page_sharing": "Delas",
|
||||||
"library_page_sort_created": "Senast skapad",
|
"library_page_sort_created": "Senast skapad",
|
||||||
"library_page_sort_title": "Albumtitel",
|
"library_page_sort_title": "Albumtitel",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Logga in",
|
"login_form_button_text": "Logga in",
|
||||||
"login_form_email_hint": "din.email@email.com",
|
"login_form_email_hint": "din.email@email.com",
|
||||||
@@ -194,24 +201,24 @@
|
|||||||
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
||||||
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
||||||
"notification_permission_list_tile_title": "Notification Permission",
|
"notification_permission_list_tile_title": "Notification Permission",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Lägg till partner",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "No more users to add",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Failed to add partner",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Select partner",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Shared to",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Sluta dela dina foton?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Partner",
|
||||||
"permission_onboarding_continue_anyway": "Continue anyway",
|
"permission_onboarding_continue_anyway": "Continue anyway",
|
||||||
"permission_onboarding_get_started": "Get started",
|
"permission_onboarding_get_started": "Kom igång",
|
||||||
"permission_onboarding_go_to_settings": "Gå till inställningar",
|
"permission_onboarding_go_to_settings": "Gå till inställningar",
|
||||||
"permission_onboarding_grant_permission": "Grant permission",
|
"permission_onboarding_grant_permission": "Tillåt",
|
||||||
"permission_onboarding_log_out": "Logga ut",
|
"permission_onboarding_log_out": "Logga ut",
|
||||||
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
||||||
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
||||||
"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_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 requires permission to view your photos and videos.",
|
"permission_onboarding_request": "Immich kräver tillstånd för att se dina foton och videor.",
|
||||||
"profile_drawer_app_logs": "Loggar",
|
"profile_drawer_app_logs": "Loggar",
|
||||||
"profile_drawer_client_server_up_to_date": "Klient och server är uppdaterade",
|
"profile_drawer_client_server_up_to_date": "Klient och server är uppdaterade",
|
||||||
"profile_drawer_settings": "Inställningar",
|
"profile_drawer_settings": "Inställningar",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trestegsladdning kan öka prestandan, men kan också leda till signifikant högre nätverksbelastning",
|
"theme_setting_three_stage_loading_subtitle": "Trestegsladdning kan öka prestandan, men kan också leda till signifikant högre nätverksbelastning",
|
||||||
"theme_setting_three_stage_loading_title": "Aktivera trestegsladdning",
|
"theme_setting_three_stage_loading_title": "Aktivera trestegsladdning",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Bekräfta",
|
"version_announcement_overlay_ack": "Bekräfta",
|
||||||
"version_announcement_overlay_release_notes": "versionsinformation",
|
"version_announcement_overlay_release_notes": "versionsinformation",
|
||||||
"version_announcement_overlay_text_1": "Hej vännen, det finns en ny version av",
|
"version_announcement_overlay_text_1": "Hej vännen, det finns en ny version av",
|
||||||
|
|||||||
@@ -1,199 +1,206 @@
|
|||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "เพิ่มไปยัง {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "อยู่ใน {album} อยู่แล้ว",
|
||||||
"advanced_settings_prefer_remote_subtitle": "อุปกรณ์บางเครื่องโหลด thumbnails ช้ามาก เปิดการตั้งค่านี้เพื่อโหลดรูปภาพรีโมทแทน",
|
"advanced_settings_prefer_remote_subtitle": "อุปกรณ์บางเครื่องโหลดภาพขนาดย่อช้ามาก เปิดการตั้งค่านี้เพื่อโหลดรูปภาพจากรีโมทแทน",
|
||||||
"advanced_settings_prefer_remote_title": "ให้ความสำคัญกับรูปภาพรีโมท",
|
"advanced_settings_prefer_remote_title": "ให้ความสำคัญกับรูปภาพรีโมท",
|
||||||
"advanced_settings_tile_subtitle": "ตั้งค่าผู้ใช้งานขั้นสูง",
|
"advanced_settings_tile_subtitle": "ตั้งค่าผู้ใช้งานขั้นสูง",
|
||||||
"advanced_settings_tile_title": "ขั้งสูง",
|
"advanced_settings_tile_title": "ขั้นสูง",
|
||||||
"advanced_settings_troubleshooting_subtitle": "เปิดฟีเจอร์เพิ่มเติมเพื่อแก้ไขปัญหา",
|
"advanced_settings_troubleshooting_subtitle": "เปิดฟีเจอร์เพิ่มเติมเพื่อแก้ไขปัญหา",
|
||||||
"advanced_settings_troubleshooting_title": "แก้ไขปัญหา",
|
"advanced_settings_troubleshooting_title": "แก้ไขปัญหา",
|
||||||
"album_info_card_backup_album_excluded": "EXCLUDED",
|
"album_info_card_backup_album_excluded": "ถูกยกเว้น",
|
||||||
"album_info_card_backup_album_included": "INCLUDED",
|
"album_info_card_backup_album_included": "รวม",
|
||||||
"album_thumbnail_card_item": "1 item",
|
"album_thumbnail_card_item": "1 item",
|
||||||
"album_thumbnail_card_items": "{} items",
|
"album_thumbnail_card_items": "{} items",
|
||||||
"album_thumbnail_card_shared": " · Shared",
|
"album_thumbnail_card_shared": " · Shared",
|
||||||
"album_thumbnail_owned": "เป็นเจ้าของ",
|
"album_thumbnail_owned": "เป็นเจ้าของ",
|
||||||
"album_thumbnail_shared_by": "แชร์โดย {}",
|
"album_thumbnail_shared_by": "แชร์โดย {}",
|
||||||
"album_viewer_appbar_share_delete": "Delete album",
|
"album_viewer_appbar_share_delete": "ลบอั้ลบั้ม",
|
||||||
"album_viewer_appbar_share_err_delete": "Failed to delete album",
|
"album_viewer_appbar_share_err_delete": "ลบอัลบั้มไม่สำเร็จ",
|
||||||
"album_viewer_appbar_share_err_leave": "Failed to leave album",
|
"album_viewer_appbar_share_err_leave": "ออกจากอัลบั้มไม่สำเร็จ",
|
||||||
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album",
|
"album_viewer_appbar_share_err_remove": "มีปัญหาในการนำทรัพยากรออกจากอัลบั้ม",
|
||||||
"album_viewer_appbar_share_err_title": "Failed to change album title",
|
"album_viewer_appbar_share_err_title": "เปลี่ยนชื่ออัลบั้มไม่สำเร็จ",
|
||||||
"album_viewer_appbar_share_leave": "Leave album",
|
"album_viewer_appbar_share_leave": "ออกจากอัลบั้ม",
|
||||||
"album_viewer_appbar_share_remove": "Remove from album",
|
"album_viewer_appbar_share_remove": "ลบออกจากอัลบั้ม",
|
||||||
"album_viewer_page_share_add_users": "Add users",
|
"album_viewer_page_share_add_users": "เพิ่มผู้ใช้งาน",
|
||||||
"all_people_page_title": "ผู้คน",
|
"all_people_page_title": "ผู้คน",
|
||||||
"all_videos_page_title": "วิดีโอ",
|
"all_videos_page_title": "วิดีโอ",
|
||||||
"archive_page_no_archived_assets": "ไม่พบทรัพยากรในที่เก็บถาวร",
|
"archive_page_no_archived_assets": "ไม่พบทรัพยากรในที่เก็บถาวร",
|
||||||
"archive_page_title": "เก็บถาวร ({})",
|
"archive_page_title": "เก็บถาวร ({})",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
"asset_list_layout_settings_dynamic_layout_title": "แผนผังปรับตัว",
|
||||||
"asset_list_layout_settings_group_automatically": "อัตโนมัติ",
|
"asset_list_layout_settings_group_automatically": "อัตโนมัติ",
|
||||||
"asset_list_layout_settings_group_by": "Group assets by",
|
"asset_list_layout_settings_group_by": "จัดกลุ่มทรัพยากรโดย",
|
||||||
"asset_list_layout_settings_group_by_month": "Month",
|
"asset_list_layout_settings_group_by_month": "เดือน",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
"asset_list_layout_settings_group_by_month_day": "เดือน + วัน",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "อัลบั้มบนเครื่อง ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "กดเพื่อรวม กดสองครั้งเพื่อยกเว้น",
|
||||||
"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_assets_scatter": "ทรัพยาการสามารถกระจายไปในหลายอัลบั้ม ดังนั้นอัลบั้มสามารถถูกรวมหรือยกเว้นในกระบวนการสำรองข้อมูล",
|
||||||
"backup_album_selection_page_select_albums": "Select albums",
|
"backup_album_selection_page_select_albums": "เลือกอัลบั้ม",
|
||||||
"backup_album_selection_page_selection_info": "Selection Info",
|
"backup_album_selection_page_selection_info": "ข้อมูลของที่เลือก",
|
||||||
"backup_album_selection_page_total_assets": "Total unique assets",
|
"backup_album_selection_page_total_assets": "ทรัพยากรทั้งหมด",
|
||||||
"backup_all": "All",
|
"backup_all": "ทั้งหมด",
|
||||||
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
"backup_background_service_backup_failed_message": "ไม่สามารถสำรองทรัพยากรได้ กำลังลองใหม่...",
|
||||||
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
"backup_background_service_connection_failed_message": "ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้ กำลังลองใหม่...",
|
||||||
"backup_background_service_current_upload_notification": "Uploading {}",
|
"backup_background_service_current_upload_notification": "กำลังอัพโหลด {}",
|
||||||
"backup_background_service_default_notification": "Checking for new assets…",
|
"backup_background_service_default_notification": "ตรวจสอบหาทรัพยากรใหม่...",
|
||||||
"backup_background_service_error_title": "Backup error",
|
"backup_background_service_error_title": "สำรองข้อมูลผิดพลาด",
|
||||||
"backup_background_service_in_progress_notification": "Backing up your assets…",
|
"backup_background_service_in_progress_notification": "กำลังสำรองทรัพยากรของคุณ...",
|
||||||
"backup_background_service_upload_failure_notification": "Failed to upload {}",
|
"backup_background_service_upload_failure_notification": "อัพโหลดล้มเหลว {}",
|
||||||
"backup_controller_page_albums": "Backup Albums",
|
"backup_controller_page_albums": "สำรองข้อมูลอัลบั้ม",
|
||||||
"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_content": "เปิดการดึงข้อมูลแอพอยู่เบื้องหลังโดยการไปที่ ตั้งค่า > ทั่วไป > ดึงข้อมูลแอปอยู่เบื้องหลัง เพื่อใช้การดึงข้อมูลในเบื้องหลัง",
|
||||||
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
"backup_controller_page_background_app_refresh_disabled_title": "การรีเฟรชแอพในฉากหลังปิด",
|
||||||
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
|
"backup_controller_page_background_app_refresh_enable_button_text": "ไปยังการตั้งค่า",
|
||||||
"backup_controller_page_background_battery_info_link": "Show me how",
|
"backup_controller_page_background_battery_info_link": "แสดงให้ฉันเห็น",
|
||||||
"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_message": "เพื่อประสบการณ์สำรองข้อมูลที่ดีที่สุด กรุณาปิดการตั้งค่าประสิทธิภาพแบตเตอรี่จำกัดกิจกรรมในเบื้องหลังสำหรับ Immich\n\nเนื่องจากการตั้งค่าดังกล่าวเฉพาะเจาะจงสำหรับโทรศัพท์แต่ละเครื่อง กรุณาค้นหาข้อมูลจากผู้ผลิตโทรศัพท์ของคุณ",
|
||||||
"backup_controller_page_background_battery_info_ok": "OK",
|
"backup_controller_page_background_battery_info_ok": "โอเค",
|
||||||
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
"backup_controller_page_background_battery_info_title": "ประสิทธิภาพแบตเตอรี่",
|
||||||
"backup_controller_page_background_charging": "Only while charging",
|
"backup_controller_page_background_charging": "ขณะชาร์จอย่างเดียว",
|
||||||
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
"backup_controller_page_background_configure_error": "ไม่สามารถติดตั้งบริการเบื้องหลัง",
|
||||||
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
"backup_controller_page_background_delay": "ล่าช้าการลำรองทรัพยากรใหม่: {}",
|
||||||
"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_description": "เปิดบริการเบื้องหลังเพื่อที่จะสำรองทรัพยากรใหม่โดยที่ไม่จำเป็นต้องเปิดแอป",
|
||||||
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
"backup_controller_page_background_is_off": "การสำรองข้อมูลอัตโนมัติปิดอยู่",
|
||||||
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
"backup_controller_page_background_is_on": "การสำรองข้อมูลอัตโนมัติเปิดอยู่",
|
||||||
"backup_controller_page_background_turn_off": "Turn off background service",
|
"backup_controller_page_background_turn_off": "ปิดบริการเบื้องหลัง",
|
||||||
"backup_controller_page_background_turn_on": "Turn on background service",
|
"backup_controller_page_background_turn_on": "เปิดบริการเบื้องหลัง",
|
||||||
"backup_controller_page_background_wifi": "Only on WiFi",
|
"backup_controller_page_background_wifi": "บน WiFi เท่านั้น",
|
||||||
"backup_controller_page_backup": "Backup",
|
"backup_controller_page_backup": "สำรองข้อมูล",
|
||||||
"backup_controller_page_backup_selected": "Selected: ",
|
"backup_controller_page_backup_selected": "ที่เลือก:",
|
||||||
"backup_controller_page_backup_sub": "Backed up photos and videos",
|
"backup_controller_page_backup_sub": "รูปภาพและวิดีโอที่สำรองแล้ว",
|
||||||
"backup_controller_page_cancel": "Cancel",
|
"backup_controller_page_cancel": "ยกเลิก",
|
||||||
"backup_controller_page_created": "Created on: {}",
|
"backup_controller_page_created": "Created on: {}",
|
||||||
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
"backup_controller_page_desc_backup": "เปิดการสำรองข้อมูลในฉากหน้าเพื่อที่จะอัพโหลดทรัพยากรใหม่ไปยังเซิร์ฟเวอร์เมื่อเปิดแอพ",
|
||||||
"backup_controller_page_excluded": "Excluded: ",
|
"backup_controller_page_excluded": "ถูกยกเว้น:",
|
||||||
"backup_controller_page_failed": "Failed ({})",
|
"backup_controller_page_failed": "Failed ({})",
|
||||||
"backup_controller_page_filename": "File name: {} [{}]",
|
"backup_controller_page_filename": "File name: {} [{}]",
|
||||||
"backup_controller_page_id": "ID: {}",
|
"backup_controller_page_id": "ID: {}",
|
||||||
"backup_controller_page_info": "Backup Information",
|
"backup_controller_page_info": "ข้อมูลเกี่ยวกับการสำรองข้อมูล",
|
||||||
"backup_controller_page_none_selected": "None selected",
|
"backup_controller_page_none_selected": "ไม่มีที่เลือก",
|
||||||
"backup_controller_page_remainder": "Remainder",
|
"backup_controller_page_remainder": "ที่เหลือ",
|
||||||
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection",
|
"backup_controller_page_remainder_sub": "รูปภาพและวิดีโอที่เลือกสำรองที่เหลือ",
|
||||||
"backup_controller_page_select": "Select",
|
"backup_controller_page_select": "เลือก",
|
||||||
"backup_controller_page_server_storage": "Server Storage",
|
"backup_controller_page_server_storage": "พื้นที่จัดเก็บเซิร์ฟเวอร์",
|
||||||
"backup_controller_page_start_backup": "Start Backup",
|
"backup_controller_page_start_backup": "เริ่มสำรองข้อมูล",
|
||||||
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
"backup_controller_page_status_off": "การสำรองข้อมูลในฉากหน้าปิดอยู่",
|
||||||
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
"backup_controller_page_status_on": "การสำรองข้อมูลในฉากหน้าเปิดอยู่",
|
||||||
"backup_controller_page_storage_format": "{} of {} used",
|
"backup_controller_page_storage_format": "{} จาก {} ถูกใช้งาน",
|
||||||
"backup_controller_page_to_backup": "Albums to be backup",
|
"backup_controller_page_to_backup": "อัลบั้มที่จะสำรองข้อมูล",
|
||||||
"backup_controller_page_total": "Total",
|
"backup_controller_page_total": "ทั้งหมด",
|
||||||
"backup_controller_page_total_sub": "All unique photos and videos from selected albums",
|
"backup_controller_page_total_sub": "รูปภาพและวิดีโอที่ไม่ซ้ำทั้งหมดจากอัลบั้มที่เลือก",
|
||||||
"backup_controller_page_turn_off": "Turn off foreground backup",
|
"backup_controller_page_turn_off": "ปิดการสำรองข้อมูลในฉากหน้า",
|
||||||
"backup_controller_page_turn_on": "Turn on foreground backup",
|
"backup_controller_page_turn_on": "เปิดการสำรองข้อมูลในฉากหน้า",
|
||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "ไม่สามารถนำอัลบั้มสุดท้ายออกได้",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "ทรัพยากร",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "ล้มเหลว",
|
||||||
|
"backup_manual_in_progress": "อัปโหลดกำลังดำเนินการอยู่ โปรดลองใหม่ในสักพัก",
|
||||||
|
"backup_manual_success": "สำเร็จ",
|
||||||
|
"backup_manual_title": "สถานะอัพโหลด",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "ล้างแคช",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
||||||
"cache_settings_statistics_album": "Library thumbnails",
|
"cache_settings_statistics_album": "รูปย่อไลบลารี่",
|
||||||
"cache_settings_statistics_assets": "{} assets ({})",
|
"cache_settings_statistics_assets": "{} assets ({})",
|
||||||
"cache_settings_statistics_full": "Full images",
|
"cache_settings_statistics_full": "รูปภาพเต็ม",
|
||||||
"cache_settings_statistics_shared": "Shared album thumbnails",
|
"cache_settings_statistics_shared": "Shared album thumbnails",
|
||||||
"cache_settings_statistics_thumbnail": "Thumbnails",
|
"cache_settings_statistics_thumbnail": "รูปย่อ",
|
||||||
"cache_settings_statistics_title": "Cache usage",
|
"cache_settings_statistics_title": "การใช้งานแคช",
|
||||||
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
"cache_settings_subtitle": "ควบคุมพฤติกรรมการแคชของแอปพลิเคชัน Immich",
|
||||||
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
"cache_settings_thumbnail_size": "ขนาดแคชรูปย่อ ({} ทรัพยากร)",
|
||||||
"cache_settings_title": "Caching Settings",
|
"cache_settings_title": "ตั้งค่าแคช",
|
||||||
"change_password_form_confirm_password": "Confirm Password",
|
"change_password_form_confirm_password": "ยืนยันรหัสผ่าน",
|
||||||
"change_password_form_description": "Hi {firstName} {lastName},\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_description": "สวัสดี {firstName} {lastName},\n\nครั้งนี้อาจจะเป็นครั้งแรกที่คุณเข้าสู่ระบบ หรือมีคำขอเพื่อที่จะเปลี่ยนรหัสผ่านของคุI กรุณาเพิ่มรหัสผ่านใหม่ข้างล่าง",
|
||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "รหัสผ่านใหม่",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "รหัสผ่านไม่ตรงกัน",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "กรอกรหัสผ่านใหม่",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "เพิ่มเข้าอัลบั้ม",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "เปลี่ยนรหัสผ่าน",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "สร้างอัลบั้มใหม่",
|
||||||
"common_server_error": "กรุณาตรวจสอบการเชื่อมต่ออินเทอร์เน็ต ให้แน่ใจว่าเซิร์ฟเวอร์สามารถเข้าถึงได้ และเวอร์ชั่นแอพและเซิร์ฟเวอร์เข้ากันได้",
|
"common_server_error": "กรุณาตรวจสอบการเชื่อมต่ออินเทอร์เน็ต ให้แน่ใจว่าเซิร์ฟเวอร์สามารถเข้าถึงได้ และเวอร์ชั่นแอพกับเซิร์ฟเวอร์เข้ากันได้",
|
||||||
"common_shared": "Shared",
|
"common_shared": "แชร์",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "เพิ่มลงอัลบั้ม",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} รายการ",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} รายการ · ถูกแชร์",
|
||||||
"control_bottom_app_bar_archive": "เก็บถาวร",
|
"control_bottom_app_bar_archive": "เก็บถาวร",
|
||||||
"control_bottom_app_bar_create_new_album": "Create new album",
|
"control_bottom_app_bar_create_new_album": "สร้างอัลบั้มใหม่",
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "ลบออก",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "รายการโปรด",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "แชร์",
|
||||||
"control_bottom_app_bar_unarchive": "นำออกจากที่เก็บถาวร",
|
"control_bottom_app_bar_unarchive": "นำออกจากที่เก็บถาวร",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "ไม่มีชื่อ",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Share",
|
"create_shared_album_page_share": "แชร์",
|
||||||
"create_shared_album_page_share_add_assets": "ADD ASSETS",
|
"create_shared_album_page_share_add_assets": "เพิ่มทรัพยากร",
|
||||||
"create_shared_album_page_share_select_photos": "Select Photos",
|
"create_shared_album_page_share_select_photos": "เลือกรูปภาพ",
|
||||||
"curated_location_page_title": "สถานที่",
|
"curated_location_page_title": "สถานที่",
|
||||||
"curated_object_page_title": "สิ่งของ",
|
"curated_object_page_title": "สิ่งของ",
|
||||||
"daily_title_text_date": "E, MMM dd",
|
"daily_title_text_date": "E dd MMM",
|
||||||
"daily_title_text_date_year": "E, MMM dd, 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": "These items will be permanently deleted from Immich and from your device",
|
"delete_dialog_alert": "รายการดังกล่าวจะถูกลบจาก Immich และเครื่องอย่างถาวร",
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "ยกเลิก",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "ลบออก",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "ลบถาวร",
|
||||||
"description_input_hint_text": "เพื่มรายละเอียด...",
|
"description_input_hint_text": "เพื่มรายละเอียด...",
|
||||||
"description_input_submit_error": "อัพเดตรายละเอียดผิดพลาด ตรวจสอบการบันทึกเพื่อรายละเอียดเพิ่มเติม",
|
"description_input_submit_error": "อัพเดตรายละเอียดผิดพลาด ตรวจสอบ log เพื่อรายละเอียดเพิ่มเติม",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "เพิ่มคำอธิบาย",
|
||||||
"exif_bottom_sheet_details": "DETAILS",
|
"exif_bottom_sheet_details": "รายละเอียด",
|
||||||
"exif_bottom_sheet_location": "LOCATION",
|
"exif_bottom_sheet_location": "ตำแหน่ง",
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "กำลังพัฒนา",
|
||||||
"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!",
|
||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "ทดลอง",
|
||||||
"favorites_page_no_favorites": "ไม่พบทรัพยากรในรายการโปรด",
|
"favorites_page_no_favorites": "ไม่พบทรัพยากรในรายการโปรด",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "รายการโปรด",
|
||||||
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
"home_page_add_to_album_conflicts": "เพิ่ม {added} ทรัพยากรเข้าอัลบั้ม {album}. {failed} ทรัพยากรอยู่ในอัลบั้มอยู่แล้ว",
|
||||||
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
"home_page_add_to_album_err_local": " ไม่สามารถเพิ่มทรัพยากรบนเครื่องเข้าอัลบั้ม กำลังข้าม",
|
||||||
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
||||||
"home_page_archive_err_local": "ไม่สามารถเก็บถาวรในขณะนี้ กำลังข้าม",
|
"home_page_archive_err_local": "ไม่สามารถเก็บถาวรในขณะนี้ กำลังข้าม",
|
||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "กำลังสร้าง timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": " ไม่สามารถตั้งทรัพยากรบนเครื่องเป็นรายการโปรด กำลังข้าม",
|
||||||
"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_first_time_notice": "ถ้าครั้งนี้เป็นครั้งแรกที่ใช้แอปนี้ กรุณาเลือกอัลบั้มที่จะสำรองข้อมูล ไทม์ไลน์จะได้เพิ่มรูปภาพและวิดีโอที่อยู่ในอัลบั้ม",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"home_page_upload_err_limit": "สามารถอัพโหลดได้มากสุดครั้งละ 30 ทรัพยากร กำลังข้าม",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_error": "ดาวน์โหลดผิดพลาด",
|
||||||
|
"image_viewer_page_state_provider_download_success": "ดาวน์โหลดสำเร็จ",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "เก็บถาวร",
|
"library_page_archive": "เก็บถาวร",
|
||||||
"library_page_device_albums": "อัลบั้มบนเครื่อง",
|
"library_page_device_albums": "อัลบั้มบนเครื่อง",
|
||||||
"library_page_favorites": "Favorites",
|
"library_page_favorites": "รายการโปรด",
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "อัลบั้มใหม่",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "การแชร์",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "สร้างล่าสุด",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "ชื่ออัลบั้ม",
|
||||||
|
"login_disabled": "ล็อกอินถูกปิด",
|
||||||
"login_form_api_exception": "ข้อผิดพลาด API กรุณาตรวจสอบ URL แล้วลองใหม่",
|
"login_form_api_exception": "ข้อผิดพลาด API กรุณาตรวจสอบ URL แล้วลองใหม่",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "เข้าสู่ระบบ",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "อีเมลคุณ@อีเมล.com",
|
||||||
"login_form_endpoint_hint": "http://your-server-ip:port/api",
|
"login_form_endpoint_hint": "http://ไอพีเชอร์ฟเวอร์คุณ:พอร์ต/api",
|
||||||
"login_form_endpoint_url": "Server Endpoint URL",
|
"login_form_endpoint_url": "URL ปลายทางของเซิร์ฟเวอร์",
|
||||||
"login_form_err_http": "Please specify http:// or https://",
|
"login_form_err_http": "โปรดระบุ http:// หรือ https://",
|
||||||
"login_form_err_invalid_email": "Invalid Email",
|
"login_form_err_invalid_email": "อีเมลไม่ถูกต้อง",
|
||||||
"login_form_err_invalid_url": "Invalid URL",
|
"login_form_err_invalid_url": "URL ไม่ถูกต้อง",
|
||||||
"login_form_err_leading_whitespace": "Leading whitespace",
|
"login_form_err_leading_whitespace": "เว้นว่างข้างหน้า",
|
||||||
"login_form_err_trailing_whitespace": "Trailing whitespace",
|
"login_form_err_trailing_whitespace": "เว้นว่างข้างหลัง",
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "เกิดข้อผิดพลาดในการล็อกอินผ่าน OAuth ตรวจสอบ URL เซิร์ฟเวอร์",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "ฟีเจอร์ OAuth ไม่สามารถใช้งานบนเซิร์ฟเวอร์นี้",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "เกิดข้อผิดพลาดในการล็อกอิน โปรดตรวจสอบ URL ของเซิร์ฟเวอร์ อีเมล และรหัสผ่าน",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "อีเมล",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "รหัสผ่าน",
|
||||||
"login_form_next_button": "ต่อไป",
|
"login_form_next_button": "ต่อไป",
|
||||||
"login_form_password_hint": "password",
|
"login_form_password_hint": "รหัสผ่าน",
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "อยู่ในระบบต่อไป",
|
||||||
"login_form_server_empty": "กรอก URL เซิร์ฟเวอร์",
|
"login_form_server_empty": "กรอก URL เซิร์ฟเวอร์",
|
||||||
"login_form_server_error": "ไม่สามารถติดต่อกับเซิร์ฟเวอร์",
|
"login_form_server_error": "ไม่สามารถติดต่อกับเซิร์ฟเวอร์",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "ภาพเคลื่อนไหว",
|
"motion_photos_page_title": "ภาพเคลื่อนไหว",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "ยกเลิก",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "เพื่อเปิดการแจ้งเตือน เข้าตั้งค่าแล้วกดอนุญาต",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "ตั้งค่า",
|
||||||
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
"notification_permission_list_tile_content": "อนุญาตการแจ้งเตือน",
|
||||||
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
"notification_permission_list_tile_enable_button": "เปิดการแจ้งเดือน",
|
||||||
"notification_permission_list_tile_title": "Notification Permission",
|
"notification_permission_list_tile_title": "สิทธิ์การแจ้งเตือน",
|
||||||
"partner_page_add_partner": "เพิ่มพันธมิตร",
|
"partner_page_add_partner": "เพิ่มพันธมิตร",
|
||||||
"partner_page_empty_message": "รูปภาพของคุณยังไม่ถูกแชร์กับพันธมิตร",
|
"partner_page_empty_message": "รูปภาพของคุณยังไม่ถูกแชร์กับพันธมิตร",
|
||||||
"partner_page_no_more_users": "ไม่มีผู้ใช้งานให้เพิ่ม",
|
"partner_page_no_more_users": "ไม่มีผู้ใช้งานให้เพิ่ม",
|
||||||
@@ -201,80 +208,80 @@
|
|||||||
"partner_page_select_partner": "เลือกพันธมิตร",
|
"partner_page_select_partner": "เลือกพันธมิตร",
|
||||||
"partner_page_shared_to_title": "แชร์กับ",
|
"partner_page_shared_to_title": "แชร์กับ",
|
||||||
"partner_page_stop_sharing_content": "{} จะไม่สามารถเข้าถึงรูปภาพของคุณ",
|
"partner_page_stop_sharing_content": "{} จะไม่สามารถเข้าถึงรูปภาพของคุณ",
|
||||||
"partner_page_stop_sharing_title": "หยุดแชร์รูปภาพหรือไม่?",
|
"partner_page_stop_sharing_title": "หยุดแชร์รูปภาพ?",
|
||||||
"partner_page_title": "พันธมิตร",
|
"partner_page_title": "พันธมิตร",
|
||||||
"permission_onboarding_continue_anyway": "ไปต่ออยู่ดี",
|
"permission_onboarding_continue_anyway": "ดำเนินการต่อ",
|
||||||
"permission_onboarding_get_started": "เริ่มต้น",
|
"permission_onboarding_get_started": "เริ่มต้น",
|
||||||
"permission_onboarding_go_to_settings": "ไปยังการตั้งค่า",
|
"permission_onboarding_go_to_settings": "ไปยังการตั้งค่า",
|
||||||
"permission_onboarding_grant_permission": "ใหิสิทธิ์",
|
"permission_onboarding_grant_permission": "ให้สิทธิ์",
|
||||||
"permission_onboarding_log_out": "ออกจากระบบ",
|
"permission_onboarding_log_out": "ออกจากระบบ",
|
||||||
"permission_onboarding_permission_denied": "ไม่อนุญาต ตั้งค่าสิทธิ์เข้าถึงรูปภาพและวิดีโอเพื่อใช้งาน Immich",
|
"permission_onboarding_permission_denied": "ไม่อนุญาต ตั้งค่าสิทธิ์เข้าถึงรูปภาพและวิดีโอเพื่อใช้งาน Immich",
|
||||||
"permission_onboarding_permission_granted": "ให้สิทธิ์สำเร็จ คุณพร้อมใช้งานแล้ว",
|
"permission_onboarding_permission_granted": "ให้สิทธิ์สำเร็จ คุณพร้อมใช้งานแล้ว",
|
||||||
"permission_onboarding_permission_limited": "สิทธ์จำกัด เพื่อให้ Immich สำรองข้อมูลและบริหารคลังรูปภาพได้ ตั้งค่าสิทธิเข้าถึงรูปภาพและวิดิโอ",
|
"permission_onboarding_permission_limited": "สิทธ์จำกัด เพื่อให้ Immich สำรองข้อมูลและบริหารคลังรูปภาพได้ ตั้งค่าสิทธิเข้าถึงรูปภาพและวิดีโอ",
|
||||||
"permission_onboarding_request": "Immich จำเป็นจะต้องได้รับสิทธิ์ดูรูปภาพและวิดีโอ",
|
"permission_onboarding_request": "Immich จำเป็นจะต้องได้รับสิทธิ์ดูรูปภาพและวิดีโอ",
|
||||||
"profile_drawer_app_logs": "Logs",
|
"profile_drawer_app_logs": "Log",
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "ไคลเอนต์และเซิร์ฟเวอร์เป็นปัจจุบัน",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "ออกจากระบบ",
|
||||||
"recently_added_page_title": "เพิ่มมาเร็วๆนี้",
|
"recently_added_page_title": "เพิ่มล่าสุด",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "ค้นหารูปภาพของคุณ",
|
||||||
"search_page_categories": "หมวดหมู่",
|
"search_page_categories": "หมวดหมู่",
|
||||||
"search_page_favorites": "รายการโปรด",
|
"search_page_favorites": "รายการโปรด",
|
||||||
"search_page_motion_photos": "ภาพเคลื่อนไหว",
|
"search_page_motion_photos": "ภาพเคลื่อนไหว",
|
||||||
"search_page_no_objects": "No Objects Info Available",
|
"search_page_no_objects": "No Objects Info Available",
|
||||||
"search_page_no_places": "No Places Info Available",
|
"search_page_no_places": "ไม่มีข้อมูลสถานที่",
|
||||||
"search_page_people": "ผู้คน",
|
"search_page_people": "ผู้คน",
|
||||||
"search_page_places": "Places",
|
"search_page_places": "สถานที่",
|
||||||
"search_page_recently_added": "เพิ่มมาเร็วๆนี้",
|
"search_page_recently_added": "เพิ่มล่าสุด",
|
||||||
"search_page_screenshots": "แคปหน้าจอ",
|
"search_page_screenshots": "แคปหน้าจอ",
|
||||||
"search_page_selfies": "เซลฟี่",
|
"search_page_selfies": "เซลฟี่",
|
||||||
"search_page_things": "Things",
|
"search_page_things": "สิ่งของ",
|
||||||
"search_page_videos": "วิดีโอ",
|
"search_page_videos": "วิดีโอ",
|
||||||
"search_page_view_all_button": "ดูทั้งหมด",
|
"search_page_view_all_button": "ดูทั้งหมด",
|
||||||
"search_page_your_activity": "กิจกรรมของคุณ",
|
"search_page_your_activity": "กิจกรรมของคุณ",
|
||||||
"search_result_page_new_search_hint": "New Search",
|
"search_result_page_new_search_hint": "ค้นหาใหม่",
|
||||||
"search_suggestion_list_smart_search_hint_1": "การค้นหาอัจฉริยะเปิดเป็นค่าเริ่มต้น เพื่อค้นหา metadata ให้ใช้ไวยากรณ์",
|
"search_suggestion_list_smart_search_hint_1": "การค้นหาอัจฉริยะเปิดเป็นค่าเริ่มต้น เพื่อค้นหา metadata ให้ใช้ไวยากรณ์",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:คำค้นหา",
|
"search_suggestion_list_smart_search_hint_2": "m:คำค้นหา",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Suggestions",
|
"select_additional_user_for_sharing_page_suggestions": "ข้อเสนอแนะ",
|
||||||
"select_user_for_sharing_page_err_album": "Failed to create album",
|
"select_user_for_sharing_page_err_album": "สร้างอัลบั้มล้มเหลว",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
||||||
"server_info_box_app_version": "App Version",
|
"server_info_box_app_version": "เวอร์ชั่นแอพ",
|
||||||
"server_info_box_server_version": "Server Version",
|
"server_info_box_server_version": "เวอร์ชั้นเซิร์ฟเวอร์",
|
||||||
"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_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": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
"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": "Load original image",
|
"setting_image_viewer_original_title": "โหลดรูปต้นฉบับ",
|
||||||
"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_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": "Load preview image",
|
"setting_image_viewer_preview_title": "โหลดรูปภาพตัวอย่าง",
|
||||||
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
"setting_notifications_notify_failures_grace_period": "แจ้งการสำรองข้อมูลในเบื้องหลังล้มเหลว: {}",
|
||||||
"setting_notifications_notify_hours": "{} hours",
|
"setting_notifications_notify_hours": "{} ชั่วโมง",
|
||||||
"setting_notifications_notify_immediately": "immediately",
|
"setting_notifications_notify_immediately": "immediately",
|
||||||
"setting_notifications_notify_minutes": "{} minutes",
|
"setting_notifications_notify_minutes": "{} นาที",
|
||||||
"setting_notifications_notify_never": "never",
|
"setting_notifications_notify_never": "ไม่เคย",
|
||||||
"setting_notifications_notify_seconds": "{} seconds",
|
"setting_notifications_notify_seconds": "{} วินาที",
|
||||||
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
||||||
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
"setting_notifications_single_progress_title": "แสดงรายละเอียดสถานะการสำรองข้อมูลในเบื้องหลัง",
|
||||||
"setting_notifications_subtitle": "Adjust your notification preferences",
|
"setting_notifications_subtitle": "Adjust your notification preferences",
|
||||||
"setting_notifications_title": "Notifications",
|
"setting_notifications_title": "Notifications",
|
||||||
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
||||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
"setting_notifications_total_progress_title": "แสดงสถานะการสำรองข้อมูลในเบื้องหลังทั้งหมด",
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
"setting_pages_app_bar_settings": "Settings",
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
"settings_require_restart": "กรุณารีสตาร์ท Immmich เพื่อใช้การตั้งค่า",
|
||||||
"share_add": "Add",
|
"share_add": "เพิ่ม",
|
||||||
"share_add_photos": "Add photos",
|
"share_add_photos": "เพิ่มรูปภาพ",
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "เพิ่มชื่อ",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "สร้างอัลบั้ม",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "กำลังเตรียม...",
|
||||||
"share_invite": "Invite to album",
|
"share_invite": "เชิญเข้าอัลบั้ม",
|
||||||
"sharing_page_album": "Shared albums",
|
"sharing_page_album": "อัลบั้มที่แชร์",
|
||||||
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
"sharing_page_description": "สร้างอัลบั้มที่แชร์เพื่อแชร์รูปภาพและวิดีโอให้กับคนบนเครื่อข่ายคุณ",
|
||||||
"sharing_page_empty_list": "EMPTY LIST",
|
"sharing_page_empty_list": "รายการว่างเปล่า",
|
||||||
"sharing_silver_appbar_create_shared_album": "Create shared album",
|
"sharing_silver_appbar_create_shared_album": "สร้างอัลบั้มแชร์",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"sharing_silver_appbar_share_partner": "แชร์กับพันธมิตร",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "รูปภาพ",
|
||||||
"tab_controller_nav_search": "Search",
|
"tab_controller_nav_search": "ค้นหา",
|
||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "แชร์",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "แสดงตัวพื้นที่จัดเก็บบนตารางทรัพยากร",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
@@ -284,10 +291,14 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "ยกเลิก",
|
||||||
|
"upload_dialog_info": "คุณต้องการอัพโหลดทรัพยากรดังกล่าวบนเซิร์ฟเวอร์หรือไม่?",
|
||||||
|
"upload_dialog_ok": "อัปโหลด",
|
||||||
|
"upload_dialog_title": "อัปโหลดทรัพยากร",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"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_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": "New Server Version Available \uD83C\uDF89"
|
"version_announcement_overlay_title": "มีเวอร์ชั่นใหม่สำหรับเซิร์ฟเวอร์ \uD83C\uDF89"
|
||||||
}
|
}
|
||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "Failed",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
"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_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"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_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_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"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_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"upload_dialog_cancel": "Cancel",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_ok": "Upload",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"version_announcement_overlay_ack": "Acknowledge",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "正在上传文件信息",
|
"backup_controller_page_uploading_file_info": "正在上传文件信息",
|
||||||
"backup_err_only_album": "不能移除唯一的一个相册",
|
"backup_err_only_album": "不能移除唯一的一个相册",
|
||||||
"backup_info_card_assets": "张",
|
"backup_info_card_assets": "张",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "失败",
|
||||||
|
"backup_manual_in_progress": "上传正在进行中,请稍后再试",
|
||||||
|
"backup_manual_success": "成功",
|
||||||
|
"backup_manual_title": "上传状态",
|
||||||
"cache_settings_album_thumbnails": "图库缩略图({} 张)",
|
"cache_settings_album_thumbnails": "图库缩略图({} 张)",
|
||||||
"cache_settings_clear_cache_button": "清除缓存",
|
"cache_settings_clear_cache_button": "清除缓存",
|
||||||
"cache_settings_clear_cache_button_title": "清除应用缓存。在重新生成缓存之前,将显著影响应用的性能。",
|
"cache_settings_clear_cache_button_title": "清除应用缓存。在重新生成缓存之前,将显著影响应用的性能。",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "正在生成时间线",
|
"home_page_building_timeline": "正在生成时间线",
|
||||||
"home_page_favorite_err_local": "暂不能收藏本地项目,跳过",
|
"home_page_favorite_err_local": "暂不能收藏本地项目,跳过",
|
||||||
"home_page_first_time_notice": "如果这是您第一次使用该应用程序,请确保选择一个要备份的本地相册,以便可以在时间线中预览该相册中的照片和视频。",
|
"home_page_first_time_notice": "如果这是您第一次使用该应用程序,请确保选择一个要备份的本地相册,以便可以在时间线中预览该相册中的照片和视频。",
|
||||||
|
"home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
|
||||||
"image_viewer_page_state_provider_download_error": "下载出现错误",
|
"image_viewer_page_state_provider_download_error": "下载出现错误",
|
||||||
"image_viewer_page_state_provider_download_success": "下载成功",
|
"image_viewer_page_state_provider_download_success": "下载成功",
|
||||||
"library_page_albums": "相册",
|
"library_page_albums": "相册",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "共享",
|
"library_page_sharing": "共享",
|
||||||
"library_page_sort_created": "最近创建的",
|
"library_page_sort_created": "最近创建的",
|
||||||
"library_page_sort_title": "相册标题",
|
"library_page_sort_title": "相册标题",
|
||||||
|
"login_disabled": "登录已被禁用",
|
||||||
"login_form_api_exception": "API 异常,请检查服务器地址并重试。",
|
"login_form_api_exception": "API 异常,请检查服务器地址并重试。",
|
||||||
"login_form_button_text": "登录",
|
"login_form_button_text": "登录",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "主题",
|
"theme_setting_theme_title": "主题",
|
||||||
"theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
|
"theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
|
||||||
"theme_setting_three_stage_loading_title": "启用三段式加载",
|
"theme_setting_three_stage_loading_title": "启用三段式加载",
|
||||||
|
"upload_dialog_cancel": "取消",
|
||||||
|
"upload_dialog_info": "是否要将所选项目备份到服务器?",
|
||||||
|
"upload_dialog_ok": "上传",
|
||||||
|
"upload_dialog_title": "上传项目",
|
||||||
"version_announcement_overlay_ack": "我知道了",
|
"version_announcement_overlay_ack": "我知道了",
|
||||||
"version_announcement_overlay_release_notes": "发行说明",
|
"version_announcement_overlay_release_notes": "发行说明",
|
||||||
"version_announcement_overlay_text_1": "号外号外,有新版本的",
|
"version_announcement_overlay_text_1": "号外号外,有新版本的",
|
||||||
|
|||||||
@@ -92,6 +92,11 @@
|
|||||||
"backup_controller_page_uploading_file_info": "正在上传文件信息",
|
"backup_controller_page_uploading_file_info": "正在上传文件信息",
|
||||||
"backup_err_only_album": "不能移除唯一的一个相册",
|
"backup_err_only_album": "不能移除唯一的一个相册",
|
||||||
"backup_info_card_assets": "张",
|
"backup_info_card_assets": "张",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_failed": "失败",
|
||||||
|
"backup_manual_in_progress": "上传正在进行中,请稍后再试",
|
||||||
|
"backup_manual_success": "成功",
|
||||||
|
"backup_manual_title": "上传状态",
|
||||||
"cache_settings_album_thumbnails": "图库缩略图({} 张)",
|
"cache_settings_album_thumbnails": "图库缩略图({} 张)",
|
||||||
"cache_settings_clear_cache_button": "清除缓存",
|
"cache_settings_clear_cache_button": "清除缓存",
|
||||||
"cache_settings_clear_cache_button_title": "清除应用缓存。在重新生成缓存之前,将显著影响应用的性能。",
|
"cache_settings_clear_cache_button_title": "清除应用缓存。在重新生成缓存之前,将显著影响应用的性能。",
|
||||||
@@ -156,6 +161,7 @@
|
|||||||
"home_page_building_timeline": "正在生成时间线",
|
"home_page_building_timeline": "正在生成时间线",
|
||||||
"home_page_favorite_err_local": "暂不能收藏本地项目,跳过",
|
"home_page_favorite_err_local": "暂不能收藏本地项目,跳过",
|
||||||
"home_page_first_time_notice": "如果这是您第一次使用该应用程序,请确保选择一个要备份的本地相册,以便可以在时间线中预览该相册中的照片和视频。",
|
"home_page_first_time_notice": "如果这是您第一次使用该应用程序,请确保选择一个要备份的本地相册,以便可以在时间线中预览该相册中的照片和视频。",
|
||||||
|
"home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
|
||||||
"image_viewer_page_state_provider_download_error": "下载出现错误",
|
"image_viewer_page_state_provider_download_error": "下载出现错误",
|
||||||
"image_viewer_page_state_provider_download_success": "下载成功",
|
"image_viewer_page_state_provider_download_success": "下载成功",
|
||||||
"library_page_albums": "相册",
|
"library_page_albums": "相册",
|
||||||
@@ -166,6 +172,7 @@
|
|||||||
"library_page_sharing": "共享",
|
"library_page_sharing": "共享",
|
||||||
"library_page_sort_created": "最近创建的",
|
"library_page_sort_created": "最近创建的",
|
||||||
"library_page_sort_title": "相册标题",
|
"library_page_sort_title": "相册标题",
|
||||||
|
"login_disabled": "登录已被禁用",
|
||||||
"login_form_api_exception": "API 异常,请检查服务器地址并重试。",
|
"login_form_api_exception": "API 异常,请检查服务器地址并重试。",
|
||||||
"login_form_button_text": "登录",
|
"login_form_button_text": "登录",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
@@ -284,6 +291,10 @@
|
|||||||
"theme_setting_theme_title": "主题",
|
"theme_setting_theme_title": "主题",
|
||||||
"theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
|
"theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
|
||||||
"theme_setting_three_stage_loading_title": "启用三段式加载",
|
"theme_setting_three_stage_loading_title": "启用三段式加载",
|
||||||
|
"upload_dialog_cancel": "取消",
|
||||||
|
"upload_dialog_info": "是否要将所选项目备份到服务器?",
|
||||||
|
"upload_dialog_ok": "上传",
|
||||||
|
"upload_dialog_title": "上传正在进行中,请稍后再试",
|
||||||
"version_announcement_overlay_ack": "我知道了",
|
"version_announcement_overlay_ack": "我知道了",
|
||||||
"version_announcement_overlay_release_notes": "发行说明",
|
"version_announcement_overlay_release_notes": "发行说明",
|
||||||
"version_announcement_overlay_text_1": "号外号外,有新版本的",
|
"version_announcement_overlay_text_1": "号外号外,有新版本的",
|
||||||
|
|||||||
4
mobile/ios/.gitignore
vendored
4
mobile/ios/.gitignore
vendored
@@ -31,4 +31,6 @@ Runner/GeneratedPluginRegistrant.*
|
|||||||
!default.mode1v3
|
!default.mode1v3
|
||||||
!default.mode2v3
|
!default.mode2v3
|
||||||
!default.pbxuser
|
!default.pbxuser
|
||||||
!default.perspectivev3
|
!default.perspectivev3
|
||||||
|
|
||||||
|
fastlane/report.xml
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ PODS:
|
|||||||
- device_info_plus (0.0.1):
|
- device_info_plus (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- Flutter (1.0.0)
|
- Flutter (1.0.0)
|
||||||
|
- flutter_local_notifications (0.0.1):
|
||||||
|
- Flutter
|
||||||
- flutter_native_splash (0.0.1):
|
- flutter_native_splash (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- flutter_udid (0.0.1):
|
- flutter_udid (0.0.1):
|
||||||
@@ -58,6 +60,7 @@ DEPENDENCIES:
|
|||||||
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
|
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
|
||||||
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
|
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
|
||||||
- Flutter (from `Flutter`)
|
- Flutter (from `Flutter`)
|
||||||
|
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
||||||
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
|
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
|
||||||
- flutter_udid (from `.symlinks/plugins/flutter_udid/ios`)
|
- flutter_udid (from `.symlinks/plugins/flutter_udid/ios`)
|
||||||
- flutter_web_auth (from `.symlinks/plugins/flutter_web_auth/ios`)
|
- flutter_web_auth (from `.symlinks/plugins/flutter_web_auth/ios`)
|
||||||
@@ -91,6 +94,8 @@ EXTERNAL SOURCES:
|
|||||||
:path: ".symlinks/plugins/device_info_plus/ios"
|
:path: ".symlinks/plugins/device_info_plus/ios"
|
||||||
Flutter:
|
Flutter:
|
||||||
:path: Flutter
|
:path: Flutter
|
||||||
|
flutter_local_notifications:
|
||||||
|
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
||||||
flutter_native_splash:
|
flutter_native_splash:
|
||||||
:path: ".symlinks/plugins/flutter_native_splash/ios"
|
:path: ".symlinks/plugins/flutter_native_splash/ios"
|
||||||
flutter_udid:
|
flutter_udid:
|
||||||
@@ -132,6 +137,7 @@ SPEC CHECKSUMS:
|
|||||||
connectivity_plus: 07c49e96d7fc92bc9920617b83238c4d178b446a
|
connectivity_plus: 07c49e96d7fc92bc9920617b83238c4d178b446a
|
||||||
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
|
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
|
||||||
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||||
|
flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743
|
||||||
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
|
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
|
||||||
flutter_udid: 0848809dbed4c055175747ae6a45a8b4f6771e1c
|
flutter_udid: 0848809dbed4c055175747ae6a45a8b4f6771e1c
|
||||||
flutter_web_auth: c25208760459cec375a3c39f6a8759165ca0fa4d
|
flutter_web_auth: c25208760459cec375a3c39f6a8759165ca0fa4d
|
||||||
|
|||||||
@@ -379,7 +379,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 97;
|
CURRENT_PROJECT_VERSION = 110;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@@ -515,7 +515,7 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 97;
|
CURRENT_PROJECT_VERSION = 110;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@@ -543,7 +543,7 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 97;
|
CURRENT_PROJECT_VERSION = 110;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
|||||||
@@ -14,6 +14,11 @@ import permission_handler_apple
|
|||||||
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
||||||
) -> Bool {
|
) -> Bool {
|
||||||
|
|
||||||
|
// Required for flutter_local_notification
|
||||||
|
if #available(iOS 10.0, *) {
|
||||||
|
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
|
||||||
|
}
|
||||||
|
|
||||||
GeneratedPluginRegistrant.register(with: self)
|
GeneratedPluginRegistrant.register(with: self)
|
||||||
BackgroundServicePlugin.registerBackgroundProcessing()
|
BackgroundServicePlugin.registerBackgroundProcessing()
|
||||||
|
|
||||||
|
|||||||
@@ -59,11 +59,11 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.57.0</string>
|
<string>1.70.0</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>97</string>
|
<string>110</string>
|
||||||
<key>FLTEnableImpeller</key>
|
<key>FLTEnableImpeller</key>
|
||||||
<true />
|
<true />
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ platform :ios do
|
|||||||
desc "iOS Beta"
|
desc "iOS Beta"
|
||||||
lane :beta do
|
lane :beta do
|
||||||
increment_version_number(
|
increment_version_number(
|
||||||
version_number: "1.69.0"
|
version_number: "1.73.0"
|
||||||
)
|
)
|
||||||
increment_build_number(
|
increment_build_number(
|
||||||
build_number: latest_testflight_build_number + 1,
|
build_number: latest_testflight_build_number + 1,
|
||||||
|
|||||||
@@ -5,32 +5,32 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000407">
|
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000211">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="1: increment_version_number" time="2.988375">
|
<testcase classname="fastlane.lanes" name="1: increment_version_number" time="2.108738">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="2: latest_testflight_build_number" time="45.42439">
|
<testcase classname="fastlane.lanes" name="2: latest_testflight_build_number" time="28.952846">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="3: increment_build_number" time="2.381359">
|
<testcase classname="fastlane.lanes" name="3: increment_build_number" time="1.821481">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="4: build_app" time="94.653021">
|
<testcase classname="fastlane.lanes" name="4: build_app" time="99.212621">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="5: upload_to_testflight" time="58.237354">
|
<testcase classname="fastlane.lanes" name="5: upload_to_testflight" time="68.366701">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,6 @@ import 'package:immich_mobile/constants/locales.dart';
|
|||||||
import 'package:immich_mobile/modules/backup/background_service/background.service.dart';
|
import 'package:immich_mobile/modules/backup/background_service/background.service.dart';
|
||||||
import 'package:immich_mobile/modules/backup/models/backup_album.model.dart';
|
import 'package:immich_mobile/modules/backup/models/backup_album.model.dart';
|
||||||
import 'package:immich_mobile/modules/backup/models/duplicated_asset.model.dart';
|
import 'package:immich_mobile/modules/backup/models/duplicated_asset.model.dart';
|
||||||
import 'package:immich_mobile/modules/backup/providers/backup.provider.dart';
|
|
||||||
import 'package:immich_mobile/modules/backup/providers/ios_background_settings.provider.dart';
|
|
||||||
import 'package:immich_mobile/modules/login/providers/authentication.provider.dart';
|
|
||||||
import 'package:immich_mobile/modules/onboarding/providers/gallery_permission.provider.dart';
|
|
||||||
import 'package:immich_mobile/modules/settings/providers/notification_permission.provider.dart';
|
|
||||||
import 'package:immich_mobile/routing/router.dart';
|
import 'package:immich_mobile/routing/router.dart';
|
||||||
import 'package:immich_mobile/routing/tab_navigation_observer.dart';
|
import 'package:immich_mobile/routing/tab_navigation_observer.dart';
|
||||||
import 'package:immich_mobile/shared/models/album.dart';
|
import 'package:immich_mobile/shared/models/album.dart';
|
||||||
@@ -28,12 +23,10 @@ import 'package:immich_mobile/shared/models/logger_message.model.dart';
|
|||||||
import 'package:immich_mobile/shared/models/store.dart';
|
import 'package:immich_mobile/shared/models/store.dart';
|
||||||
import 'package:immich_mobile/shared/models/user.dart';
|
import 'package:immich_mobile/shared/models/user.dart';
|
||||||
import 'package:immich_mobile/shared/providers/app_state.provider.dart';
|
import 'package:immich_mobile/shared/providers/app_state.provider.dart';
|
||||||
import 'package:immich_mobile/shared/providers/asset.provider.dart';
|
|
||||||
import 'package:immich_mobile/shared/providers/db.provider.dart';
|
import 'package:immich_mobile/shared/providers/db.provider.dart';
|
||||||
import 'package:immich_mobile/shared/providers/release_info.provider.dart';
|
import 'package:immich_mobile/shared/providers/release_info.provider.dart';
|
||||||
import 'package:immich_mobile/shared/providers/server_info.provider.dart';
|
|
||||||
import 'package:immich_mobile/shared/providers/websocket.provider.dart';
|
|
||||||
import 'package:immich_mobile/shared/services/immich_logger.service.dart';
|
import 'package:immich_mobile/shared/services/immich_logger.service.dart';
|
||||||
|
import 'package:immich_mobile/shared/services/local_notification.service.dart';
|
||||||
import 'package:immich_mobile/shared/views/immich_loading_overlay.dart';
|
import 'package:immich_mobile/shared/views/immich_loading_overlay.dart';
|
||||||
import 'package:immich_mobile/shared/views/version_announcement_overlay.dart';
|
import 'package:immich_mobile/shared/views/version_announcement_overlay.dart';
|
||||||
import 'package:immich_mobile/utils/immich_app_theme.dart';
|
import 'package:immich_mobile/utils/immich_app_theme.dart';
|
||||||
@@ -41,7 +34,6 @@ import 'package:immich_mobile/utils/migration.dart';
|
|||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
@@ -130,51 +122,22 @@ class ImmichAppState extends ConsumerState<ImmichApp>
|
|||||||
switch (state) {
|
switch (state) {
|
||||||
case AppLifecycleState.resumed:
|
case AppLifecycleState.resumed:
|
||||||
debugPrint("[APP STATE] resumed");
|
debugPrint("[APP STATE] resumed");
|
||||||
ref.watch(appStateProvider.notifier).state = AppStateEnum.resumed;
|
ref.read(appStateProvider.notifier).handleAppResume();
|
||||||
|
|
||||||
var isAuthenticated = ref.watch(authenticationProvider).isAuthenticated;
|
|
||||||
final permission = ref.watch(galleryPermissionNotifier);
|
|
||||||
|
|
||||||
// Needs to be logged in and have gallery permissions
|
|
||||||
if (isAuthenticated && (permission.isGranted || permission.isLimited)) {
|
|
||||||
ref.read(backupProvider.notifier).resumeBackup();
|
|
||||||
ref.read(backgroundServiceProvider).resumeServiceIfEnabled();
|
|
||||||
ref.watch(assetProvider.notifier).getAllAsset();
|
|
||||||
ref.watch(serverInfoProvider.notifier).getServerVersion();
|
|
||||||
}
|
|
||||||
|
|
||||||
ref.watch(websocketProvider.notifier).connect();
|
|
||||||
|
|
||||||
ref.watch(releaseInfoProvider.notifier).checkGithubReleaseInfo();
|
|
||||||
|
|
||||||
ref
|
|
||||||
.watch(notificationPermissionProvider.notifier)
|
|
||||||
.getNotificationPermission();
|
|
||||||
ref
|
|
||||||
.watch(galleryPermissionNotifier.notifier)
|
|
||||||
.getGalleryPermissionStatus();
|
|
||||||
|
|
||||||
ref.read(iOSBackgroundSettingsProvider.notifier).refresh();
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AppLifecycleState.inactive:
|
case AppLifecycleState.inactive:
|
||||||
debugPrint("[APP STATE] inactive");
|
debugPrint("[APP STATE] inactive");
|
||||||
ref.watch(appStateProvider.notifier).state = AppStateEnum.inactive;
|
ref.read(appStateProvider.notifier).handleAppInactivity();
|
||||||
ImmichLogger().flush();
|
|
||||||
ref.watch(websocketProvider.notifier).disconnect();
|
|
||||||
ref.watch(backupProvider.notifier).cancelBackup();
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AppLifecycleState.paused:
|
case AppLifecycleState.paused:
|
||||||
debugPrint("[APP STATE] paused");
|
debugPrint("[APP STATE] paused");
|
||||||
ref.watch(appStateProvider.notifier).state = AppStateEnum.paused;
|
ref.read(appStateProvider.notifier).handleAppPause();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AppLifecycleState.detached:
|
case AppLifecycleState.detached:
|
||||||
debugPrint("[APP STATE] detached");
|
debugPrint("[APP STATE] detached");
|
||||||
ref.watch(appStateProvider.notifier).state = AppStateEnum.detached;
|
ref.read(appStateProvider.notifier).handleAppDetached();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -200,6 +163,7 @@ class ImmichAppState extends ConsumerState<ImmichApp>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
SystemChrome.setSystemUIOverlayStyle(overlayStyle);
|
SystemChrome.setSystemUIOverlayStyle(overlayStyle);
|
||||||
|
await ref.read(localNotificationService).setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
// ignore_for_file: public_member_api_docs, sort_constructors_first
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:collection/collection.dart';
|
||||||
|
|
||||||
|
class AddAssetsResponse {
|
||||||
|
List<String> alreadyInAlbum;
|
||||||
|
int successfullyAdded;
|
||||||
|
|
||||||
|
AddAssetsResponse({
|
||||||
|
required this.alreadyInAlbum,
|
||||||
|
required this.successfullyAdded,
|
||||||
|
});
|
||||||
|
|
||||||
|
AddAssetsResponse copyWith({
|
||||||
|
List<String>? alreadyInAlbum,
|
||||||
|
int? successfullyAdded,
|
||||||
|
}) {
|
||||||
|
return AddAssetsResponse(
|
||||||
|
alreadyInAlbum: alreadyInAlbum ?? this.alreadyInAlbum,
|
||||||
|
successfullyAdded: successfullyAdded ?? this.successfullyAdded,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toMap() {
|
||||||
|
return <String, dynamic>{
|
||||||
|
'alreadyInAlbum': alreadyInAlbum,
|
||||||
|
'successfullyAdded': successfullyAdded,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
String toJson() => json.encode(toMap());
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() =>
|
||||||
|
'AddAssetsResponse(alreadyInAlbum: $alreadyInAlbum, successfullyAdded: $successfullyAdded)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(covariant AddAssetsResponse other) {
|
||||||
|
if (identical(this, other)) return true;
|
||||||
|
final listEquals = const DeepCollectionEquality().equals;
|
||||||
|
|
||||||
|
return listEquals(other.alreadyInAlbum, alreadyInAlbum) &&
|
||||||
|
other.successfullyAdded == successfullyAdded;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode => alreadyInAlbum.hashCode ^ successfullyAdded.hashCode;
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:immich_mobile/modules/album/services/album.service.dart';
|
||||||
|
import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart';
|
||||||
|
import 'package:immich_mobile/shared/models/album.dart';
|
||||||
|
import 'package:immich_mobile/shared/providers/user.provider.dart';
|
||||||
|
|
||||||
|
final albumDetailProvider =
|
||||||
|
StreamProvider.family<Album, int>((ref, albumId) async* {
|
||||||
|
final user = ref.watch(currentUserProvider);
|
||||||
|
if (user == null) return;
|
||||||
|
final AlbumService service = ref.watch(albumServiceProvider);
|
||||||
|
|
||||||
|
await for (final a in service.watchAlbum(albumId)) {
|
||||||
|
if (a == null) {
|
||||||
|
throw Exception("Album with ID=$albumId does not exist anymore!");
|
||||||
|
}
|
||||||
|
await for (final _ in a.watchRenderList(GroupAssetsBy.none)) {
|
||||||
|
yield a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -3,12 +3,10 @@ import 'dart:async';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/modules/album/services/album.service.dart';
|
import 'package:immich_mobile/modules/album/services/album.service.dart';
|
||||||
import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart';
|
|
||||||
import 'package:immich_mobile/shared/models/album.dart';
|
import 'package:immich_mobile/shared/models/album.dart';
|
||||||
import 'package:immich_mobile/shared/models/asset.dart';
|
import 'package:immich_mobile/shared/models/asset.dart';
|
||||||
import 'package:immich_mobile/shared/models/user.dart';
|
import 'package:immich_mobile/shared/models/user.dart';
|
||||||
import 'package:immich_mobile/shared/providers/db.provider.dart';
|
import 'package:immich_mobile/shared/providers/db.provider.dart';
|
||||||
import 'package:immich_mobile/shared/providers/user.provider.dart';
|
|
||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
|
|
||||||
class SharedAlbumNotifier extends StateNotifier<List<Album>> {
|
class SharedAlbumNotifier extends StateNotifier<List<Album>> {
|
||||||
@@ -72,19 +70,3 @@ final sharedAlbumProvider =
|
|||||||
ref.watch(dbProvider),
|
ref.watch(dbProvider),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
final sharedAlbumDetailProvider =
|
|
||||||
StreamProvider.family<Album, int>((ref, albumId) async* {
|
|
||||||
final user = ref.watch(currentUserProvider);
|
|
||||||
if (user == null) return;
|
|
||||||
final AlbumService sharedAlbumService = ref.watch(albumServiceProvider);
|
|
||||||
|
|
||||||
await for (final a in sharedAlbumService.watchAlbum(albumId)) {
|
|
||||||
if (a == null) {
|
|
||||||
throw Exception("Album with ID=$albumId does not exist anymore!");
|
|
||||||
}
|
|
||||||
await for (final _ in a.watchRenderList(GroupAssetsBy.none)) {
|
|
||||||
yield a;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'dart:io';
|
|||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:immich_mobile/modules/album/models/add_asset_response.model.dart';
|
||||||
import 'package:immich_mobile/modules/backup/models/backup_album.model.dart';
|
import 'package:immich_mobile/modules/backup/models/backup_album.model.dart';
|
||||||
import 'package:immich_mobile/modules/backup/services/backup.service.dart';
|
import 'package:immich_mobile/modules/backup/services/backup.service.dart';
|
||||||
import 'package:immich_mobile/shared/models/album.dart';
|
import 'package:immich_mobile/shared/models/album.dart';
|
||||||
@@ -219,24 +220,43 @@ class AlbumService {
|
|||||||
yield* _db.albums.watchObject(albumId);
|
yield* _db.albums.watchObject(albumId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<AddAssetsResponseDto?> addAdditionalAssetToAlbum(
|
Future<AddAssetsResponse?> addAdditionalAssetToAlbum(
|
||||||
Iterable<Asset> assets,
|
Iterable<Asset> assets,
|
||||||
Album album,
|
Album album,
|
||||||
) async {
|
) async {
|
||||||
try {
|
try {
|
||||||
var result = await _apiService.albumApi.addAssetsToAlbum(
|
var response = await _apiService.albumApi.addAssetsToAlbum(
|
||||||
album.remoteId!,
|
album.remoteId!,
|
||||||
AddAssetsDto(assetIds: assets.map((asset) => asset.remoteId!).toList()),
|
BulkIdsDto(ids: assets.map((asset) => asset.remoteId!).toList()),
|
||||||
);
|
);
|
||||||
if (result != null && result.successfullyAdded > 0) {
|
|
||||||
album.assets.addAll(assets);
|
if (response != null) {
|
||||||
|
List<Asset> successAssets = [];
|
||||||
|
List<String> duplicatedAssets = [];
|
||||||
|
|
||||||
|
for (final result in response) {
|
||||||
|
if (result.success) {
|
||||||
|
successAssets
|
||||||
|
.add(assets.firstWhere((asset) => asset.remoteId == result.id));
|
||||||
|
} else if (!result.success &&
|
||||||
|
result.error == BulkIdResponseDtoErrorEnum.duplicate) {
|
||||||
|
duplicatedAssets.add(result.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
album.assets.addAll(successAssets);
|
||||||
await _db.writeTxn(() => album.assets.save());
|
await _db.writeTxn(() => album.assets.save());
|
||||||
|
|
||||||
|
return AddAssetsResponse(
|
||||||
|
alreadyInAlbum: duplicatedAssets,
|
||||||
|
successfullyAdded: successAssets.length,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("Error addAdditionalAssetToAlbum ${e.toString()}");
|
debugPrint("Error addAdditionalAssetToAlbum ${e.toString()}");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> addAdditionalUserToAlbum(
|
Future<bool> addAdditionalUserToAlbum(
|
||||||
@@ -314,8 +334,8 @@ class AlbumService {
|
|||||||
try {
|
try {
|
||||||
await _apiService.albumApi.removeAssetFromAlbum(
|
await _apiService.albumApi.removeAssetFromAlbum(
|
||||||
album.remoteId!,
|
album.remoteId!,
|
||||||
RemoveAssetsDto(
|
BulkIdsDto(
|
||||||
assetIds: assets.map((e) => e.remoteId!).toList(growable: false),
|
ids: assets.map((asset) => asset.remoteId!).toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
album.assets.removeAll(assets);
|
album.assets.removeAll(assets);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/modules/album/providers/album.provider.dart';
|
import 'package:immich_mobile/modules/album/providers/album.provider.dart';
|
||||||
|
import 'package:immich_mobile/modules/album/providers/album_detail.provider.dart';
|
||||||
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
|
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
|
||||||
import 'package:immich_mobile/modules/album/services/album.service.dart';
|
import 'package:immich_mobile/modules/album/services/album.service.dart';
|
||||||
import 'package:immich_mobile/modules/album/ui/add_to_album_sliverlist.dart';
|
import 'package:immich_mobile/modules/album/ui/add_to_album_sliverlist.dart';
|
||||||
@@ -63,9 +64,7 @@ class AddToAlbumBottomSheet extends HookConsumerWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ref.read(albumProvider.notifier).getAllAlbums();
|
ref.invalidate(albumDetailProvider(album.id));
|
||||||
ref.read(sharedAlbumProvider.notifier).getAllSharedAlbums();
|
|
||||||
|
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:fluttertoast/fluttertoast.dart';
|
import 'package:fluttertoast/fluttertoast.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/modules/album/providers/album.provider.dart';
|
import 'package:immich_mobile/modules/album/providers/album.provider.dart';
|
||||||
|
import 'package:immich_mobile/modules/album/providers/album_detail.provider.dart';
|
||||||
import 'package:immich_mobile/modules/album/providers/album_viewer.provider.dart';
|
import 'package:immich_mobile/modules/album/providers/album_viewer.provider.dart';
|
||||||
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
|
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
|
||||||
import 'package:immich_mobile/routing/router.dart';
|
import 'package:immich_mobile/routing/router.dart';
|
||||||
@@ -99,7 +100,7 @@ class AlbumViewerAppbar extends HookConsumerWidget
|
|||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
selectionDisabled();
|
selectionDisabled();
|
||||||
ref.watch(albumProvider.notifier).getAllAlbums();
|
ref.watch(albumProvider.notifier).getAllAlbums();
|
||||||
ref.invalidate(sharedAlbumDetailProvider(album.id));
|
ref.invalidate(albumDetailProvider(album.id));
|
||||||
} else {
|
} else {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
ImmichToast.show(
|
ImmichToast.show(
|
||||||
|
|||||||
@@ -6,13 +6,12 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/modules/album/models/asset_selection_page_result.model.dart';
|
import 'package:immich_mobile/modules/album/models/asset_selection_page_result.model.dart';
|
||||||
import 'package:immich_mobile/modules/album/providers/album.provider.dart';
|
import 'package:immich_mobile/modules/album/providers/album_detail.provider.dart';
|
||||||
import 'package:immich_mobile/modules/album/services/album.service.dart';
|
import 'package:immich_mobile/modules/album/services/album.service.dart';
|
||||||
import 'package:immich_mobile/modules/album/ui/album_action_outlined_button.dart';
|
import 'package:immich_mobile/modules/album/ui/album_action_outlined_button.dart';
|
||||||
import 'package:immich_mobile/modules/album/ui/album_viewer_editable_title.dart';
|
import 'package:immich_mobile/modules/album/ui/album_viewer_editable_title.dart';
|
||||||
import 'package:immich_mobile/modules/home/ui/asset_grid/immich_asset_grid.dart';
|
import 'package:immich_mobile/modules/home/ui/asset_grid/immich_asset_grid.dart';
|
||||||
import 'package:immich_mobile/modules/login/providers/authentication.provider.dart';
|
import 'package:immich_mobile/modules/login/providers/authentication.provider.dart';
|
||||||
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
|
|
||||||
import 'package:immich_mobile/modules/album/ui/album_viewer_appbar.dart';
|
import 'package:immich_mobile/modules/album/ui/album_viewer_appbar.dart';
|
||||||
import 'package:immich_mobile/routing/router.dart';
|
import 'package:immich_mobile/routing/router.dart';
|
||||||
import 'package:immich_mobile/shared/models/album.dart';
|
import 'package:immich_mobile/shared/models/album.dart';
|
||||||
@@ -28,11 +27,20 @@ class AlbumViewerPage extends HookConsumerWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
FocusNode titleFocusNode = useFocusNode();
|
FocusNode titleFocusNode = useFocusNode();
|
||||||
final album = ref.watch(sharedAlbumDetailProvider(albumId));
|
final album = ref.watch(albumDetailProvider(albumId));
|
||||||
final userId = ref.watch(authenticationProvider).userId;
|
final userId = ref.watch(authenticationProvider).userId;
|
||||||
final selection = useState<Set<Asset>>({});
|
final selection = useState<Set<Asset>>({});
|
||||||
final multiSelectEnabled = useState(false);
|
final multiSelectEnabled = useState(false);
|
||||||
|
|
||||||
|
useEffect(
|
||||||
|
() {
|
||||||
|
// Fetch album updates, e.g., cover image
|
||||||
|
ref.invalidate(albumDetailProvider(albumId));
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
|
||||||
Future<bool> onWillPop() async {
|
Future<bool> onWillPop() async {
|
||||||
if (multiSelectEnabled.value) {
|
if (multiSelectEnabled.value) {
|
||||||
selection.value = {};
|
selection.value = {};
|
||||||
@@ -77,8 +85,7 @@ class AlbumViewerPage extends HookConsumerWidget {
|
|||||||
|
|
||||||
if (addAssetsResult != null &&
|
if (addAssetsResult != null &&
|
||||||
addAssetsResult.successfullyAdded > 0) {
|
addAssetsResult.successfullyAdded > 0) {
|
||||||
ref.watch(albumProvider.notifier).getAllAlbums();
|
ref.invalidate(albumDetailProvider(albumId));
|
||||||
ref.invalidate(sharedAlbumDetailProvider(albumId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImmichLoadingOverlayController.appLoader.hide();
|
ImmichLoadingOverlayController.appLoader.hide();
|
||||||
@@ -100,7 +107,7 @@ class AlbumViewerPage extends HookConsumerWidget {
|
|||||||
.addAdditionalUserToAlbum(sharedUserIds, album);
|
.addAdditionalUserToAlbum(sharedUserIds, album);
|
||||||
|
|
||||||
if (isSuccess) {
|
if (isSuccess) {
|
||||||
ref.invalidate(sharedAlbumDetailProvider(album.id));
|
ref.invalidate(albumDetailProvider(album.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
ImmichLoadingOverlayController.appLoader.hide();
|
ImmichLoadingOverlayController.appLoader.hide();
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class CreateAlbumPage extends HookConsumerWidget {
|
|||||||
final albumTitleTextFieldFocusNode = useFocusNode();
|
final albumTitleTextFieldFocusNode = useFocusNode();
|
||||||
final isAlbumTitleTextFieldFocus = useState(false);
|
final isAlbumTitleTextFieldFocus = useState(false);
|
||||||
final isAlbumTitleEmpty = useState(true);
|
final isAlbumTitleEmpty = useState(true);
|
||||||
final selectedAssets = useState<Set<Asset>>(const {});
|
final selectedAssets = useState<Set<Asset>>(initialAssets != null ? Set.from(initialAssets!) : const {});
|
||||||
final isDarkTheme = Theme.of(context).brightness == Brightness.dark;
|
final isDarkTheme = Theme.of(context).brightness == Brightness.dark;
|
||||||
|
|
||||||
showSelectUserPage() async {
|
showSelectUserPage() async {
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_map/flutter_map.dart';
|
import 'package:flutter_map/flutter_map.dart';
|
||||||
@@ -17,6 +19,33 @@ class ExifBottomSheet extends HookConsumerWidget {
|
|||||||
bool get showMap =>
|
bool get showMap =>
|
||||||
asset.exifInfo?.latitude != null && asset.exifInfo?.longitude != null;
|
asset.exifInfo?.latitude != null && asset.exifInfo?.longitude != null;
|
||||||
|
|
||||||
|
Future<Uri> _createCoordinatesUri(double latitude, double longitude) async {
|
||||||
|
const zoomLevel = 5;
|
||||||
|
if (Platform.isAndroid) {
|
||||||
|
Uri uri = Uri(
|
||||||
|
scheme: 'geo',
|
||||||
|
host: '$latitude,$longitude',
|
||||||
|
queryParameters: {'z': '$zoomLevel', 'q': '$latitude,$longitude'},
|
||||||
|
);
|
||||||
|
if (await canLaunchUrl(uri)) {
|
||||||
|
return uri;
|
||||||
|
}
|
||||||
|
} else if (Platform.isIOS) {
|
||||||
|
var params = {
|
||||||
|
'll': '$latitude,$longitude',
|
||||||
|
'q': '$latitude, $longitude',
|
||||||
|
};
|
||||||
|
Uri uri = Uri.https('maps.apple.com', '/', params);
|
||||||
|
if (!await canLaunchUrl(uri)) {
|
||||||
|
return uri;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Uri.https(
|
||||||
|
'www.google.com',
|
||||||
|
'/maps/place/$latitude,$longitude/@$latitude,$longitude,${zoomLevel}z',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final exifInfo = asset.exifInfo;
|
final exifInfo = asset.exifInfo;
|
||||||
@@ -42,6 +71,18 @@ class ExifBottomSheet extends HookConsumerWidget {
|
|||||||
exifInfo?.longitude ?? 0,
|
exifInfo?.longitude ?? 0,
|
||||||
),
|
),
|
||||||
zoom: 16.0,
|
zoom: 16.0,
|
||||||
|
onTap: (tapPosition, latLong) async {
|
||||||
|
if (exifInfo != null &&
|
||||||
|
exifInfo.latitude != null &&
|
||||||
|
exifInfo.longitude != null) {
|
||||||
|
launchUrl(
|
||||||
|
await _createCoordinatesUri(
|
||||||
|
exifInfo.latitude!,
|
||||||
|
exifInfo.longitude!,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
),
|
),
|
||||||
nonRotatedChildren: [
|
nonRotatedChildren: [
|
||||||
RichAttributionWidget(
|
RichAttributionWidget(
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user