Compare commits

...

8 Commits

Author SHA1 Message Date
Alex The Bot
b5991c908e Version v1.106.1 2024-06-11 09:39:23 +00:00
Jason Rasmussen
321c3ccfc6 docs: version switcher (#10091)
* docs: version switcher

* chore: pump script

* chore: fix linting on bash script

* chore: remove 1.106.0 from archived versions

* chore: change version archive script to take next server version not current version

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-06-11 10:33:45 +01:00
Weblate (bot)
05874bd84e chore: update translations (#10096)
* chore:  (German)

Currently translated at 5.9% (46 of 779 strings)

Translation: Immich/immich
Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/

* chore:  (Italian)

Currently translated at 3.5% (28 of 779 strings)

Translation: Immich/immich
Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/

* chore:  (German)

Currently translated at 8.7% (68 of 779 strings)

Translation: Immich/immich
Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/

* chore:  (Chinese (Simplified) (zh_SIMPLIFIED))

Currently translated at 74.9% (584 of 779 strings)

Translation: Immich/immich
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_SIMPLIFIED/

* chore:  (Dutch)

Currently translated at 5.7% (45 of 779 strings)

Translation: Immich/immich
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/

* chore:  (English (Developer))

Currently translated at 100.0% (779 of 779 strings)

Translation: Immich/immich
Translate-URL: https://hosted.weblate.org/projects/immich/immich/en_devel/

---------

Co-authored-by: Martin Bosner <martin@bosner.de>
Co-authored-by: Alessandro Saglia <webslate.eskimo0977@bear-d.me>
Co-authored-by: Sophie <mail@sopht.li>
Co-authored-by: jie65535 <jie65535@qq.com>
Co-authored-by: Zack Pollard <zack@futo.org>
2024-06-11 10:09:58 +01:00
Michel Heusschen
79705dc58d fix(web): language selector for chinese and norwegian (#10107)
* fix(web): language selector for chinese and norwegian

* add unit test

* formatter

* undo name change
2024-06-11 09:07:42 +00:00
aviv926
71a132b0b8 docs: Update the system settings page (#10094)
* updating

* npm run format

* fix \ > /
2024-06-11 03:52:29 -05:00
Alex
d14f23497c fix(server): album update disable no effect (#10090) 2024-06-11 03:51:58 -05:00
Jason Rasmussen
a916df56ee fix: roadmap docs (#10095) 2024-06-10 22:11:50 +00:00
aviv926
73dcb9b452 docs: add detect duplicate assets to roadmap (#10093)
* updating

* uncomment
2024-06-10 21:49:10 +00:00
32 changed files with 439 additions and 290 deletions

2
cli/package-lock.json generated
View File

@@ -47,7 +47,7 @@
},
"../open-api/typescript-sdk": {
"name": "@immich/sdk",
"version": "1.106.0",
"version": "1.106.1",
"dev": true,
"license": "GNU Affero General Public License version 3",
"dependencies": {

View File

@@ -10,6 +10,59 @@ Viewing and modifying the system settings is restricted to the Administrator.
You can always return to the default settings by clicking the `Reset to default` button.
:::
## Authentication Settings
Manage password, OAuth, and other authentication settings
### OAuth Authentication
Immich supports OAuth Authentication. Read more about this feature and its configuration [here](/docs/administration/oauth).
### Password Authentication
The administrator can choose to disable login with username and password for the entire instance. This means that **no one**, including the system administrator, will be able to log using this method. If [OAuth Authentication](/docs/administration/oauth) is also disabled, no users will be able to login using **any** method. Changing this setting does not affect existing sessions, just new login attempts.
:::tip
You can always use the [Server CLI](/docs/administration/server-commands) to re-enable password login.
:::
## Image Settings (thumbnails and previews)
- Thumbnails - Used in the main timeline.
- Previews - Used in the asset viewer.
By default Immich creates 3 thumbnails for each asset,
Blurred (thumbhash) , Small - thumbnails (webp) , and Large - previews (jpeg/webp), using these settings you can change the quality for the thumbnails and previews files that are created.
**Thumbnail format**
Allows you to choose the type of format you want for the Thumbnail images, Webp produces smaller files than jpeg, but is slower to encode.
:::tip
You can read in detail about the advantages and disadvantages of using webp over jpeg on [Adobe's website](https://www.adobe.com/creativecloud/file-types/image/raster/webp-file.html)
:::
**Thumbnail resolution**
Used when viewing groups of photos (main timeline, album view, etc.). Higher resolutions can preserve more detail but take longer to encode, have larger file sizes, and can reduce app responsiveness.
**Preview format**
Allows you to choose the type of format you want for the Preview images, Webp produces smaller files than jpeg, but is slower to encode.
**Preview resolution**
Used when viewing a single photo and for machine learning. Higher resolutions can preserve more detail but take longer to encode, have larger file sizes, and can reduce app responsiveness.
**Quality**
Image quality from 1-100. Higher is better for quality but produces larger files, this option affects the Preview and Thumbnail images.
**Prefer wide gamut**
Use Display P3 for thumbnails. This better preserves the vibrance of images with wide colorspaces, but images may appear differently on old devices with an old browser version. sRGB images are kept as sRGB to avoid color shifts.
**Prefer embedded preview**
Use embedded previews in RAW photos as the input to image processing when available. This can produce more accurate colors for some images, but the quality of the preview is camera-dependent and the image may have more compression artifacts.
:::tip
The default resolution for Large thumbnails can be lowered from 1440p (default) to 1080p or 720p to save storage space.
:::
## Job Settings
Using these settings, you can determine the amount of work that will run concurrently for each task in microservices. Some tasks can be set to higher values on computers with powerful hardware and storage with good I/O capabilities.
@@ -92,17 +145,9 @@ The map can be adjusted via [OpenMapTiles](https://openmaptiles.org/styles/) for
Immich supports [Reverse Geocoding](/docs/features/reverse-geocoding) using data from the [GeoNames](https://www.geonames.org/) geographical database.
## OAuth Authentication
## Notification Settings
Immich supports OAuth Authentication. Read more about this feature and its configuration [here](/docs/administration/oauth).
## Password Authentication
The administrator can choose to disable login with username and password for the entire instance. This means that **no one**, including the system administrator, will be able to log using this method. If [OAuth Authentication](/docs/administration/oauth) is also disabled, no users will be able to login using **any** method. Changing this setting does not affect existing sessions, just new login attempts.
:::tip
You can always use the [Server CLI](/docs/administration/server-commands) to re-enable password login.
:::
SMTP server setup, for user creation notifications, new albums, etc. More information can be found [here](/docs/administration/email-notification)
## Server Settings
@@ -130,27 +175,6 @@ p {
}
```
## Thumbnail Settings
By default Immich creates 3 thumbnails for each asset,
Blurred (thumbhash) , Small (webp) , and Large (jpeg), using these settings you can change the quality for the thumbnail files that are created.
**Small thumbnail resolution**
Used when viewing groups of photos (main timeline, album view, etc.). Higher resolutions can preserve more detail but take longer to encode, have larger file sizes, and can reduce app responsiveness.
**Large thumbnail resolution**
Used when viewing a single photo and for machine learning. Higher resolutions can preserve more detail but take longer to encode, have larger file sizes, and can reduce app responsiveness.
**Quality**
Thumbnail quality from 1-100. Higher is better for quality but produces larger files.
**Prefer wide gamut**
Use display p3 for thumbnails. This better preserves the vibrance of images with wide color spaces, but images may appear differently on old devices with an old browser version. Srgb images are kept as srgb to avoid color shifts.
:::tip
The default resolution for Large thumbnails can be lowered from 1440p (default) to 1080p or 720p to save storage space.
:::
## Trash Settings
In the system administrator's option to set a trash for deleted files, these files will remain in the trash until the deletion date 30 days (default) or as defined by the system administrator.

View File

@@ -94,6 +94,10 @@ const config = {
srcDark: 'img/immich-logo-inline-dark.png',
},
items: [
{
type: 'custom-versionSwitcher',
position: 'right',
},
{
to: '/docs/overview/introduction',
position: 'right',

View File

@@ -0,0 +1,59 @@
import '@docusaurus/theme-classic/lib/theme/Unlisted/index';
import { useWindowSize } from '@docusaurus/theme-common';
import DropdownNavbarItem from '@theme/NavbarItem/DropdownNavbarItem';
import React, { useEffect, useState } from 'react';
export default function VersionSwitcher(): JSX.Element {
const [versions, setVersions] = useState([]);
const [label, setLabel] = useState('Versions');
const windowSize = useWindowSize();
useEffect(() => {
async function getVersions() {
try {
let baseUrl = 'https://immich.app';
if (window.location.origin === 'http://localhost:3005') {
baseUrl = window.location.origin;
}
const response = await fetch(`${baseUrl}/archived-versions.json`);
const archiveVersions = await response.json();
const allVersions = [
{ label: 'Next', url: 'https://main.preview.immich.app' },
{ label: 'Latest', url: 'https://immich.app' },
...archiveVersions,
];
setVersions(allVersions);
const activeVersion = allVersions.find((version) => new URL(version.url).origin === window.location.origin);
if (activeVersion) {
setLabel(activeVersion.label);
}
} catch (error) {
console.error('Failed to fetch versions', error);
}
}
if (versions.length === 0) {
getVersions();
}
}, []);
return (
versions.length > 0 && (
<DropdownNavbarItem
className="navbar__item"
label={label}
mobile={windowSize === 'mobile'}
items={versions.map(({ label, url }) => ({
label,
to: url,
target: '_self',
}))}
/>
)
);
}

View File

@@ -63,12 +63,14 @@ import {
mdiVectorCombine,
mdiVideo,
mdiWeb,
mdiContentDuplicate,
} from '@mdi/js';
import Layout from '@theme/Layout';
import React from 'react';
import { Item, Timeline } from '../components/timeline';
const releases = {
'v1.106.0': new Date(2024, 5, 11),
'v1.104.0': new Date(2024, 4, 13),
'v1.103.0': new Date(2024, 3, 29),
'v1.102.0': new Date(2024, 3, 15),
@@ -216,13 +218,19 @@ const roadmap: Item[] = [
];
const milestones: Item[] = [
// withRelease({
// icon: mdiVectorCombine,
// title: 'Container consolidation',
// description:
// 'The microservices container can be run as a worker within the server image, allowing us to remove it from the default stack.',
// release: 'v1.106.0',
// }),
withRelease({
icon: mdiContentDuplicate,
title: 'Similar image detection',
description: 'Detect duplicate assets that arent exactly identical',
release: 'v1.106.0',
}),
withRelease({
icon: mdiVectorCombine,
title: 'Container consolidation',
description:
'The microservices container can be run as a worker within the server image, allowing us to remove it from the default stack.',
release: 'v1.106.0',
}),
withRelease({
icon: mdiPencil,
iconColor: 'saddlebrown',

View File

@@ -0,0 +1,7 @@
import ComponentTypes from '@theme-original/NavbarItem/ComponentTypes';
import VersionSwitcher from '@site/src/components/version-switcher';
export default {
...ComponentTypes,
'custom-versionSwitcher': VersionSwitcher,
};

10
docs/static/archived-versions.json vendored Normal file
View File

@@ -0,0 +1,10 @@
[
{
"label": "1.106.1",
"url": "https://1.106.1.archive.immich.app"
},
{
"label": "v1.105.1",
"url": "https://v1.105.1.archive.immich.app/"
}
]

6
e2e/package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "immich-e2e",
"version": "1.106.0",
"version": "1.106.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "immich-e2e",
"version": "1.106.0",
"version": "1.106.1",
"license": "GNU Affero General Public License version 3",
"devDependencies": {
"@immich/cli": "file:../cli",
@@ -81,7 +81,7 @@
},
"../open-api/typescript-sdk": {
"name": "@immich/sdk",
"version": "1.106.0",
"version": "1.106.1",
"dev": true,
"license": "GNU Affero General Public License version 3",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "immich-e2e",
"version": "1.106.0",
"version": "1.106.1",
"description": "",
"main": "index.js",
"type": "module",

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "machine-learning"
version = "1.106.0"
version = "1.106.1"
description = ""
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
readme = "README.md"

17
misc/release/archive-version.js Executable file
View File

@@ -0,0 +1,17 @@
#! /usr/bin/env node
const { readFileSync, writeFileSync } = require('node:fs');
const lastVersion = process.argv[2];
if (!lastVersion) {
console.log('Usage: archive-version.js <version>');
process.exit(1);
}
const filename = './docs/static/archived-versions.json';
const oldVersions = JSON.parse(readFileSync(filename));
const newVersions = [
{ label: lastVersion, url: `https://${lastVersion}.archive.immich.app` },
...oldVersions,
];
writeFileSync(filename, JSON.stringify(newVersions, null, 2) + '\n');

View File

@@ -83,4 +83,6 @@ sed -i "s/version_number: \"$CURRENT_SERVER\"$/version_number: \"$NEXT_SERVER\"/
sed -i "s/\"android\.injected\.version\.code\" => $CURRENT_MOBILE,/\"android\.injected\.version\.code\" => $NEXT_MOBILE,/" mobile/android/fastlane/Fastfile
sed -i "s/^version: $CURRENT_SERVER+$CURRENT_MOBILE$/version: $NEXT_SERVER+$NEXT_MOBILE/" mobile/pubspec.yaml
./misc/release/archive-version.js "$NEXT_SERVER"
echo "IMMICH_VERSION=v$NEXT_SERVER" >>"$GITHUB_ENV"

View File

@@ -36,7 +36,7 @@ platform :android do
build_type: 'Release',
properties: {
"android.injected.version.code" => 141,
"android.injected.version.name" => "1.106.0",
"android.injected.version.name" => "1.106.1",
}
)
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')

View File

@@ -19,7 +19,7 @@ platform :ios do
desc "iOS Beta"
lane :beta do
increment_version_number(
version_number: "1.106.0"
version_number: "1.106.1"
)
increment_build_number(
build_number: latest_testflight_build_number + 1,

View File

@@ -3,7 +3,7 @@ Immich API
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 1.106.0
- API version: 1.106.1
- Generator version: 7.5.0
- Build package: org.openapitools.codegen.languages.DartClientCodegen

View File

@@ -2,7 +2,7 @@ name: immich_mobile
description: Immich - selfhosted backup media file on mobile phone
publish_to: 'none'
version: 1.106.0+141
version: 1.106.1+141
environment:
sdk: '>=3.3.0 <4.0.0'

View File

@@ -6735,7 +6735,7 @@
"info": {
"title": "Immich",
"description": "Immich API",
"version": "1.106.0",
"version": "1.106.1",
"contact": {}
},
"tags": [],

View File

@@ -1,12 +1,12 @@
{
"name": "@immich/sdk",
"version": "1.106.0",
"version": "1.106.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@immich/sdk",
"version": "1.106.0",
"version": "1.106.1",
"license": "GNU Affero General Public License version 3",
"dependencies": {
"@oazapfts/runtime": "^1.0.2"

View File

@@ -1,6 +1,6 @@
{
"name": "@immich/sdk",
"version": "1.106.0",
"version": "1.106.1",
"description": "Auto-generated TypeScript SDK for the Immich API",
"type": "module",
"main": "./build/index.js",

View File

@@ -1,6 +1,6 @@
/**
* Immich
* 1.106.0
* 1.106.1
* DO NOT MODIFY - This file has been generated using oazapfts.
* See https://www.npmjs.com/package/oazapfts
*/

View File

@@ -1,12 +1,12 @@
{
"name": "immich",
"version": "1.106.0",
"version": "1.106.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "immich",
"version": "1.106.0",
"version": "1.106.1",
"license": "GNU Affero General Public License version 3",
"dependencies": {
"@nestjs/bullmq": "^10.0.1",

View File

@@ -1,6 +1,6 @@
{
"name": "immich",
"version": "1.106.0",
"version": "1.106.1",
"description": "",
"author": "",
"private": true,

View File

@@ -182,7 +182,12 @@ export class NotificationService {
const { server } = await this.configCore.getConfig();
for (const recipient of recipients) {
const { emailNotifications } = getPreferences(recipient);
const user = await this.userRepository.get(recipient.id, { withDeleted: false });
if (!user) {
continue;
}
const { emailNotifications } = getPreferences(user);
if (!emailNotifications.enabled || !emailNotifications.albumUpdate) {
continue;

6
web/package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "immich-web",
"version": "1.106.0",
"version": "1.106.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "immich-web",
"version": "1.106.0",
"version": "1.106.1",
"license": "GNU Affero General Public License version 3",
"dependencies": {
"@immich/sdk": "file:../open-api/typescript-sdk",
@@ -68,7 +68,7 @@
},
"../open-api/typescript-sdk": {
"name": "@immich/sdk",
"version": "1.106.0",
"version": "1.106.1",
"license": "GNU Affero General Public License version 3",
"dependencies": {
"@oazapfts/runtime": "^1.0.2"

View File

@@ -1,6 +1,6 @@
{
"name": "immich-web",
"version": "1.106.0",
"version": "1.106.1",
"license": "GNU Affero General Public License version 3",
"scripts": {
"dev": "vite dev --host 0.0.0.0 --port 3000",

View File

@@ -265,7 +265,7 @@ export const langs = [
{ name: 'Lithuanian', code: 'lt', loader: () => import('$lib/i18n/lt.json') },
{ name: 'Latvian', code: 'lv', loader: () => import('$lib/i18n/lv.json') },
{ name: 'Mongolian', code: 'mn', loader: () => import('$lib/i18n/mn.json') },
{ name: 'Norwegian Bokmål', code: 'nb_NO', loader: () => import('$lib/i18n/nb_NO.json') },
{ name: 'Norwegian Bokmål', code: 'nb-NO', loader: () => import('$lib/i18n/nb_NO.json') },
{ name: 'Dutch', code: 'nl', loader: () => import('$lib/i18n/nl.json') },
{ name: 'Polish', code: 'pl', loader: () => import('$lib/i18n/pl.json') },
{ name: 'Portuguese', code: 'pt', loader: () => import('$lib/i18n/pt.json') },
@@ -278,6 +278,6 @@ export const langs = [
{ name: 'Thai', code: 'th', loader: () => import('$lib/i18n/th.json') },
{ name: 'Ukrainian', code: 'uk', loader: () => import('$lib/i18n/uk.json') },
{ name: 'Vietnamese', code: 'vi', loader: () => import('$lib/i18n/vi.json') },
{ name: 'Chinese (Simplified)', code: 'zh_SIMPLIFIED', loader: () => import('$lib/i18n/zh_SIMPLIFIED.json') },
{ name: 'Chinese (Simplified)', code: 'zh-Hans', loader: () => import('$lib/i18n/zh_SIMPLIFIED.json') },
{ name: 'Development (keys only)', code: 'dev', loader: () => Promise.resolve({}) },
];

View File

@@ -1,3 +1,4 @@
import { langs } from '$lib/constants';
import messages from '$lib/i18n/en.json';
import { exec as execCallback } from 'node:child_process';
import { promisify } from 'node:util';
@@ -30,4 +31,16 @@ describe('i18n', () => {
// Only translations directly using the store seem to get extracted
expect({ ...extractedMessages, ...existingMessages }).toEqual(existingMessages);
});
describe('language tags', () => {
for (const lang of langs) {
if (lang.code === 'dev') {
continue;
}
test(`language tag ${lang.code} is valid`, () => {
expect(Intl.NumberFormat.supportedLocalesOf(lang.code)).toHaveLength(1);
});
}
});
});

View File

@@ -13,7 +13,7 @@
"add_exclusion_pattern": "Ausschlussmuster hinzufügen",
"add_import_path": "Importpfad hinzufügen",
"add_location": "Ort hinzufügen",
"add_more_users": "",
"add_more_users": "Weitere Benutzer hinzufügen",
"add_partner": "Partner hinzufügen",
"add_path": "Pfad hinzufügen",
"add_photos": "Fotos hinzufügen",
@@ -35,36 +35,37 @@
"image_preview_format": "",
"image_preview_resolution": "",
"image_preview_resolution_description": "",
"image_quality": "",
"image_quality_description": "",
"image_settings": "",
"image_settings_description": "",
"image_thumbnail_format": "",
"image_thumbnail_resolution": "",
"image_quality": "Qualität",
"image_quality_description": "Bildqualität von 1-100. Höher bedeutet bessere Qualität, erzeugt aber größere Dateien.",
"image_settings": "Bildeinstellungen",
"image_settings_description": "Verwalte die Qualität und Auflösung von generierten Bildern",
"image_thumbnail_format": "Vorschaubildformat",
"image_thumbnail_resolution": "Vorschaubildauflösung",
"image_thumbnail_resolution_description": "",
"job_settings": "",
"job_settings_description": "",
"library_cron_expression": "",
"library_cron_expression_presets": "",
"library_scanning": "",
"library_scanning": "Periodisches scannen",
"library_scanning_description": "",
"library_scanning_enable_description": "",
"library_settings": "",
"library_settings": "Externe Bibliothek",
"library_settings_description": "",
"library_watching_enable_description": "",
"library_watching_settings": "",
"library_tasks_description": "",
"library_watching_enable_description": "Überwache externe Bibliotheken auf Dateiänderungen",
"library_watching_settings": "Bibliotheksüberwachung (EXPERIMENTELL)",
"library_watching_settings_description": "",
"logging_enable_description": "",
"logging_level_description": "",
"logging_settings": "",
"logging_settings": "Logging",
"machine_learning_clip_model": "",
"machine_learning_duplicate_detection": "",
"machine_learning_duplicate_detection_enabled_description": "",
"machine_learning_duplicate_detection_setting_description": "",
"machine_learning_enabled_description": "",
"machine_learning_facial_recognition": "",
"machine_learning_facial_recognition_description": "",
"machine_learning_facial_recognition_model": "",
"machine_learning_facial_recognition": "Gesichtserkennung",
"machine_learning_facial_recognition_description": "Erkenne, identifiziere und gruppiere Gesichter in Bildern",
"machine_learning_facial_recognition_model": "Gesichtserkennungs-Modell",
"machine_learning_facial_recognition_model_description": "",
"machine_learning_facial_recognition_setting_description": "",
"machine_learning_max_detection_distance": "",
@@ -77,14 +78,14 @@
"machine_learning_min_recognized_faces_description": "",
"machine_learning_settings": "",
"machine_learning_settings_description": "",
"machine_learning_smart_search": "",
"machine_learning_smart_search": "Intelligente Suche",
"machine_learning_smart_search_description": "",
"machine_learning_smart_search_enabled_description": "",
"machine_learning_url_description": "",
"manage_log_settings": "",
"map_dark_style": "",
"map_dark_style": "Dunkler Stil",
"map_enable_description": "",
"map_light_style": "",
"map_light_style": "Heller Stil",
"map_reverse_geocoding": "",
"map_reverse_geocoding_enable_description": "",
"map_reverse_geocoding_settings": "",
@@ -94,16 +95,19 @@
"metadata_extraction_job_description": "",
"migration_job_description": "",
"notification_email_from_address": "",
"notification_email_from_address_description": "",
"notification_email_from_address_description": "E-Mail-Adresse des Senders, zum Beispiel: \"Immich Photo Server <noreply@immich.app>\"",
"notification_email_host_description": "",
"notification_email_ignore_certificate_errors": "",
"notification_email_ignore_certificate_errors": "Ignoriere Zertifikats-Fehler",
"notification_email_ignore_certificate_errors_description": "",
"notification_email_password_description": "",
"notification_email_port_description": "",
"notification_email_sent_test_email_button": "",
"notification_email_setting_description": "",
"notification_email_test_email_failed": "",
"notification_email_test_email_sent": "",
"notification_email_username_description": "",
"notification_enable_email_notifications": "",
"notification_settings": "",
"notification_settings": "Benachrichtigungseinstellungen",
"notification_settings_description": "",
"oauth_auto_launch": "",
"oauth_auto_launch_description": "",
@@ -132,9 +136,9 @@
"password_settings_description": "",
"server_external_domain_settings": "",
"server_external_domain_settings_description": "",
"server_settings": "",
"server_settings": "Servereinstellungen",
"server_settings_description": "",
"server_welcome_message": "",
"server_welcome_message": "Willkommensnachricht",
"server_welcome_message_description": "",
"sidecar_job_description": "",
"slideshow_duration_description": "",
@@ -218,11 +222,7 @@
"version_check_enabled_description": "",
"version_check_settings": "",
"version_check_settings_description": "",
"video_conversion_job_description": "",
"notification_email_test_email_failed": "",
"notification_email_sent_test_email_button": "",
"notification_email_test_email_sent": "",
"library_tasks_description": ""
"video_conversion_job_description": ""
},
"admin_email": "",
"admin_password": "",

View File

@@ -36,7 +36,7 @@
"image_preview_resolution": "Preview resolution",
"image_preview_resolution_description": "Used when viewing a single photo and for machine learning. Higher resolutions can preserve more detail but take longer to encode, have larger file sizes, and can reduce app responsiveness.",
"image_quality": "Quality",
"image_quality_description": "Image quality from 1-100. Higher is better for quality but produces larger files.",
"image_quality_description": "Image quality from 1-100. Higher is better for quality but produces larger files, this option affects the Preview and Thumbnail images.",
"image_settings": "Image Settings",
"image_settings_description": "Manage the quality and resolution of generated images",
"image_thumbnail_format": "Thumbnail format",
@@ -101,10 +101,10 @@
"notification_email_ignore_certificate_errors_description": "Ignore TLS certificate validation errors (not recommended)",
"notification_email_password_description": "Password to use when authenticating with the email server",
"notification_email_port_description": "Port of the email server (e.g 25, 465, or 587)",
"notification_email_sent_test_email_button": "Send test email and save",
"notification_email_setting_description": "Settings for sending email notifications",
"notification_email_test_email_failed": "Failed to send test email, check your values",
"notification_email_test_email_sent": "A test email has been sent to {email}. Please check your inbox.",
"notification_email_sent_test_email_button": "Send test email and save",
"notification_email_username_description": "Username to use when authenticating with the email server",
"notification_enable_email_notifications": "Enable email notifications",
"notification_settings": "Notification Settings",
@@ -430,7 +430,7 @@
"unable_to_update_user": "Unable to update user"
},
"every_day_at_onepm": "Every day at 1pm",
"every_night_at_midnight": "",
"every_night_at_midnight": "Every night at midnight",
"every_night_at_twoam": "Every night at 2am",
"every_six_hours": "Every 6 hours",
"exit_slideshow": "Exit Slideshow",

View File

@@ -1,39 +1,39 @@
{
"account": "",
"acknowledge": "",
"action": "",
"actions": "",
"active": "",
"activity": "",
"add": "",
"add_a_description": "",
"add_a_location": "",
"add_a_name": "",
"add_a_title": "",
"account": "Profilo",
"acknowledge": "Acconsenti",
"action": "Azione",
"actions": "Azioni",
"active": "Attivo",
"activity": "Attività",
"add": "Aggiungi",
"add_a_description": "Aggiungi una descrizione",
"add_a_location": "Aggiungi un luogo",
"add_a_name": "Aggiungi un nome",
"add_a_title": "Aggiungi un titolo",
"add_exclusion_pattern": "",
"add_import_path": "",
"add_import_path": "Aggiungi un percorso di importazione",
"add_location": "",
"add_more_users": "",
"add_partner": "",
"add_more_users": "Aggiungi altri utenti",
"add_partner": "Aggiungi un partner",
"add_path": "",
"add_photos": "",
"add_to": "",
"add_to_album": "",
"add_to_shared_album": "",
"add_photos": "Aggiungi foto",
"add_to": "Aggiungi a ...",
"add_to_album": "Aggiungi ad album",
"add_to_shared_album": "Aggiungi ad album condiviso",
"admin": {
"authentication_settings": "",
"authentication_settings_description": "",
"authentication_settings": "Impostazioni di Autenticazione",
"authentication_settings_description": "Gestisci password, OAuth e altre impostazioni di autenticazione",
"crontab_guru": "",
"disable_login": "",
"disabled": "",
"duplicate_detection_job_description": "",
"image_format_description": "",
"image_prefer_embedded_preview": "",
"disable_login": "Disabilita login",
"disabled": "Disattivato",
"duplicate_detection_job_description": "Esegui machine learning sulle risorse per rilevare immagini simili. Si basa su Ricerca Intelligente",
"image_format_description": "WebP produce file più piccoli rispetto a JPEG, ma l'encoding è più lento",
"image_prefer_embedded_preview": "Preferisci l'anteprima integrata",
"image_prefer_embedded_preview_setting_description": "",
"image_prefer_wide_gamut": "",
"image_prefer_wide_gamut_setting_description": "",
"image_preview_format": "",
"image_preview_resolution": "",
"image_prefer_wide_gamut": "Preferisci gamut più ampio",
"image_prefer_wide_gamut_setting_description": "Usa lo spazio colore Display P3 per le anteprime. Questo aiuta a mantenere la vivacità delle immagini con spazi colore più ampi, tuttavia potrebbe non mostrare correttamente le immagini con dispositivi e browser obsoleti. Le immagini sRGB vengono preservate per evitare alterazioni del colore.",
"image_preview_format": "Formato anteprima",
"image_preview_resolution": "Risoluzione anteprima",
"image_preview_resolution_description": "",
"image_quality": "",
"image_quality_description": "",
@@ -51,6 +51,7 @@
"library_scanning_enable_description": "",
"library_settings": "",
"library_settings_description": "",
"library_tasks_description": "",
"library_watching_enable_description": "",
"library_watching_settings": "",
"library_watching_settings_description": "",
@@ -100,7 +101,10 @@
"notification_email_ignore_certificate_errors_description": "",
"notification_email_password_description": "",
"notification_email_port_description": "",
"notification_email_sent_test_email_button": "",
"notification_email_setting_description": "",
"notification_email_test_email_failed": "",
"notification_email_test_email_sent": "",
"notification_email_username_description": "",
"notification_enable_email_notifications": "",
"notification_settings": "",
@@ -218,11 +222,7 @@
"version_check_enabled_description": "",
"version_check_settings": "",
"version_check_settings_description": "",
"video_conversion_job_description": "",
"library_tasks_description": "",
"notification_email_test_email_failed": "",
"notification_email_test_email_sent": "",
"notification_email_sent_test_email_button": ""
"video_conversion_job_description": ""
},
"admin_email": "",
"admin_password": "",

View File

@@ -51,6 +51,7 @@
"library_scanning_enable_description": "Periodieke bibliotheekscan aanzetten",
"library_settings": "Externe bibliotheek",
"library_settings_description": "Externe bibliotheekinstellingen beheren",
"library_tasks_description": "",
"library_watching_enable_description": "",
"library_watching_settings": "",
"library_watching_settings_description": "",
@@ -100,7 +101,10 @@
"notification_email_ignore_certificate_errors_description": "",
"notification_email_password_description": "",
"notification_email_port_description": "",
"notification_email_sent_test_email_button": "",
"notification_email_setting_description": "",
"notification_email_test_email_failed": "",
"notification_email_test_email_sent": "",
"notification_email_username_description": "",
"notification_enable_email_notifications": "",
"notification_settings": "",
@@ -218,11 +222,7 @@
"version_check_enabled_description": "",
"version_check_settings": "",
"version_check_settings_description": "",
"video_conversion_job_description": "",
"notification_email_sent_test_email_button": "",
"notification_email_test_email_sent": "",
"library_tasks_description": "",
"notification_email_test_email_failed": ""
"video_conversion_job_description": ""
},
"admin_email": "",
"admin_password": "",

View File

@@ -51,6 +51,7 @@
"library_scanning_enable_description": "启用定期图库扫描",
"library_settings": "外部库",
"library_settings_description": "管理外部库设置",
"library_tasks_description": "执行图库任务",
"library_watching_enable_description": "监听外部库的文件更改",
"library_watching_settings": "监听图库(实验性)",
"library_watching_settings_description": "自动监控文件变化",
@@ -100,7 +101,10 @@
"notification_email_ignore_certificate_errors_description": "忽略TLS证书验证错误不建议",
"notification_email_password_description": "通过邮件服务器进行身份验证时使用的密码",
"notification_email_port_description": "邮件服务器端口例如25、465或587",
"notification_email_sent_test_email_button": "发送测试邮件并保存",
"notification_email_setting_description": "发送邮件通知设置",
"notification_email_test_email_failed": "发送测试邮件失败,检查你的输入",
"notification_email_test_email_sent": "已向{email}发送了一封测试邮件。请检查您的收件箱。",
"notification_email_username_description": "与邮件服务器进行身份验证时使用的用户名",
"notification_enable_email_notifications": "启用邮件通知",
"notification_settings": "通知设置",
@@ -162,46 +166,46 @@
"transcoding_accepted_video_codecs": "",
"transcoding_accepted_video_codecs_description": "选择不需要转码的视频编解码器。仅用于特定的转码策略。",
"transcoding_advanced_options_description": "大多数用户不需要更改的选项",
"transcoding_audio_codec": "",
"transcoding_audio_codec": "音频编解码器",
"transcoding_audio_codec_description": "Opus是最高质量的选择但与旧设备或软件的兼容性较低。",
"transcoding_bitrate_description": "视频超过最大码率或格式不兼容。",
"transcoding_constant_quality_mode": "",
"transcoding_constant_quality_mode": "恒定质量模式",
"transcoding_constant_quality_mode_description": "ICQ比CQP更好但一些硬件加速设备不支持这种模式。当使用基于质量的编码时此选项将为首选指定的模式。使用NVENC时忽略因为NVENC不支持ICQ",
"transcoding_constant_rate_factor": "恒定码率因素 -crf",
"transcoding_constant_rate_factor_description": "视频质量水平。H.264的典型值为23HEVC为28VP9为31AV1为35。越低越好但产生的文件越大。",
"transcoding_disabled_description": "不要对任何视频进行转码,可能会中断某些客户端的播放",
"transcoding_hardware_acceleration": "",
"transcoding_hardware_acceleration": "硬件加速",
"transcoding_hardware_acceleration_description": "(实验性功能)速度更快,但在相同码率下质量会降低。",
"transcoding_hardware_decoding": "",
"transcoding_hardware_decoding": "硬件解码",
"transcoding_hardware_decoding_setting_description": "仅适用于NVENC和RKMPP。启用端到端加速而不仅仅是加速编码。可能并不适用于所有视频。",
"transcoding_hevc_codec": "",
"transcoding_max_b_frames": "",
"transcoding_hevc_codec": "HEVC 编解码器",
"transcoding_max_b_frames": "最大B帧数",
"transcoding_max_b_frames_description": "较高的值可以提高压缩效率但会减慢编码速度。可能与旧设备上的硬件加速不兼容。0值将禁用B帧而-1值将自动设置此参数。",
"transcoding_max_bitrate": "",
"transcoding_max_bitrate": "最大码率",
"transcoding_max_bitrate_description": "设置最大比特率可以使文件大小更可控而对质量的影响很小。在720p时VP9或HEVC的典型值为2600k而H.264的典型值则为4500k。如果此项设置为0则不限制最大比特率。",
"transcoding_max_keyframe_interval": "",
"transcoding_max_keyframe_interval": "最大关键帧间隔",
"transcoding_max_keyframe_interval_description": "设置关键帧之间的最大帧距离。较低的值会降低压缩效率但可以提高搜索时间并且可能在快速运动的场景中提高画质。值设为0将自动设置此参数。",
"transcoding_optimal_description": "视频超过目标分辨率或格式不支持",
"transcoding_preferred_hardware_device": "",
"transcoding_preferred_hardware_device": "首选硬件设备",
"transcoding_preferred_hardware_device_description": "仅适用于VAAPI和QSV。设置用于硬件转码的dri节点。",
"transcoding_preset_preset": "",
"transcoding_preset_preset_description": "压缩速度。较慢的预设会产生更小的文件并在目标特定比特率时提高质量。VP9请忽略faster以上的速度。",
"transcoding_reference_frames": "",
"transcoding_reference_frames": "参考帧",
"transcoding_reference_frames_description": "在压缩给定帧时参考的帧数。较高的值可以提高压缩效率但会减慢编码速度。此项设置为0时将自动设置此参数。",
"transcoding_required_description": "仅限不兼容格式的视频",
"transcoding_settings": "",
"transcoding_settings": "视频转码设置",
"transcoding_settings_description": "管理视频文件的分辨率和编码信息",
"transcoding_target_resolution": "",
"transcoding_target_resolution": "目标分辨率",
"transcoding_target_resolution_description": "更高的分辨率可以保留更多细节,但编码时间更长,文件体积更大,且可能降低应用程序的响应速度。",
"transcoding_temporal_aq": "",
"transcoding_temporal_aq_description": "仅适用于NVENC。提高高细节、低动态场景的质量。可能与旧设备不兼容。",
"transcoding_threads": "",
"transcoding_threads": "线程数",
"transcoding_threads_description": "设定值越高编码速度越快留给其他任务Docker外宿主机的任务等的计算能力越小。此值不应大于CPU核心的数量。如果值设置为0则最大限度地提高利用率。",
"transcoding_tone_mapping": "",
"transcoding_tone_mapping_description": "在将HDR视频转换为SDR时尝试保持其外观。每种算法在颜色、细节和亮度方面做出了不同的权衡。Hable算法保留细节Mobius算法保留颜色而Reinhard算法保留亮度。",
"transcoding_tone_mapping_npl": "",
"transcoding_tone_mapping_npl_description": "对于这种亮度的显示器颜色将被调整到显示正常。与直觉相反较低的值会增加视频的亮度反之亦然因为它会补偿显示器的亮度。填0将自动设置此值",
"transcoding_transcode_policy": "",
"transcoding_transcode_policy": "转码策略",
"transcoding_two_pass_encoding": "",
"transcoding_two_pass_encoding_setting_description": "分两次进行转码以生成更好的编码视频。当启用最大比特率与H.264和HEVC一起工作所需此模式使用基于最大比特率的比特率范围并忽略CRF。对于VP9如果禁用了最大比特率则可以使用CRF。\n注CRF全称为constant ratefactor是指保证“一定质量”智能分配码率包括同一帧内分配码率、帧间分配码率。",
"transcoding_video_codec": "视频编解码器",
@@ -213,21 +217,17 @@
"trash_settings_description": "管理回收站设置",
"user_delete_delay_settings": "延期删除",
"user_delete_delay_settings_description": "从移除用户账户及其所有项目(包括但不仅限于照片、视频)之日起,经过的天数将决定何时永久删除。用户删除作业将在午夜运行,以检查哪些用户的账户准备好进行删除。对此设置的更改将在下一次执行时进行评估。",
"user_settings": "",
"user_settings_description": "",
"user_settings": "用户设置",
"user_settings_description": "管理用户设置",
"version_check_enabled_description": "启用对GitHub的定期请求以检查新版本",
"version_check_settings": "",
"version_check_settings": "版本检查",
"version_check_settings_description": "启用或禁用新版本通知",
"video_conversion_job_description": "对视频进行转码,实现与浏览器和设备间更广泛的兼容性",
"notification_email_test_email_sent": "已向{email}发送了一封测试邮件。请检查您的收件箱。",
"notification_email_test_email_failed": "发送测试邮件失败,检查你的输入",
"notification_email_sent_test_email_button": "发送测试邮件并保存",
"library_tasks_description": "执行图库任务"
"video_conversion_job_description": "对视频进行转码,实现与浏览器和设备间更广泛的兼容性"
},
"admin_email": "",
"admin_password": "",
"administration": "",
"advanced": "",
"admin_email": "管理员邮箱",
"admin_password": "管理员密码",
"administration": "管理员",
"advanced": "高级",
"album_added": "相册已添加",
"album_added_notification_setting_description": "当您被添加到共享相册时,会收到邮件通知",
"album_cover_updated": "更新相册封面",
@@ -237,63 +237,63 @@
"album_updated": "相册已更新",
"album_updated_setting_description": "",
"albums": "相册",
"all": "",
"all_people": "",
"all": "全部",
"all_people": "全部人物",
"allow_dark_mode": "",
"allow_edits": "",
"allow_edits": "允许编辑",
"api_key": "",
"api_keys": "",
"app_settings": "",
"app_settings": "应用设置",
"appears_in": "",
"archive": "",
"archive_or_unarchive_photo": "归档或取消归档照片",
"archived": "",
"asset_offline": "",
"archived": "已归档",
"asset_offline": "项目离线",
"assets": "项目",
"authorized_devices": "",
"back": "",
"backward": "",
"blurred_background": "",
"camera": "",
"camera_brand": "",
"camera_model": "",
"cancel": "",
"cancel_search": "",
"cannot_merge_people": "",
"authorized_devices": "授权设备",
"back": "后退",
"backward": "后退",
"blurred_background": "背景模糊",
"camera": "相机",
"camera_brand": "相机品牌",
"camera_model": "相机型号",
"cancel": "取消",
"cancel_search": "取消搜索",
"cannot_merge_people": "不能合并人物",
"cannot_update_the_description": "无法更新描述",
"cant_apply_changes": "",
"cant_get_faces": "",
"cant_search_people": "",
"cant_search_places": "",
"change_date": "",
"change_expiration_time": "",
"change_location": "",
"change_name": "",
"change_name_successfully": "",
"change_password": "",
"change_your_password": "",
"changed_visibility_successfully": "",
"check_logs": "",
"city": "",
"clear": "",
"clear_all": "",
"clear_message": "",
"clear_value": "",
"close": "",
"collapse_all": "",
"color_theme": "",
"comment_options": "",
"comments_are_disabled": "",
"confirm": "",
"confirm_admin_password": "",
"confirm_password": "",
"contain": "",
"context": "",
"continue": "",
"cant_get_faces": "找不到人脸",
"cant_search_people": "找不到人物",
"cant_search_places": "找不到地点",
"change_date": "更改日期",
"change_expiration_time": "更改过期时间",
"change_location": "更改位置",
"change_name": "更改名称",
"change_name_successfully": "更改名称成功",
"change_password": "修改密码",
"change_your_password": "修改您的密码",
"changed_visibility_successfully": "更改可见性成功",
"check_logs": "检查日志",
"city": "城市",
"clear": "清空",
"clear_all": "清空全部",
"clear_message": "清空消息",
"clear_value": "清空值",
"close": "关闭",
"collapse_all": "全部折叠",
"color_theme": "颜色主题",
"comment_options": "评论选项",
"comments_are_disabled": "评论已禁用",
"confirm": "确认",
"confirm_admin_password": "确认管理员密码",
"confirm_password": "确认密码",
"contain": "包含",
"context": "上下文",
"continue": "继续",
"copied_image_to_clipboard": "已复制图片至剪贴板。",
"copy_error": "",
"copy_file_path": "",
"copy_image": "",
"copy_error": "复制出错",
"copy_file_path": "复制文件路径",
"copy_image": "复制图片",
"copy_link": "复制链接",
"copy_link_to_clipboard": "复制链接到剪贴板",
"copy_password": "复制密码",
@@ -301,49 +301,49 @@
"country": "国家",
"cover": "封面",
"covers": "封面",
"create": "",
"create": "创建",
"create_album": "创建相册",
"create_library": "",
"create_link": "",
"create_library": "创建图库",
"create_link": "创建链接",
"create_link_to_share": "创建共享链接",
"create_new_person": "",
"create_new_user": "",
"create_user": "",
"created": "",
"current_device": "",
"custom_locale": "",
"create_new_person": "创建新人物",
"create_new_user": "创建新用户",
"create_user": "创建用户",
"created": "已创建",
"current_device": "当前设备",
"custom_locale": "自定义地区",
"custom_locale_description": "日期和数字显示格式跟随语言和地区",
"dark": "",
"date_after": "",
"date_and_time": "",
"date_before": "",
"date_range": "",
"day": "",
"default_locale": "",
"date_after": "日期之后",
"date_and_time": "日期与时间",
"date_before": "日期之前",
"date_range": "日期范围",
"day": "",
"default_locale": "默认地区",
"default_locale_description": "根据您的浏览器地区设置日期和数字显示格式",
"delete": "",
"delete": "删除",
"delete_album": "删除相册",
"delete_key": "",
"delete_library": "",
"delete_link": "",
"delete_shared_link": "",
"delete_user": "",
"deleted_shared_link": "",
"description": "",
"details": "",
"direction": "",
"delete_key": "删除秘钥",
"delete_library": "删除图库",
"delete_link": "删除链接",
"delete_shared_link": "删除共享链接",
"delete_user": "删除用户",
"deleted_shared_link": "共享链接已删除",
"description": "描述",
"details": "详情",
"direction": "方向",
"disallow_edits": "",
"discover": "",
"discover": "发现",
"dismiss_all_errors": "",
"dismiss_error": "",
"display_options": "",
"display_order": "",
"display_original_photos": "",
"display_options": "显示选项",
"display_order": "显示顺序",
"display_original_photos": "显示原始照片",
"display_original_photos_setting_description": "在网络与原始格式兼容的情况下,查看图片或视频时优先显示原始文件而不是缩略图。这可能导致照片显示速度变慢。",
"done": "",
"download": "",
"downloading": "",
"duration": "",
"done": "完成",
"download": "下载",
"downloading": "下载中",
"duration": "时长",
"durations": {
"days": "",
"hours": "",
@@ -604,85 +604,85 @@
"permanent_deletion_warning_setting_description": "当永久删除项目时显示警告",
"permanently_delete": "",
"permanently_deleted_asset": "",
"photos": "",
"photos": "照片",
"photos_from_previous_years": "前几年的照片",
"pick_a_location": "",
"place": "",
"places": "",
"play": "",
"play_memories": "",
"pick_a_location": "选择位置",
"place": "地点",
"places": "地点",
"play": "播放",
"play_memories": "播放回忆",
"play_motion_photo": "",
"play_or_pause_video": "播放或暂停视频",
"point": "",
"port": "",
"preset": "",
"preview": "",
"previous": "",
"previous_memory": "",
"port": "端口",
"preset": "预设",
"preview": "预览",
"previous": "上一个",
"previous_memory": "上一个",
"previous_or_next_photo": "上一张或下一张照片",
"primary": "",
"profile_picture_set": "",
"public_share": "",
"range": "",
"raw": "",
"reaction_options": "",
"read_changelog": "",
"recent": "",
"recent_searches": "",
"refresh": "",
"refreshed": "",
"profile_picture_set": "个人资料图片已设置。",
"public_share": "公开共享",
"range": "范围",
"raw": "Raw",
"reaction_options": "反应选项",
"read_changelog": "阅读更新日志",
"recent": "最近",
"recent_searches": "最近搜索",
"refresh": "刷新",
"refreshed": "已刷新",
"refreshes_every_file": "刷新全部文件",
"remove": "移除",
"remove_from_album": "从相册中移除",
"remove_from_favorites": "",
"remove_from_favorites": "移出收藏",
"remove_from_shared_link": "从共享链接中移除",
"remove_offline_files": "",
"remove_offline_files": "删除离线文件",
"repair": "",
"repair_no_results_message": "未跟踪和缺失的文件将在此处显示",
"replace_with_upload": "",
"replace_with_upload": "上传以替换",
"require_password": "",
"reset": "",
"reset_password": "",
"reset_people_visibility": "",
"reset": "重置",
"reset_password": "重置密码",
"reset_people_visibility": "重置人物可见性",
"reset_settings_to_default": "恢复到默认设置",
"restore": "",
"restore_user": "",
"retry_upload": "",
"review_duplicates": "",
"role": "",
"save": "",
"saved_profile": "",
"saved_settings": "",
"say_something": "",
"restore": "恢复",
"restore_user": "恢复用户",
"retry_upload": "重新上传",
"review_duplicates": "审查重复项",
"role": "角色",
"save": "保存",
"saved_profile": "已保存资料",
"saved_settings": "已保存设置",
"say_something": "说点什么",
"scan_all_libraries": "",
"scan_all_library_files": "重新扫描所有图库文件",
"scan_new_library_files": "扫描新的图库文件",
"scan_settings": "",
"search": "",
"scan_settings": "扫描设置",
"search": "搜索",
"search_albums": "搜索相册",
"search_by_context": "",
"search_by_context": "搜索内容",
"search_camera_make": "",
"search_camera_model": "",
"search_city": "",
"search_country": "",
"search_for_existing_person": "",
"search_people": "",
"search_people": "搜索人物",
"search_places": "",
"search_state": "",
"search_timezone": "",
"search_type": "",
"search_your_photos": "",
"search_type": "搜索类型",
"search_your_photos": "搜索你的照片",
"searching_locales": "",
"second": "",
"second": "",
"select_album_cover": "选择相册封面",
"select_all": "",
"select_avatar_color": "",
"select_face": "",
"select_all": "全选",
"select_avatar_color": "选择头像颜色",
"select_face": "选择人脸",
"select_featured_photo": "",
"select_library_owner": "",
"select_new_face": "",
"select_photos": "",
"selected": "",
"select_new_face": "选择新面孔",
"select_photos": "选择照片",
"selected": "已选择",
"send_message": "发送消息",
"server": "服务器",
"server_stats": "服务器统计信息",
@@ -714,7 +714,7 @@
"show_person_options": "显示人物选项",
"show_progress_bar": "显示进度条",
"show_search_options": "显示搜索选项",
"shuffle": "",
"shuffle": "随机",
"sign_up": "注册",
"size": "尺寸",
"skip_to_content": "跳到内容",
@@ -725,7 +725,7 @@
"stack_selected_photos": "堆叠选定的照片",
"stacktrace": "堆栈跟踪",
"start_date": "开始日期",
"state": "",
"state": "省份",
"status": "状态",
"stop_motion_photo": "定格照片",
"storage": "存储",