Merge branch 'develop'

This commit is contained in:
Thibault Deckers 2022-09-19 19:23:48 +02:00
commit 4d726dc61f
231 changed files with 4562 additions and 2775 deletions

View file

@ -17,8 +17,8 @@ jobs:
# Available versions may lag behind https://github.com/flutter/flutter.git # Available versions may lag behind https://github.com/flutter/flutter.git
- uses: subosito/flutter-action@v2 - uses: subosito/flutter-action@v2
with: with:
flutter-version: '3.3.0-0.5.pre' flutter-version: '3.3.2'
channel: 'beta' channel: 'stable'
- name: Clone the repository. - name: Clone the repository.
uses: actions/checkout@v2 uses: actions/checkout@v2

View file

@ -19,8 +19,8 @@ jobs:
# Available versions may lag behind https://github.com/flutter/flutter.git # Available versions may lag behind https://github.com/flutter/flutter.git
- uses: subosito/flutter-action@v2 - uses: subosito/flutter-action@v2
with: with:
flutter-version: '3.3.0-0.5.pre' flutter-version: '3.3.2'
channel: 'beta' channel: 'stable'
# Workaround for this Android Gradle Plugin issue (supposedly fixed in AGP 4.1): # Workaround for this Android Gradle Plugin issue (supposedly fixed in AGP 4.1):
# https://issuetracker.google.com/issues/144111441 # https://issuetracker.google.com/issues/144111441
@ -56,15 +56,15 @@ jobs:
rm release.keystore.asc rm release.keystore.asc
mkdir outputs mkdir outputs
(cd scripts/; ./apply_flavor_play.sh) (cd scripts/; ./apply_flavor_play.sh)
flutter build appbundle -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_3.3.0-0.5.pre.sksl.json flutter build appbundle -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_3.3.2.sksl.json
cp build/app/outputs/bundle/playRelease/*.aab outputs cp build/app/outputs/bundle/playRelease/*.aab outputs
flutter build apk -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_3.3.0-0.5.pre.sksl.json flutter build apk -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_3.3.2.sksl.json
cp build/app/outputs/apk/play/release/*.apk outputs cp build/app/outputs/apk/play/release/*.apk outputs
(cd scripts/; ./apply_flavor_huawei.sh) (cd scripts/; ./apply_flavor_huawei.sh)
flutter build apk -t lib/main_huawei.dart --flavor huawei --bundle-sksl-path shaders_3.3.0-0.5.pre.sksl.json flutter build apk -t lib/main_huawei.dart --flavor huawei --bundle-sksl-path shaders_3.3.2.sksl.json
cp build/app/outputs/apk/huawei/release/*.apk outputs cp build/app/outputs/apk/huawei/release/*.apk outputs
(cd scripts/; ./apply_flavor_izzy.sh) (cd scripts/; ./apply_flavor_izzy.sh)
flutter build apk -t lib/main_izzy.dart --flavor izzy --split-per-abi --bundle-sksl-path shaders_3.3.0-0.5.pre.sksl.json flutter build apk -t lib/main_izzy.dart --flavor izzy --split-per-abi --bundle-sksl-path shaders_3.3.2.sksl.json
cp build/app/outputs/apk/izzy/release/*.apk outputs cp build/app/outputs/apk/izzy/release/*.apk outputs
rm $AVES_STORE_FILE rm $AVES_STORE_FILE
env: env:

View file

@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file.
## <a id="unreleased"></a>[Unreleased] ## <a id="unreleased"></a>[Unreleased]
## <a id="v1.7.0"></a>[v1.7.0] - 2022-09-19
### Added
- Collection: view settings allow changing the sort order (aka ascending/descending)
- Collection / Info: edit title via IPTC / XMP
- Albums / Countries / Tags: size displayed in list view details, sort by size
- Search: `undated` and `untitled` filters
- Greek translation (thanks Emmanouil Papavergis)
### Changed
- upgraded Flutter to stable v3.3.2
### Fixed
- opening viewer with directory context in some cases
- photo frame widget rendering in some cases
- exporting large images to BMP
- replacing entries during move/copy
- deleting binned item from the Download album
## <a id="v1.6.13"></a>[v1.6.13] - 2022-08-29 ## <a id="v1.6.13"></a>[v1.6.13] - 2022-08-29
### Changed ### Changed

View file

@ -154,7 +154,7 @@ repositories {
dependencies { dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2'
implementation 'androidx.core:core-ktx:1.8.0' implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.exifinterface:exifinterface:1.3.3' implementation 'androidx.exifinterface:exifinterface:1.3.3'
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation 'com.caverock:androidsvg-aar:1.4' implementation 'com.caverock:androidsvg-aar:1.4'

View file

@ -241,5 +241,9 @@ This change eventually prevents building the app with Flutter v3.0.2.
<meta-data <meta-data
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
<!-- as of Flutter v3.3.0, background blur & icon shading fail with Impeller -->
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
android:value="false" />
</application> </application>
</manifest> </manifest>

View file

@ -12,9 +12,8 @@ import android.os.Bundle
import android.util.Log import android.util.Log
import android.widget.RemoteViews import android.widget.RemoteViews
import app.loup.streams_channel.StreamsChannel import app.loup.streams_channel.StreamsChannel
import deckers.thibault.aves.channel.calls.DeviceHandler import deckers.thibault.aves.channel.AvesByteSendingMethodCodec
import deckers.thibault.aves.channel.calls.MediaFetchHandler import deckers.thibault.aves.channel.calls.*
import deckers.thibault.aves.channel.calls.MediaStoreHandler
import deckers.thibault.aves.channel.streams.ImageByteStreamHandler import deckers.thibault.aves.channel.streams.ImageByteStreamHandler
import deckers.thibault.aves.channel.streams.MediaStoreStreamHandler import deckers.thibault.aves.channel.streams.MediaStoreStreamHandler
import deckers.thibault.aves.utils.FlutterUtils import deckers.thibault.aves.utils.FlutterUtils
@ -190,7 +189,9 @@ class HomeWidgetProvider : AppWidgetProvider() {
// - need Context // - need Context
MethodChannel(messenger, DeviceHandler.CHANNEL).setMethodCallHandler(DeviceHandler(context)) MethodChannel(messenger, DeviceHandler.CHANNEL).setMethodCallHandler(DeviceHandler(context))
MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(context)) MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(context))
MethodChannel(messenger, MediaFetchHandler.CHANNEL).setMethodCallHandler(MediaFetchHandler(context)) MethodChannel(messenger, MediaFetchBytesHandler.CHANNEL, AvesByteSendingMethodCodec.INSTANCE).setMethodCallHandler(MediaFetchBytesHandler(context))
MethodChannel(messenger, MediaFetchObjectHandler.CHANNEL).setMethodCallHandler(MediaFetchObjectHandler(context))
MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(context))
// result streaming: dart -> platform ->->-> dart // result streaming: dart -> platform ->->-> dart
// - need Context // - need Context

View file

@ -16,6 +16,7 @@ import androidx.core.content.pm.ShortcutInfoCompat
import androidx.core.content.pm.ShortcutManagerCompat import androidx.core.content.pm.ShortcutManagerCompat
import androidx.core.graphics.drawable.IconCompat import androidx.core.graphics.drawable.IconCompat
import app.loup.streams_channel.StreamsChannel import app.loup.streams_channel.StreamsChannel
import deckers.thibault.aves.channel.AvesByteSendingMethodCodec
import deckers.thibault.aves.channel.calls.* import deckers.thibault.aves.channel.calls.*
import deckers.thibault.aves.channel.calls.window.ActivityWindowHandler import deckers.thibault.aves.channel.calls.window.ActivityWindowHandler
import deckers.thibault.aves.channel.calls.window.WindowHandler import deckers.thibault.aves.channel.calls.window.WindowHandler
@ -70,7 +71,8 @@ open class MainActivity : FlutterActivity() {
MethodChannel(messenger, GeocodingHandler.CHANNEL).setMethodCallHandler(GeocodingHandler(this)) MethodChannel(messenger, GeocodingHandler.CHANNEL).setMethodCallHandler(GeocodingHandler(this))
MethodChannel(messenger, GlobalSearchHandler.CHANNEL).setMethodCallHandler(GlobalSearchHandler(this)) MethodChannel(messenger, GlobalSearchHandler.CHANNEL).setMethodCallHandler(GlobalSearchHandler(this))
MethodChannel(messenger, HomeWidgetHandler.CHANNEL).setMethodCallHandler(HomeWidgetHandler(this)) MethodChannel(messenger, HomeWidgetHandler.CHANNEL).setMethodCallHandler(HomeWidgetHandler(this))
MethodChannel(messenger, MediaFetchHandler.CHANNEL).setMethodCallHandler(MediaFetchHandler(this)) MethodChannel(messenger, MediaFetchBytesHandler.CHANNEL, AvesByteSendingMethodCodec.INSTANCE).setMethodCallHandler(MediaFetchBytesHandler(this))
MethodChannel(messenger, MediaFetchObjectHandler.CHANNEL).setMethodCallHandler(MediaFetchObjectHandler(this))
MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(this)) MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(this))
MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this)) MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this))
MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this)) MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this))

View file

@ -4,6 +4,7 @@ import android.service.dreams.DreamService
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import app.loup.streams_channel.StreamsChannel import app.loup.streams_channel.StreamsChannel
import deckers.thibault.aves.channel.AvesByteSendingMethodCodec
import deckers.thibault.aves.channel.calls.* import deckers.thibault.aves.channel.calls.*
import deckers.thibault.aves.channel.calls.window.ServiceWindowHandler import deckers.thibault.aves.channel.calls.window.ServiceWindowHandler
import deckers.thibault.aves.channel.calls.window.WindowHandler import deckers.thibault.aves.channel.calls.window.WindowHandler
@ -99,7 +100,8 @@ class ScreenSaverService : DreamService() {
// - need Context // - need Context
MethodChannel(messenger, DeviceHandler.CHANNEL).setMethodCallHandler(DeviceHandler(this)) MethodChannel(messenger, DeviceHandler.CHANNEL).setMethodCallHandler(DeviceHandler(this))
MethodChannel(messenger, EmbeddedDataHandler.CHANNEL).setMethodCallHandler(EmbeddedDataHandler(this)) MethodChannel(messenger, EmbeddedDataHandler.CHANNEL).setMethodCallHandler(EmbeddedDataHandler(this))
MethodChannel(messenger, MediaFetchHandler.CHANNEL).setMethodCallHandler(MediaFetchHandler(this)) MethodChannel(messenger, MediaFetchBytesHandler.CHANNEL, AvesByteSendingMethodCodec.INSTANCE).setMethodCallHandler(MediaFetchBytesHandler(this))
MethodChannel(messenger, MediaFetchObjectHandler.CHANNEL).setMethodCallHandler(MediaFetchObjectHandler(this))
MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(this)) MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(this))
MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this)) MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this))
MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this)) MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this))

View file

@ -8,6 +8,7 @@ import android.os.Handler
import android.os.Looper import android.os.Looper
import android.util.Log import android.util.Log
import app.loup.streams_channel.StreamsChannel import app.loup.streams_channel.StreamsChannel
import deckers.thibault.aves.channel.AvesByteSendingMethodCodec
import deckers.thibault.aves.channel.calls.* import deckers.thibault.aves.channel.calls.*
import deckers.thibault.aves.channel.calls.window.ActivityWindowHandler import deckers.thibault.aves.channel.calls.window.ActivityWindowHandler
import deckers.thibault.aves.channel.calls.window.WindowHandler import deckers.thibault.aves.channel.calls.window.WindowHandler
@ -34,7 +35,8 @@ class WallpaperActivity : FlutterActivity() {
// - need Context // - need Context
MethodChannel(messenger, DeviceHandler.CHANNEL).setMethodCallHandler(DeviceHandler(this)) MethodChannel(messenger, DeviceHandler.CHANNEL).setMethodCallHandler(DeviceHandler(this))
MethodChannel(messenger, EmbeddedDataHandler.CHANNEL).setMethodCallHandler(EmbeddedDataHandler(this)) MethodChannel(messenger, EmbeddedDataHandler.CHANNEL).setMethodCallHandler(EmbeddedDataHandler(this))
MethodChannel(messenger, MediaFetchHandler.CHANNEL).setMethodCallHandler(MediaFetchHandler(this)) MethodChannel(messenger, MediaFetchBytesHandler.CHANNEL, AvesByteSendingMethodCodec.INSTANCE).setMethodCallHandler(MediaFetchBytesHandler(context))
MethodChannel(messenger, MediaFetchObjectHandler.CHANNEL).setMethodCallHandler(MediaFetchObjectHandler(this))
MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this)) MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this))
MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this)) MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this))
// - need ContextWrapper // - need ContextWrapper

View file

@ -0,0 +1,52 @@
package deckers.thibault.aves.channel
import android.util.Log
import deckers.thibault.aves.utils.LogUtils
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodCodec
import io.flutter.plugin.common.StandardMessageCodec
import io.flutter.plugin.common.StandardMethodCodec
import java.nio.ByteBuffer
class AvesByteSendingMethodCodec private constructor() : MethodCodec {
override fun decodeMethodCall(methodCall: ByteBuffer): MethodCall {
return STANDARD.decodeMethodCall(methodCall)
}
override fun decodeEnvelope(envelope: ByteBuffer): Any {
return STANDARD.decodeEnvelope(envelope)
}
override fun encodeMethodCall(methodCall: MethodCall): ByteBuffer {
return STANDARD.encodeMethodCall(methodCall)
}
override fun encodeSuccessEnvelope(result: Any?): ByteBuffer {
if (result is ByteArray) {
val size = result.size
return ByteBuffer.allocateDirect(4 + size).apply {
put(0)
put(result)
}
}
Log.e(LOG_TAG, "encodeSuccessEnvelope failed with result=$result")
return ByteBuffer.allocateDirect(0)
}
override fun encodeErrorEnvelope(errorCode: String, errorMessage: String?, errorDetails: Any?): ByteBuffer {
Log.e(LOG_TAG, "encodeErrorEnvelope failed with errorCode=$errorCode, errorMessage=$errorMessage, errorDetails=$errorDetails")
return ByteBuffer.allocateDirect(0)
}
override fun encodeErrorEnvelopeWithStacktrace(errorCode: String, errorMessage: String?, errorDetails: Any?, errorStacktrace: String?): ByteBuffer {
Log.e(LOG_TAG, "encodeErrorEnvelopeWithStacktrace failed with errorCode=$errorCode, errorMessage=$errorMessage, errorDetails=$errorDetails, errorStacktrace=$errorStacktrace")
return ByteBuffer.allocateDirect(0)
}
companion object {
private val LOG_TAG = LogUtils.createTag<AvesByteSendingMethodCodec>()
val INSTANCE = AvesByteSendingMethodCodec()
private val STANDARD = StandardMethodCodec(StandardMessageCodec.INSTANCE)
}
}

View file

@ -21,6 +21,7 @@ import deckers.thibault.aves.model.provider.ContentImageProvider
import deckers.thibault.aves.model.provider.ImageProvider import deckers.thibault.aves.model.provider.ImageProvider
import deckers.thibault.aves.utils.BitmapUtils import deckers.thibault.aves.utils.BitmapUtils
import deckers.thibault.aves.utils.BitmapUtils.getBytes import deckers.thibault.aves.utils.BitmapUtils.getBytes
import deckers.thibault.aves.utils.FileUtils.transferFrom
import deckers.thibault.aves.utils.LogUtils import deckers.thibault.aves.utils.LogUtils
import deckers.thibault.aves.utils.MimeTypes import deckers.thibault.aves.utils.MimeTypes
import deckers.thibault.aves.utils.MimeTypes.canReadWithExifInterface import deckers.thibault.aves.utils.MimeTypes.canReadWithExifInterface
@ -96,7 +97,7 @@ class EmbeddedDataHandler(private val context: Context) : MethodCallHandler {
val videoStartOffset = sizeBytes - videoSizeBytes val videoStartOffset = sizeBytes - videoSizeBytes
StorageUtils.openInputStream(context, uri)?.let { input -> StorageUtils.openInputStream(context, uri)?.let { input ->
input.skip(videoStartOffset) input.skip(videoStartOffset)
copyEmbeddedBytes(result, MimeTypes.MP4, displayName, input) copyEmbeddedBytes(result, MimeTypes.MP4, displayName, input, videoSizeBytes)
} }
return return
} }
@ -121,7 +122,7 @@ class EmbeddedDataHandler(private val context: Context) : MethodCallHandler {
Helper.readMimeType(input)?.let { embedMimeType = it } Helper.readMimeType(input)?.let { embedMimeType = it }
} }
embedMimeType?.let { mime -> embedMimeType?.let { mime ->
copyEmbeddedBytes(result, mime, displayName, bytes.inputStream()) copyEmbeddedBytes(result, mime, displayName, bytes.inputStream(), bytes.size.toLong())
return return
} }
} }
@ -172,7 +173,7 @@ class EmbeddedDataHandler(private val context: Context) : MethodCallHandler {
} }
} }
copyEmbeddedBytes(result, embedMimeType, displayName, embedBytes.inputStream()) copyEmbeddedBytes(result, embedMimeType, displayName, embedBytes.inputStream(), embedBytes.size.toLong())
return return
} catch (e: XMPException) { } catch (e: XMPException) {
result.error("extractXmpDataProp-xmp", "failed to read XMP directory for uri=$uri prop=$dataProp", e.message) result.error("extractXmpDataProp-xmp", "failed to read XMP directory for uri=$uri prop=$dataProp", e.message)
@ -190,16 +191,19 @@ class EmbeddedDataHandler(private val context: Context) : MethodCallHandler {
result.error("extractXmpDataProp-empty", "failed to extract file from XMP uri=$uri prop=$dataProp", null) result.error("extractXmpDataProp-empty", "failed to extract file from XMP uri=$uri prop=$dataProp", null)
} }
private fun copyEmbeddedBytes(result: MethodChannel.Result, mimeType: String, displayName: String?, embeddedByteStream: InputStream) { private fun copyEmbeddedBytes(
result: MethodChannel.Result,
mimeType: String,
displayName: String?,
embeddedByteStream: InputStream,
embeddedByteLength: Long,
) {
val extension = extensionFor(mimeType) val extension = extensionFor(mimeType)
val file = File.createTempFile("aves", extension, context.cacheDir).apply { val targetFile = File.createTempFile("aves", extension, context.cacheDir).apply {
deleteOnExit() deleteOnExit()
outputStream().use { output -> transferFrom(embeddedByteStream, embeddedByteLength)
embeddedByteStream.use { input ->
input.copyTo(output)
}
}
} }
val authority = "${context.applicationContext.packageName}.file_provider" val authority = "${context.applicationContext.packageName}.file_provider"
val uri = if (displayName != null) { val uri = if (displayName != null) {
// add extension to ease type identification when sharing this content // add extension to ease type identification when sharing this content
@ -208,9 +212,9 @@ class EmbeddedDataHandler(private val context: Context) : MethodCallHandler {
} else { } else {
"$displayName$extension" "$displayName$extension"
} }
FileProvider.getUriForFile(context, authority, file, displayNameWithExtension) FileProvider.getUriForFile(context, authority, targetFile, displayNameWithExtension)
} else { } else {
FileProvider.getUriForFile(context, authority, file) FileProvider.getUriForFile(context, authority, targetFile)
} }
val resultFields: FieldMap = hashMapOf( val resultFields: FieldMap = hashMapOf(
"uri" to uri.toString(), "uri" to uri.toString(),

View file

@ -3,16 +3,11 @@ package deckers.thibault.aves.channel.calls
import android.content.Context import android.content.Context
import android.graphics.Rect import android.graphics.Rect
import android.net.Uri import android.net.Uri
import com.bumptech.glide.Glide
import deckers.thibault.aves.channel.calls.Coresult.Companion.safe
import deckers.thibault.aves.channel.calls.Coresult.Companion.safeSuspend import deckers.thibault.aves.channel.calls.Coresult.Companion.safeSuspend
import deckers.thibault.aves.channel.calls.fetchers.RegionFetcher import deckers.thibault.aves.channel.calls.fetchers.RegionFetcher
import deckers.thibault.aves.channel.calls.fetchers.SvgRegionFetcher import deckers.thibault.aves.channel.calls.fetchers.SvgRegionFetcher
import deckers.thibault.aves.channel.calls.fetchers.ThumbnailFetcher import deckers.thibault.aves.channel.calls.fetchers.ThumbnailFetcher
import deckers.thibault.aves.channel.calls.fetchers.TiffRegionFetcher import deckers.thibault.aves.channel.calls.fetchers.TiffRegionFetcher
import deckers.thibault.aves.model.FieldMap
import deckers.thibault.aves.model.provider.ImageProvider.ImageOpCallback
import deckers.thibault.aves.model.provider.ImageProviderFactory.getProvider
import deckers.thibault.aves.utils.MimeTypes import deckers.thibault.aves.utils.MimeTypes
import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel
@ -23,7 +18,7 @@ import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlin.math.roundToInt import kotlin.math.roundToInt
class MediaFetchHandler(private val context: Context) : MethodCallHandler { class MediaFetchBytesHandler(private val context: Context) : MethodCallHandler {
private val ioScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) private val ioScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
private val density = context.resources.displayMetrics.density private val density = context.resources.displayMetrics.density
@ -31,34 +26,12 @@ class MediaFetchHandler(private val context: Context) : MethodCallHandler {
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) { override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
when (call.method) { when (call.method) {
"getEntry" -> ioScope.launch { safe(call, result, ::getEntry) }
"getThumbnail" -> ioScope.launch { safeSuspend(call, result, ::getThumbnail) } "getThumbnail" -> ioScope.launch { safeSuspend(call, result, ::getThumbnail) }
"getRegion" -> ioScope.launch { safeSuspend(call, result, ::getRegion) } "getRegion" -> ioScope.launch { safeSuspend(call, result, ::getRegion) }
"clearSizedThumbnailDiskCache" -> ioScope.launch { safe(call, result, ::clearSizedThumbnailDiskCache) }
else -> result.notImplemented() else -> result.notImplemented()
} }
} }
private fun getEntry(call: MethodCall, result: MethodChannel.Result) {
val mimeType = call.argument<String>("mimeType") // MIME type is optional
val uri = call.argument<String>("uri")?.let { Uri.parse(it) }
if (uri == null) {
result.error("getEntry-args", "missing arguments", null)
return
}
val provider = getProvider(uri)
if (provider == null) {
result.error("getEntry-provider", "failed to find provider for uri=$uri", null)
return
}
provider.fetchSingle(context, uri, mimeType, object : ImageOpCallback {
override fun onSuccess(fields: FieldMap) = result.success(fields)
override fun onFailure(throwable: Throwable) = result.error("getEntry-failure", "failed to get entry for uri=$uri", throwable.message)
})
}
private suspend fun getThumbnail(call: MethodCall, result: MethodChannel.Result) { private suspend fun getThumbnail(call: MethodCall, result: MethodChannel.Result) {
val uri = call.argument<String>("uri") val uri = call.argument<String>("uri")
val mimeType = call.argument<String>("mimeType") val mimeType = call.argument<String>("mimeType")
@ -77,17 +50,17 @@ class MediaFetchHandler(private val context: Context) : MethodCallHandler {
// convert DIP to physical pixels here, instead of using `devicePixelRatio` in Flutter // convert DIP to physical pixels here, instead of using `devicePixelRatio` in Flutter
ThumbnailFetcher( ThumbnailFetcher(
context, context = context,
uri, uri = uri,
mimeType, mimeType = mimeType,
dateModifiedSecs, dateModifiedSecs = dateModifiedSecs,
rotationDegrees, rotationDegrees = rotationDegrees,
isFlipped, isFlipped = isFlipped,
width = (widthDip * density).roundToInt(), width = (widthDip * density).roundToInt(),
height = (heightDip * density).roundToInt(), height = (heightDip * density).roundToInt(),
pageId = pageId, pageId = pageId,
defaultSize = (defaultSizeDip * density).roundToInt(), defaultSize = (defaultSizeDip * density).roundToInt(),
result, result = result,
).fetch() ).fetch()
} }
@ -137,12 +110,7 @@ class MediaFetchHandler(private val context: Context) : MethodCallHandler {
} }
} }
private fun clearSizedThumbnailDiskCache(@Suppress("unused_parameter") call: MethodCall, result: MethodChannel.Result) {
Glide.get(context).clearDiskCache()
result.success(null)
}
companion object { companion object {
const val CHANNEL = "deckers.thibault/aves/media_fetch" const val CHANNEL = "deckers.thibault/aves/media_fetch_bytes"
} }
} }

View file

@ -0,0 +1,57 @@
package deckers.thibault.aves.channel.calls
import android.content.Context
import android.net.Uri
import com.bumptech.glide.Glide
import deckers.thibault.aves.channel.calls.Coresult.Companion.safe
import deckers.thibault.aves.model.FieldMap
import deckers.thibault.aves.model.provider.ImageProvider.ImageOpCallback
import deckers.thibault.aves.model.provider.ImageProviderFactory.getProvider
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
class MediaFetchObjectHandler(private val context: Context) : MethodCallHandler {
private val ioScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
when (call.method) {
"getEntry" -> ioScope.launch { safe(call, result, ::getEntry) }
"clearSizedThumbnailDiskCache" -> ioScope.launch { safe(call, result, ::clearSizedThumbnailDiskCache) }
else -> result.notImplemented()
}
}
private fun getEntry(call: MethodCall, result: MethodChannel.Result) {
val mimeType = call.argument<String>("mimeType") // MIME type is optional
val uri = call.argument<String>("uri")?.let { Uri.parse(it) }
if (uri == null) {
result.error("getEntry-args", "missing arguments", null)
return
}
val provider = getProvider(uri)
if (provider == null) {
result.error("getEntry-provider", "failed to find provider for uri=$uri", null)
return
}
provider.fetchSingle(context, uri, mimeType, object : ImageOpCallback {
override fun onSuccess(fields: FieldMap) = result.success(fields)
override fun onFailure(throwable: Throwable) = result.error("getEntry-failure", "failed to get entry for uri=$uri", throwable.message)
})
}
private fun clearSizedThumbnailDiskCache(@Suppress("unused_parameter") call: MethodCall, result: MethodChannel.Result) {
Glide.get(context).clearDiskCache()
result.success(null)
}
companion object {
const val CHANNEL = "deckers.thibault/aves/media_fetch_object"
}
}

View file

@ -427,8 +427,9 @@ class MetadataFetchHandler(private val context: Context) : MethodCallHandler {
// - XMP / photoshop:DateCreated // - XMP / photoshop:DateCreated
// - PNG / TIME / LAST_MODIFICATION_TIME // - PNG / TIME / LAST_MODIFICATION_TIME
// - Video / METADATA_KEY_DATE // - Video / METADATA_KEY_DATE
// set `KEY_XMP_TITLE` from this field: // set `KEY_XMP_TITLE` from these fields (by precedence):
// - XMP / dc:title // - XMP / dc:title
// - IPTC / object-name
// set `KEY_XMP_SUBJECTS` from these fields (by precedence): // set `KEY_XMP_SUBJECTS` from these fields (by precedence):
// - XMP / dc:subject // - XMP / dc:subject
// - IPTC / keywords // - IPTC / keywords
@ -567,11 +568,16 @@ class MetadataFetchHandler(private val context: Context) : MethodCallHandler {
metadata.getDirectoriesOfType(XmpDirectory::class.java).map { it.xmpMeta }.forEach(::processXmp) metadata.getDirectoriesOfType(XmpDirectory::class.java).map { it.xmpMeta }.forEach(::processXmp)
// XMP fallback to IPTC // XMP fallback to IPTC
if (!metadataMap.containsKey(KEY_XMP_SUBJECTS)) { if (!metadataMap.containsKey(KEY_XMP_TITLE) || !metadataMap.containsKey(KEY_XMP_SUBJECTS)) {
for (dir in metadata.getDirectoriesOfType(IptcDirectory::class.java)) { for (dir in metadata.getDirectoriesOfType(IptcDirectory::class.java)) {
if (!metadataMap.containsKey(KEY_XMP_TITLE)) {
dir.getSafeString(IptcDirectory.TAG_OBJECT_NAME) { metadataMap[KEY_XMP_TITLE] = it }
}
if (!metadataMap.containsKey(KEY_XMP_SUBJECTS)) {
dir.keywords?.let { metadataMap[KEY_XMP_SUBJECTS] = it.joinToString(XMP_SUBJECTS_SEPARATOR) } dir.keywords?.let { metadataMap[KEY_XMP_SUBJECTS] = it.joinToString(XMP_SUBJECTS_SEPARATOR) }
} }
} }
}
when (mimeType) { when (mimeType) {
MimeTypes.PNG -> { MimeTypes.PNG -> {

View file

@ -23,7 +23,10 @@ import deckers.thibault.aves.utils.MimeTypes.needRotationAfterGlide
import deckers.thibault.aves.utils.StorageUtils import deckers.thibault.aves.utils.StorageUtils
import io.flutter.plugin.common.EventChannel import io.flutter.plugin.common.EventChannel
import io.flutter.plugin.common.EventChannel.EventSink import io.flutter.plugin.common.EventChannel.EventSink
import kotlinx.coroutines.* import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
import java.io.InputStream import java.io.InputStream
class ImageByteStreamHandler(private val context: Context, private val arguments: Any?) : EventChannel.StreamHandler { class ImageByteStreamHandler(private val context: Context, private val arguments: Any?) : EventChannel.StreamHandler {
@ -82,6 +85,7 @@ class ImageByteStreamHandler(private val context: Context, private val arguments
val mimeType = arguments["mimeType"] as String? val mimeType = arguments["mimeType"] as String?
val uri = (arguments["uri"] as String?)?.let { Uri.parse(it) } val uri = (arguments["uri"] as String?)?.let { Uri.parse(it) }
val sizeBytes = (arguments["sizeBytes"] as Number?)?.toLong()
val rotationDegrees = arguments["rotationDegrees"] as Int val rotationDegrees = arguments["rotationDegrees"] as Int
val isFlipped = arguments["isFlipped"] as Boolean val isFlipped = arguments["isFlipped"] as Boolean
val pageId = arguments["pageId"] as Int? val pageId = arguments["pageId"] as Int?
@ -96,7 +100,7 @@ class ImageByteStreamHandler(private val context: Context, private val arguments
streamVideoByGlide(uri, mimeType) streamVideoByGlide(uri, mimeType)
} else if (!canDecodeWithFlutter(mimeType, rotationDegrees, isFlipped)) { } else if (!canDecodeWithFlutter(mimeType, rotationDegrees, isFlipped)) {
// decode exotic format on platform side, then encode it in portable format for Flutter // decode exotic format on platform side, then encode it in portable format for Flutter
streamImageByGlide(uri, pageId, mimeType, rotationDegrees, isFlipped) streamImageByGlide(uri, pageId, mimeType, sizeBytes, rotationDegrees, isFlipped)
} else { } else {
// to be decoded by Flutter // to be decoded by Flutter
streamImageAsIs(uri, mimeType) streamImageAsIs(uri, mimeType)
@ -112,13 +116,20 @@ class ImageByteStreamHandler(private val context: Context, private val arguments
} }
} }
private suspend fun streamImageByGlide(uri: Uri, pageId: Int?, mimeType: String, rotationDegrees: Int, isFlipped: Boolean) { private suspend fun streamImageByGlide(
uri: Uri,
pageId: Int?,
mimeType: String,
sizeBytes: Long?,
rotationDegrees: Int,
isFlipped: Boolean,
) {
val model: Any = if (isHeic(mimeType) && pageId != null) { val model: Any = if (isHeic(mimeType) && pageId != null) {
MultiTrackImage(context, uri, pageId) MultiTrackImage(context, uri, pageId)
} else if (mimeType == MimeTypes.TIFF) { } else if (mimeType == MimeTypes.TIFF) {
TiffImage(context, uri, pageId) TiffImage(context, uri, pageId)
} else { } else {
StorageUtils.getGlideSafeUri(context, uri, mimeType) StorageUtils.getGlideSafeUri(context, uri, mimeType, sizeBytes)
} }
val target = Glide.with(context) val target = Glide.with(context)

View file

@ -3,6 +3,7 @@ package deckers.thibault.aves.metadata
import android.content.Context import android.content.Context
import android.net.Uri import android.net.Uri
import androidx.exifinterface.media.ExifInterface import androidx.exifinterface.media.ExifInterface
import deckers.thibault.aves.utils.FileUtils.transferFrom
import deckers.thibault.aves.utils.MimeTypes import deckers.thibault.aves.utils.MimeTypes
import deckers.thibault.aves.utils.StorageUtils import deckers.thibault.aves.utils.StorageUtils
import java.io.File import java.io.File
@ -122,7 +123,7 @@ object Metadata {
// we try and read metadata from large files by copying an arbitrary amount from its beginning // we try and read metadata from large files by copying an arbitrary amount from its beginning
// to a temporary file, and reusing that preview file for all metadata reading purposes // to a temporary file, and reusing that preview file for all metadata reading purposes
private const val previewSize = 5 * (1 shl 20) // MB private const val previewSize: Long = 5 * (1 shl 20) // MB
private val previewFiles = HashMap<Uri, File>() private val previewFiles = HashMap<Uri, File>()
@ -155,13 +156,7 @@ object Metadata {
fun createPreviewFile(context: Context, uri: Uri): File { fun createPreviewFile(context: Context, uri: Uri): File {
return File.createTempFile("aves", null, context.cacheDir).apply { return File.createTempFile("aves", null, context.cacheDir).apply {
deleteOnExit() deleteOnExit()
outputStream().use { output -> transferFrom(StorageUtils.openInputStream(context, uri), previewSize)
StorageUtils.openInputStream(context, uri)?.use { input ->
val b = ByteArray(previewSize)
input.read(b, 0, previewSize)
output.write(b)
}
}
} }
} }

View file

@ -11,6 +11,15 @@ class AvesEntry(map: FieldMap) {
val height = map["height"] as Int val height = map["height"] as Int
val rotationDegrees = map["rotationDegrees"] as Int val rotationDegrees = map["rotationDegrees"] as Int
val isFlipped = map["isFlipped"] as Boolean val isFlipped = map["isFlipped"] as Boolean
val sizeBytes = toLong(map["sizeBytes"])
val trashed = map["trashed"] as Boolean val trashed = map["trashed"] as Boolean
val trashPath = map["trashPath"] as String? val trashPath = map["trashPath"] as String?
companion object {
// convenience method
private fun toLong(o: Any?): Long? = when (o) {
is Int -> o.toLong()
else -> o as? Long
}
}
} }

View file

@ -258,7 +258,6 @@ class SourceEntry {
} }
} }
companion object { companion object {
// convenience method // convenience method
private fun toLong(o: Any?): Long? = when (o) { private fun toLong(o: Any?): Long? = when (o) {

View file

@ -29,6 +29,8 @@ import deckers.thibault.aves.model.ExifOrientationOp
import deckers.thibault.aves.model.FieldMap import deckers.thibault.aves.model.FieldMap
import deckers.thibault.aves.model.NameConflictStrategy import deckers.thibault.aves.model.NameConflictStrategy
import deckers.thibault.aves.utils.* import deckers.thibault.aves.utils.*
import deckers.thibault.aves.utils.FileUtils.transferFrom
import deckers.thibault.aves.utils.FileUtils.transferTo
import deckers.thibault.aves.utils.MimeTypes.canEditExif import deckers.thibault.aves.utils.MimeTypes.canEditExif
import deckers.thibault.aves.utils.MimeTypes.canEditIptc import deckers.thibault.aves.utils.MimeTypes.canEditIptc
import deckers.thibault.aves.utils.MimeTypes.canEditXmp import deckers.thibault.aves.utils.MimeTypes.canEditXmp
@ -178,7 +180,7 @@ abstract class ImageProvider {
} else if (sourceMimeType == MimeTypes.SVG) { } else if (sourceMimeType == MimeTypes.SVG) {
SvgImage(activity, sourceUri) SvgImage(activity, sourceUri)
} else { } else {
StorageUtils.getGlideSafeUri(activity, sourceUri, sourceMimeType) StorageUtils.getGlideSafeUri(activity, sourceUri, sourceMimeType, sourceEntry.sizeBytes)
} }
// request a fresh image with the highest quality format // request a fresh image with the highest quality format
@ -298,11 +300,7 @@ abstract class ImageProvider {
} else { } else {
val editableFile = File.createTempFile("aves", null).apply { val editableFile = File.createTempFile("aves", null).apply {
deleteOnExit() deleteOnExit()
outputStream().use { output -> transferFrom(ByteArrayInputStream(bytes), bytes.size.toLong())
ByteArrayInputStream(bytes).use { imageInput ->
imageInput.copyTo(output)
}
}
} }
val exif = ExifInterface(editableFile) val exif = ExifInterface(editableFile)
@ -425,7 +423,6 @@ abstract class ImageProvider {
val editableFile = File.createTempFile("aves", null).apply { val editableFile = File.createTempFile("aves", null).apply {
deleteOnExit() deleteOnExit()
try { try {
outputStream().use { output ->
if (videoSize != null) { if (videoSize != null) {
// handle motion photo and embedded video separately // handle motion photo and embedded video separately
val imageSize = (originalFileSize - videoSize).toInt() val imageSize = (originalFileSize - videoSize).toInt()
@ -438,16 +435,12 @@ abstract class ImageProvider {
// copy only the image to a temporary file for editing // copy only the image to a temporary file for editing
// video will be appended after metadata modification // video will be appended after metadata modification
ByteArrayInputStream(imageBytes).use { imageInput -> transferFrom(ByteArrayInputStream(imageBytes), imageBytes.size.toLong())
imageInput.copyTo(output)
}
} }
} else { } else {
// copy original file to a temporary file for editing // copy original file to a temporary file for editing
StorageUtils.openInputStream(context, uri)?.use { imageInput -> val inputStream = StorageUtils.openInputStream(context, uri)
imageInput.copyTo(output) transferFrom(inputStream, originalFileSize)
}
}
} }
} catch (e: Exception) { } catch (e: Exception) {
callback.onFailure(e) callback.onFailure(e)
@ -464,7 +457,7 @@ abstract class ImageProvider {
} }
// copy the edited temporary file back to the original // copy the edited temporary file back to the original
copyTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path) copyFileTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path)
if (autoCorrectTrailerOffset && !checkTrailerOffset(context, path, uri, mimeType, videoSize, editableFile, callback)) { if (autoCorrectTrailerOffset && !checkTrailerOffset(context, path, uri, mimeType, videoSize, editableFile, callback)) {
return false return false
@ -498,7 +491,6 @@ abstract class ImageProvider {
val editableFile = File.createTempFile("aves", null).apply { val editableFile = File.createTempFile("aves", null).apply {
deleteOnExit() deleteOnExit()
try { try {
outputStream().use { output ->
if (videoSize != null) { if (videoSize != null) {
// handle motion photo and embedded video separately // handle motion photo and embedded video separately
val imageSize = (originalFileSize - videoSize).toInt() val imageSize = (originalFileSize - videoSize).toInt()
@ -511,16 +503,12 @@ abstract class ImageProvider {
// copy only the image to a temporary file for editing // copy only the image to a temporary file for editing
// video will be appended after metadata modification // video will be appended after metadata modification
ByteArrayInputStream(imageBytes).use { imageInput -> transferFrom(ByteArrayInputStream(imageBytes), imageBytes.size.toLong())
imageInput.copyTo(output)
}
} }
} else { } else {
// copy original file to a temporary file for editing // copy original file to a temporary file for editing
StorageUtils.openInputStream(context, uri)?.use { imageInput -> val inputStream = StorageUtils.openInputStream(context, uri)
imageInput.copyTo(output) transferFrom(inputStream, originalFileSize)
}
}
} }
} catch (e: Exception) { } catch (e: Exception) {
callback.onFailure(e) callback.onFailure(e)
@ -551,7 +539,7 @@ abstract class ImageProvider {
} }
// copy the edited temporary file back to the original // copy the edited temporary file back to the original
copyTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path) copyFileTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path)
if (autoCorrectTrailerOffset && !checkTrailerOffset(context, path, uri, mimeType, videoSize, editableFile, callback)) { if (autoCorrectTrailerOffset && !checkTrailerOffset(context, path, uri, mimeType, videoSize, editableFile, callback)) {
return false return false
@ -626,7 +614,7 @@ abstract class ImageProvider {
try { try {
// copy the edited temporary file back to the original // copy the edited temporary file back to the original
copyTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path) copyFileTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path)
if (autoCorrectTrailerOffset && !checkTrailerOffset(context, path, uri, mimeType, videoSize, editableFile, callback)) { if (autoCorrectTrailerOffset && !checkTrailerOffset(context, path, uri, mimeType, videoSize, editableFile, callback)) {
return false return false
@ -926,26 +914,13 @@ abstract class ImageProvider {
callback.onFailure(Exception("failed to get trailer video size")) callback.onFailure(Exception("failed to get trailer video size"))
return return
} }
val bytesToCopy = originalFileSize - videoSize
val editableFile = File.createTempFile("aves", null).apply { val editableFile = File.createTempFile("aves", null).apply {
deleteOnExit() deleteOnExit()
try { try {
outputStream().use { output -> val inputStream = StorageUtils.openInputStream(context, uri)
// reopen input to read from start
StorageUtils.openInputStream(context, uri)?.use { input ->
// partial copy // partial copy
var bytesRemaining: Long = bytesToCopy transferFrom(inputStream, originalFileSize - videoSize)
val buffer = ByteArray(DEFAULT_BUFFER_SIZE)
var bytes = input.read(buffer)
while (bytes >= 0 && bytesRemaining > 0) {
val len = if (bytes > bytesRemaining) bytesRemaining.toInt() else bytes
output.write(buffer, 0, len)
bytesRemaining -= len
bytes = input.read(buffer)
}
}
}
} catch (e: Exception) { } catch (e: Exception) {
Log.d(LOG_TAG, "failed to remove trailer video", e) Log.d(LOG_TAG, "failed to remove trailer video", e)
callback.onFailure(e) callback.onFailure(e)
@ -955,7 +930,7 @@ abstract class ImageProvider {
try { try {
// copy the edited temporary file back to the original // copy the edited temporary file back to the original
copyTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path) copyFileTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path)
} catch (e: IOException) { } catch (e: IOException) {
callback.onFailure(e) callback.onFailure(e)
return return
@ -998,7 +973,7 @@ abstract class ImageProvider {
try { try {
// copy the edited temporary file back to the original // copy the edited temporary file back to the original
copyTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path) copyFileTo(context, mimeType, sourceFile = editableFile, targetUri = uri, targetPath = path)
if (!types.contains(Metadata.TYPE_XMP) && !checkTrailerOffset(context, path, uri, mimeType, videoSize, editableFile, callback)) { if (!types.contains(Metadata.TYPE_XMP) && !checkTrailerOffset(context, path, uri, mimeType, videoSize, editableFile, callback)) {
return return
@ -1012,14 +987,13 @@ abstract class ImageProvider {
scanPostMetadataEdit(context, path, uri, mimeType, newFields, callback) scanPostMetadataEdit(context, path, uri, mimeType, newFields, callback)
} }
private fun copyTo( private fun copyFileTo(
context: Context, context: Context,
mimeType: String, mimeType: String,
sourceFile: File, sourceFile: File,
targetUri: Uri, targetUri: Uri,
targetPath: String targetPath: String
) { ) {
sourceFile.inputStream().use { input ->
// truncate is necessary when overwriting a longer file // truncate is necessary when overwriting a longer file
val targetStream = if (isMediaUriPermissionGranted(context, targetUri, mimeType)) { val targetStream = if (isMediaUriPermissionGranted(context, targetUri, mimeType)) {
StorageUtils.openOutputStream(context, targetUri, mimeType, "wt") ?: throw Exception("failed to open output stream for uri=$targetUri") StorageUtils.openOutputStream(context, targetUri, mimeType, "wt") ?: throw Exception("failed to open output stream for uri=$targetUri")
@ -1027,10 +1001,7 @@ abstract class ImageProvider {
val documentUri = StorageUtils.getDocumentFile(context, targetPath, targetUri)?.uri ?: throw Exception("failed to get document file for path=$targetPath, uri=$targetUri") val documentUri = StorageUtils.getDocumentFile(context, targetPath, targetUri)?.uri ?: throw Exception("failed to get document file for path=$targetPath, uri=$targetUri")
context.contentResolver.openOutputStream(documentUri, "wt") ?: throw Exception("failed to open output stream from documentUri=$documentUri for path=$targetPath, uri=$targetUri") context.contentResolver.openOutputStream(documentUri, "wt") ?: throw Exception("failed to open output stream from documentUri=$documentUri for path=$targetPath, uri=$targetUri")
} }
targetStream.use { output -> sourceFile.transferTo(targetStream)
input.copyTo(output)
}
}
} }
interface ImageOpCallback { interface ImageOpCallback {

View file

@ -56,7 +56,7 @@ class MediaStoreImageProvider : ImageProvider() {
val relativePath = PathSegments(context, relativePathDirectory).relativeDir val relativePath = PathSegments(context, relativePathDirectory).relativeDir
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && relativePath != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && relativePath != null) {
selection = "${MediaStore.MediaColumns.RELATIVE_PATH} = ? AND ${MediaColumns.PATH} LIKE ?" selection = "${MediaStore.MediaColumns.RELATIVE_PATH} = ? AND ${MediaColumns.PATH} LIKE ?"
selectionArgs = arrayOf(relativePath, "relativePathDirectory%") selectionArgs = arrayOf(relativePath, "$relativePathDirectory%")
} else { } else {
selection = "${MediaColumns.PATH} LIKE ?" selection = "${MediaColumns.PATH} LIKE ?"
selectionArgs = arrayOf("$relativePathDirectory%") selectionArgs = arrayOf("$relativePathDirectory%")

View file

@ -54,9 +54,8 @@ object BmpWriter {
val padPerRow = (4 - (biWidth * BYTE_PER_PIXEL) % 4) % 4 val padPerRow = (4 - (biWidth * BYTE_PER_PIXEL) % 4) % 4
val biSizeImage = (biWidth * BYTE_PER_PIXEL + padPerRow) * biHeight val biSizeImage = (biWidth * BYTE_PER_PIXEL + padPerRow) * biHeight
val bfSize = FILE_HEADER_SIZE + INFO_HEADER_SIZE + biSizeImage val bfSize = FILE_HEADER_SIZE + INFO_HEADER_SIZE + biSizeImage
val buffer = ByteBuffer.allocate(bfSize)
val pixels = IntArray(biWidth * biHeight) var buffer = ByteBuffer.allocate(FILE_HEADER_SIZE + INFO_HEADER_SIZE)
bitmap.getPixels(pixels, 0, biWidth, 0, 0, biWidth, biHeight)
// file header // file header
buffer.put(bfType) buffer.put(bfType)
@ -78,11 +77,17 @@ object BmpWriter {
buffer.put(biClrUsed) buffer.put(biClrUsed)
buffer.put(biClrImportant) buffer.put(biClrImportant)
outputStream.write(buffer.array())
// pixels // pixels
buffer = ByteBuffer.allocate(biWidth * BYTE_PER_PIXEL + padPerRow)
val pixels = IntArray(biWidth)
val rgb = ByteArray(BYTE_PER_PIXEL) val rgb = ByteArray(BYTE_PER_PIXEL)
var value: Int var value: Int
var row = biHeight - 1 var row = biHeight - 1
while (row >= 0) { while (row >= 0) {
bitmap.getPixels(pixels, 0, biWidth, 0, row, biWidth, 1)
var column = 0 var column = 0
while (column < biWidth) { while (column < biWidth) {
/* /*
@ -91,7 +96,7 @@ object BmpWriter {
green: (value shr 8 and 0xFF).toByte() green: (value shr 8 and 0xFF).toByte()
blue: (value and 0xFF).toByte() blue: (value and 0xFF).toByte()
*/ */
value = pixels[row * biWidth + column] value = pixels[column]
// blue: [0], green: [1], red: [2] // blue: [0], green: [1], red: [2]
rgb[0] = (value and 0xFF).toByte() rgb[0] = (value and 0xFF).toByte()
rgb[1] = (value shr 8 and 0xFF).toByte() rgb[1] = (value shr 8 and 0xFF).toByte()
@ -102,10 +107,9 @@ object BmpWriter {
if (padPerRow > 0) { if (padPerRow > 0) {
buffer.put(pad, 0, padPerRow) buffer.put(pad, 0, padPerRow)
} }
outputStream.write(buffer.array())
buffer.clear()
row-- row--
} }
// write to output stream
outputStream.write(buffer.array())
} }
} }

View file

@ -0,0 +1,45 @@
package deckers.thibault.aves.utils
import android.os.Build
import java.io.File
import java.io.InputStream
import java.io.OutputStream
import java.nio.channels.Channels
import java.nio.channels.FileChannel
import java.nio.file.StandardOpenOption
object FileUtils {
fun File.transferFrom(inputStream: InputStream?, streamLength: Long?) {
inputStream ?: return
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && streamLength != null) {
FileChannel.open(toPath(), StandardOpenOption.WRITE).use { fileOutput ->
Channels.newChannel(inputStream).use { input ->
fileOutput.transferFrom(input, 0, streamLength)
}
}
} else {
outputStream().use { fileOutput ->
inputStream.use { input ->
input.copyTo(fileOutput)
}
}
}
}
fun File.transferTo(outputStream: OutputStream) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
FileChannel.open(toPath()).use { fileInput ->
Channels.newChannel(outputStream).use { output ->
fileInput.transferTo(0, fileInput.size(), output)
}
}
} else {
inputStream().use { fileInput ->
outputStream.use { output ->
fileInput.copyTo(output)
}
}
}
}
}

View file

@ -171,6 +171,7 @@ object PermissionManager {
// returns paths accessible to the app (granted by the user or by default) // returns paths accessible to the app (granted by the user or by default)
private fun getAccessibleDirs(context: Context): Set<String> { private fun getAccessibleDirs(context: Context): Set<String> {
val accessibleDirs = HashSet(getGrantedDirs(context)) val accessibleDirs = HashSet(getGrantedDirs(context))
accessibleDirs.addAll(context.getExternalFilesDirs(null).filterNotNull().map { it.path })
// until API 18 / Android 4.3 / Jelly Bean MR2, removable storage is accessible by default like primary storage // until API 18 / Android 4.3 / Jelly Bean MR2, removable storage is accessible by default like primary storage
// from API 19 / Android 4.4 / KitKat, removable storage requires access permission, at the file level // from API 19 / Android 4.4 / KitKat, removable storage requires access permission, at the file level

View file

@ -16,6 +16,7 @@ import android.text.TextUtils
import android.util.Log import android.util.Log
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import com.commonsware.cwac.document.DocumentFileCompat import com.commonsware.cwac.document.DocumentFileCompat
import deckers.thibault.aves.utils.FileUtils.transferFrom
import deckers.thibault.aves.utils.MimeTypes.isImage import deckers.thibault.aves.utils.MimeTypes.isImage
import deckers.thibault.aves.utils.MimeTypes.isVideo import deckers.thibault.aves.utils.MimeTypes.isVideo
import deckers.thibault.aves.utils.PermissionManager.getGrantedDirForPath import deckers.thibault.aves.utils.PermissionManager.getGrantedDirForPath
@ -507,7 +508,7 @@ object StorageUtils {
// to work around a bug from Android 10 where metadata redaction corrupts HEIC images. // to work around a bug from Android 10 where metadata redaction corrupts HEIC images.
// This loader relies on `MediaStore.setRequireOriginal` but this yields a `SecurityException` // This loader relies on `MediaStore.setRequireOriginal` but this yields a `SecurityException`
// for some non image/video content URIs (e.g. `downloads`, `file`) // for some non image/video content URIs (e.g. `downloads`, `file`)
fun getGlideSafeUri(context: Context, uri: Uri, mimeType: String): Uri { fun getGlideSafeUri(context: Context, uri: Uri, mimeType: String, sizeBytes: Long? = null): Uri {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && isMediaStoreContentUri(uri)) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && isMediaStoreContentUri(uri)) {
val uriPath = uri.path val uriPath = uri.path
when { when {
@ -521,11 +522,7 @@ object StorageUtils {
File.createTempFile("aves", null).apply { File.createTempFile("aves", null).apply {
deleteOnExit() deleteOnExit()
try { try {
outputStream().use { output -> transferFrom(openInputStream(context, uri), sizeBytes)
openInputStream(context, uri)?.use { input ->
input.copyTo(output)
}
}
return Uri.fromFile(this) return Uri.fromFile(this)
} catch (e: Exception) { } catch (e: Exception) {
Log.e(LOG_TAG, "failed to create temporary file from uri=$uri", e) Log.e(LOG_TAG, "failed to create temporary file from uri=$uri", e)

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Aves</string>
<string name="app_widget_label">Κορνίζα</string>
<string name="wallpaper">Ταπετσαρία</string>
<string name="search_shortcut_short_label">Αναζήτηση</string>
<string name="videos_shortcut_short_label">Βίντεο</string>
<string name="analysis_channel_name">Σάρωση πολυμέσων</string>
<string name="analysis_service_description">Σάρωση εικόνων &amp; Βίντεο</string>
<string name="analysis_notification_default_title">Σάρωση στοιχείων</string>
<string name="analysis_notification_action_stop">Διακοπή</string>
</resources>

View file

@ -10,8 +10,8 @@ buildscript {
classpath 'com.android.tools.build:gradle:7.2.2' classpath 'com.android.tools.build:gradle:7.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// GMS & Firebase Crashlytics (used by some flavors only) // GMS & Firebase Crashlytics (used by some flavors only)
classpath 'com.google.gms:google-services:4.3.13' classpath 'com.google.gms:google-services:4.3.14'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
// HMS (used by some flavors only) // HMS (used by some flavors only)
classpath 'com.huawei.agconnect:agcp:1.5.2.300' classpath 'com.huawei.agconnect:agcp:1.5.2.300'
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View file

@ -0,0 +1,5 @@
Η εφαρμογή <i>Aves</i> μπορεί να διαχειριστεί όλα τα είδη εικόνων και βίντεο, συμπεριλαμβανομένων των κλασσικών JPEG και MP4, αλλά και πιο προχωρημένα πράγματα όπως <b>multi-page TIFFs, SVGs, old AVIs και ακόμα περισσότερα</b>! Σαρώνει τη συλλογή των πολυμέσων σας για να αναγνωρίσει <b>Φωτογραφίες με κίνηση</b>, <b>Πανοραμικές</b> (aka photo spheres), <b>Βίντεο 360°</b>, καθώς και <b>GeoTIFF</b> αρχεία.
<b>Η πλοήγηση και η αναζήτηση</b> αποτελούν σημαντικό μέρος της εφαρμογής <i>Aves</i>. Ο στόχος της εφαρμογής είναι να παρέχει στους χρήστες εύκολη και γρήγορη πρόσβαση στα άλμπουμ, σε φωτογραφίες, ετικέτες, χάρτες κ.λπ.
Η εφαρμογή <i>Aves</i> εγκαθίσταται στο λογισμικό Android (συμβατότητα από <b>API 19 έως 33</b>, δηλαδή από KitKat έως Android 13) με δυνατότητες όπως <b>γραφικά στοιχεία</b>, <b>συντομεύσεις</b>, <b>προφύλαξη οθόνης</b> και <b>global search</b>. Μπορεί επίσης να χρησιμοποιηθεί ως <b>εφαρμογή προβολής και επιλογής πολυμέσων</b>.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

View file

@ -0,0 +1 @@
Συλλογή φωτογραφιών και εξερεύνηση των μεταδεδομένων.

View file

@ -0,0 +1,5 @@
In v1.7.0:
- change the sort order
- edit image titles
- enjoy the app in Greek
Full changelog available on GitHub

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View file

@ -12,7 +12,7 @@ class TopoJson {
static Topology? _isoParse(String jsonData) { static Topology? _isoParse(String jsonData) {
try { try {
final data = json.decode(jsonData) as Map<String, dynamic>; final data = jsonDecode(jsonData) as Map<String, dynamic>;
return Topology.parse(data); return Topology.parse(data);
} catch (error, stack) { } catch (error, stack) {
// an unhandled error in a spawn isolate would make the app crash // an unhandled error in a spawn isolate would make the app crash

View file

@ -9,7 +9,7 @@ import 'package:flutter/widgets.dart';
@immutable @immutable
class UriImage extends ImageProvider<UriImage> with EquatableMixin { class UriImage extends ImageProvider<UriImage> with EquatableMixin {
final String uri, mimeType; final String uri, mimeType;
final int? pageId, rotationDegrees, expectedContentLength; final int? pageId, rotationDegrees, sizeBytes;
final bool isFlipped; final bool isFlipped;
final double scale; final double scale;
@ -22,7 +22,7 @@ class UriImage extends ImageProvider<UriImage> with EquatableMixin {
required this.pageId, required this.pageId,
required this.rotationDegrees, required this.rotationDegrees,
required this.isFlipped, required this.isFlipped,
this.expectedContentLength, this.sizeBytes,
this.scale = 1.0, this.scale = 1.0,
}); });
@ -55,7 +55,7 @@ class UriImage extends ImageProvider<UriImage> with EquatableMixin {
rotationDegrees, rotationDegrees,
isFlipped, isFlipped,
pageId: pageId, pageId: pageId,
expectedContentLength: expectedContentLength, sizeBytes: sizeBytes,
onBytesReceived: (cumulative, total) { onBytesReceived: (cumulative, total) {
chunkEvents.add(ImageChunkEvent( chunkEvents.add(ImageChunkEvent(
cumulativeBytesLoaded: cumulative, cumulativeBytesLoaded: cumulative,

View file

@ -27,6 +27,7 @@
"actionRemove": "Entfernen", "actionRemove": "Entfernen",
"resetTooltip": "Zurücksetzen", "resetTooltip": "Zurücksetzen",
"saveTooltip": "Speichern", "saveTooltip": "Speichern",
"pickTooltip": "Wähle",
"doubleBackExitMessage": "Zum Verlassen erneut auf „Zurück“ tippen.", "doubleBackExitMessage": "Zum Verlassen erneut auf „Zurück“ tippen.",
"doNotAskAgain": "Nicht noch einmal fragen", "doNotAskAgain": "Nicht noch einmal fragen",
@ -87,18 +88,17 @@
"entryInfoActionEditDate": "Datum & Uhrzeit bearbeiten", "entryInfoActionEditDate": "Datum & Uhrzeit bearbeiten",
"entryInfoActionEditLocation": "Standort bearbeiten", "entryInfoActionEditLocation": "Standort bearbeiten",
"entryInfoActionEditDescription": "Beschreibung bearbeiten",
"entryInfoActionEditRating": "Bewertung bearbeiten", "entryInfoActionEditRating": "Bewertung bearbeiten",
"entryInfoActionEditTags": "Tags bearbeiten", "entryInfoActionEditTags": "Tags bearbeiten",
"entryInfoActionRemoveMetadata": "Metadaten entfernen", "entryInfoActionRemoveMetadata": "Metadaten entfernen",
"filterBinLabel": "Papierkorb", "filterBinLabel": "Papierkorb",
"filterFavouriteLabel": "Favorit", "filterFavouriteLabel": "Favorit",
"filterLocationEmptyLabel": "Ungeortet", "filterNoLocationLabel": "Ungeortet",
"filterTagEmptyLabel": "Unmarkiert", "filterNoRatingLabel": "Nicht bewertet",
"filterNoTagLabel": "Unmarkiert",
"filterOnThisDayLabel": "Am heutigen Tag", "filterOnThisDayLabel": "Am heutigen Tag",
"filterRecentlyAddedLabel": "Kürzlich hinzugefügt", "filterRecentlyAddedLabel": "Kürzlich hinzugefügt",
"filterRatingUnratedLabel": "Nicht bewertet",
"filterRatingRejectedLabel": "Verworfen", "filterRatingRejectedLabel": "Verworfen",
"filterTypeAnimatedLabel": "Animationen", "filterTypeAnimatedLabel": "Animationen",
"filterTypeMotionPhotoLabel": "Bewegtes Foto", "filterTypeMotionPhotoLabel": "Bewegtes Foto",
@ -179,16 +179,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "SD-Karte", "storageVolumeDescriptionFallbackNonPrimary": "SD-Karte",
"rootDirectoryDescription": "Hauptverzeichnis", "rootDirectoryDescription": "Hauptverzeichnis",
"otherDirectoryDescription": "„{name}“ Verzeichnis", "otherDirectoryDescription": "„{name}“ Verzeichnis",
"storageAccessDialogTitle": "Speicherzugriff",
"storageAccessDialogMessage": "Bitte den {directory} von „{volume}“ auf dem nächsten Bildschirm auswählen, um dieser App Zugriff darauf zu geben.", "storageAccessDialogMessage": "Bitte den {directory} von „{volume}“ auf dem nächsten Bildschirm auswählen, um dieser App Zugriff darauf zu geben.",
"restrictedAccessDialogTitle": "Eingeschränkter Zugang",
"restrictedAccessDialogMessage": "Diese Anwendung darf keine Dateien im {directory} von „{volume}“ verändern.\n\nBitte einen vorinstallierten Dateimanager verwenden oder eine Galerie-App, um die Objekte in ein anderes Verzeichnis zu verschieben.", "restrictedAccessDialogMessage": "Diese Anwendung darf keine Dateien im {directory} von „{volume}“ verändern.\n\nBitte einen vorinstallierten Dateimanager verwenden oder eine Galerie-App, um die Objekte in ein anderes Verzeichnis zu verschieben.",
"notEnoughSpaceDialogTitle": "Nicht genug Platz",
"notEnoughSpaceDialogMessage": "Diese Operation benötigt {neededSize} freien Platz auf „{volume}“, um abgeschlossen zu werden, aber es ist nur noch {freeSize} übrig.", "notEnoughSpaceDialogMessage": "Diese Operation benötigt {neededSize} freien Platz auf „{volume}“, um abgeschlossen zu werden, aber es ist nur noch {freeSize} übrig.",
"missingSystemFilePickerDialogTitle": "Fehlender System-Dateiauswahldialog",
"missingSystemFilePickerDialogMessage": "Der System-Dateiauswahldialog fehlt oder ist deaktiviert. Bitte aktivieren und es erneut versuchen.", "missingSystemFilePickerDialogMessage": "Der System-Dateiauswahldialog fehlt oder ist deaktiviert. Bitte aktivieren und es erneut versuchen.",
"unsupportedTypeDialogTitle": "Nicht unterstützte Typen",
"unsupportedTypeDialogMessage": "{count, plural, =1{Dieser Vorgang wird für Elemente des folgenden Typs nicht unterstützt: {types}.} other{Dieser Vorgang wird für Elemente der folgenden Typen nicht unterstützt: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, =1{Dieser Vorgang wird für Elemente des folgenden Typs nicht unterstützt: {types}.} other{Dieser Vorgang wird für Elemente der folgenden Typen nicht unterstützt: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Einige Dateien im Zielordner haben den gleichen Namen.", "nameConflictDialogSingleSourceMessage": "Einige Dateien im Zielordner haben den gleichen Namen.",
@ -197,7 +192,6 @@
"addShortcutDialogLabel": "Shortcut-Etikett", "addShortcutDialogLabel": "Shortcut-Etikett",
"addShortcutButtonLabel": "Hinzufügen", "addShortcutButtonLabel": "Hinzufügen",
"noMatchingAppDialogTitle": "Keine passende App",
"noMatchingAppDialogMessage": "Es gibt keine Anwendungen, die dies bewältigen können.", "noMatchingAppDialogMessage": "Es gibt keine Anwendungen, die dies bewältigen können.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Dieses Element in den Papierkorb verschieben?} other{Diese {count} Elemente in den Papierkorb verschieben?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Dieses Element in den Papierkorb verschieben?} other{Diese {count} Elemente in den Papierkorb verschieben?}}",
@ -226,7 +220,7 @@
"renameEntrySetPageTitle": "Umbenennen", "renameEntrySetPageTitle": "Umbenennen",
"renameEntrySetPagePatternFieldLabel": "Benennungsmuster", "renameEntrySetPagePatternFieldLabel": "Benennungsmuster",
"renameEntrySetPageInsertTooltip": "Feld einfügen", "renameEntrySetPageInsertTooltip": "Feld einfügen",
"renameEntrySetPagePreview": "Vorschau", "renameEntrySetPagePreviewSectionTitle": "Vorschau",
"renameProcessorCounter": "Zähler", "renameProcessorCounter": "Zähler",
"renameProcessorName": "Name", "renameProcessorName": "Name",
@ -259,8 +253,6 @@
"locationPickerUseThisLocationButton": "Diesen Standort verwenden", "locationPickerUseThisLocationButton": "Diesen Standort verwenden",
"editEntryDescriptionDialogTitle": "Beschreibung",
"editEntryRatingDialogTitle": "Bewertung", "editEntryRatingDialogTitle": "Bewertung",
"removeEntryMetadataDialogTitle": "Entfernung von Metadaten", "removeEntryMetadataDialogTitle": "Entfernung von Metadaten",
@ -289,9 +281,9 @@
"menuActionSlideshow": "Diashow", "menuActionSlideshow": "Diashow",
"menuActionStats": "Statistiken", "menuActionStats": "Statistiken",
"viewDialogTabSort": "Sortieren", "viewDialogSortSectionTitle": "Sortieren",
"viewDialogTabGroup": "Gruppe", "viewDialogGroupSectionTitle": "Gruppe",
"viewDialogTabLayout": "Layout", "viewDialogLayoutSectionTitle": "Layout",
"tileLayoutGrid": "Kacheln", "tileLayoutGrid": "Kacheln",
"tileLayoutList": "Liste", "tileLayoutList": "Liste",
@ -308,24 +300,24 @@
"aboutLinkLicense": "Lizenz", "aboutLinkLicense": "Lizenz",
"aboutLinkPolicy": "Datenschutzrichtlinie", "aboutLinkPolicy": "Datenschutzrichtlinie",
"aboutBug": "Fehlerbericht", "aboutBugSectionTitle": "Fehlerbericht",
"aboutBugSaveLogInstruction": "Anwendungsprotokolle in einer Datei speichern", "aboutBugSaveLogInstruction": "Anwendungsprotokolle in einer Datei speichern",
"aboutBugCopyInfoInstruction": "Systeminformationen kopieren", "aboutBugCopyInfoInstruction": "Systeminformationen kopieren",
"aboutBugCopyInfoButton": "Kopieren", "aboutBugCopyInfoButton": "Kopieren",
"aboutBugReportInstruction": "Bericht auf GitHub mit den Protokollen und Systeminformationen", "aboutBugReportInstruction": "Bericht auf GitHub mit den Protokollen und Systeminformationen",
"aboutBugReportButton": "Bericht", "aboutBugReportButton": "Bericht",
"aboutCredits": "Credits", "aboutCreditsSectionTitle": "Credits",
"aboutCreditsWorldAtlas1": "Diese Anwendung verwendet eine TopoJSON-Datei von", "aboutCreditsWorldAtlas1": "Diese Anwendung verwendet eine TopoJSON-Datei von",
"aboutCreditsWorldAtlas2": "unter ISC-Lizenz.", "aboutCreditsWorldAtlas2": "unter ISC-Lizenz.",
"aboutCreditsTranslators": "Übersetzer", "aboutTranslatorsSectionTitle": "Übersetzer",
"aboutLicenses": "Open-Source-Lizenzen", "aboutLicensesSectionTitle": "Open-Source-Lizenzen",
"aboutLicensesBanner": "Diese Anwendung verwendet die folgenden Open-Source-Pakete und -Bibliotheken.", "aboutLicensesBanner": "Diese Anwendung verwendet die folgenden Open-Source-Pakete und -Bibliotheken.",
"aboutLicensesAndroidLibraries": "Android-Bibliotheken", "aboutLicensesAndroidLibrariesSectionTitle": "Android-Bibliotheken",
"aboutLicensesFlutterPlugins": "Flutter-Plugins", "aboutLicensesFlutterPluginsSectionTitle": "Flutter-Plugins",
"aboutLicensesFlutterPackages": "Flatter-Pakete", "aboutLicensesFlutterPackagesSectionTitle": "Flatter-Pakete",
"aboutLicensesDartPackages": "Dart-Pakete", "aboutLicensesDartPackagesSectionTitle": "Dart-Pakete",
"aboutLicensesShowAllButtonLabel": "Alle Lizenzen anzeigen", "aboutLicensesShowAllButtonLabel": "Alle Lizenzen anzeigen",
"policyPageTitle": "Datenschutzrichtlinie", "policyPageTitle": "Datenschutzrichtlinie",
@ -345,11 +337,6 @@
"collectionSearchTitlesHintText": "Titel suchen", "collectionSearchTitlesHintText": "Titel suchen",
"collectionSortDate": "Nach Datum",
"collectionSortSize": "Nach Größe",
"collectionSortName": "Nach Album & Dateiname",
"collectionSortRating": "Nach Bewertung",
"collectionGroupAlbum": "Nach Album", "collectionGroupAlbum": "Nach Album",
"collectionGroupMonth": "Nach Monat", "collectionGroupMonth": "Nach Monat",
"collectionGroupDay": "Nach Tag", "collectionGroupDay": "Nach Tag",
@ -378,6 +365,8 @@
"collectionSelectSectionTooltip": "Bereich auswählen", "collectionSelectSectionTooltip": "Bereich auswählen",
"collectionDeselectSectionTooltip": "Bereich abwählen", "collectionDeselectSectionTooltip": "Bereich abwählen",
"drawerAboutButton": "Über",
"drawerSettingsButton": "Einstellungen",
"drawerCollectionAll": "Alle Bilder", "drawerCollectionAll": "Alle Bilder",
"drawerCollectionFavourites": "Favoriten", "drawerCollectionFavourites": "Favoriten",
"drawerCollectionImages": "Bilder", "drawerCollectionImages": "Bilder",
@ -387,10 +376,16 @@
"drawerCollectionPanoramas": "Panoramen", "drawerCollectionPanoramas": "Panoramen",
"drawerCollectionRaws": "Rohdaten Fotos", "drawerCollectionRaws": "Rohdaten Fotos",
"drawerCollectionSphericalVideos": "360°-Videos", "drawerCollectionSphericalVideos": "360°-Videos",
"drawerAlbumPage": "Alben",
"drawerCountryPage": "Länder",
"drawerTagPage": "Tags",
"chipSortDate": "Nach Datum", "sortByDate": "Nach Datum",
"chipSortName": "Nach Name", "sortByName": "Nach Name",
"chipSortCount": "Nach Anzahl", "sortByItemCount": "Nach Anzahl",
"sortBySize": "Nach Größe",
"sortByAlbumFileName": "Nach Album & Dateiname",
"sortByRating": "Nach Bewertung",
"albumGroupTier": "Nach Ebene", "albumGroupTier": "Nach Ebene",
"albumGroupVolume": "Nach Speichervolumen", "albumGroupVolume": "Nach Speichervolumen",
@ -422,13 +417,13 @@
"binPageTitle": "Papierkorb", "binPageTitle": "Papierkorb",
"searchCollectionFieldHint": "Sammlung durchsuchen", "searchCollectionFieldHint": "Sammlung durchsuchen",
"searchSectionRecent": "Neueste", "searchRecentSectionTitle": "Neueste",
"searchSectionDate": "Datum", "searchDateSectionTitle": "Datum",
"searchSectionAlbums": "Alben", "searchAlbumsSectionTitle": "Alben",
"searchSectionCountries": "Länder", "searchCountriesSectionTitle": "Länder",
"searchSectionPlaces": "Orte", "searchPlacesSectionTitle": "Orte",
"searchSectionTags": "Tags", "searchTagsSectionTitle": "Tags",
"searchSectionRating": "Bewertungen", "searchRatingSectionTitle": "Bewertungen",
"settingsPageTitle": "Einstellungen", "settingsPageTitle": "Einstellungen",
"settingsSystemDefault": "System", "settingsSystemDefault": "System",
@ -437,37 +432,40 @@
"settingsSearchFieldLabel": "Einstellungen durchsuchen", "settingsSearchFieldLabel": "Einstellungen durchsuchen",
"settingsSearchEmpty": "Keine passende Einstellung", "settingsSearchEmpty": "Keine passende Einstellung",
"settingsActionExport": "Exportieren", "settingsActionExport": "Exportieren",
"settingsActionExportDialogTitle": "Exportieren",
"settingsActionImport": "Importieren", "settingsActionImport": "Importieren",
"settingsActionImportDialogTitle": "Importieren",
"appExportCovers": "Titelbilder", "appExportCovers": "Titelbilder",
"appExportFavourites": "Favoriten", "appExportFavourites": "Favoriten",
"appExportSettings": "Einstellungen", "appExportSettings": "Einstellungen",
"settingsSectionNavigation": "Navigation", "settingsNavigationSectionTitle": "Navigation",
"settingsHome": "Startseite", "settingsHomeTile": "Startseite",
"settingsHomeDialogTitle": "Startseite",
"settingsShowBottomNavigationBar": "Untere Navigationsleiste anzeigen", "settingsShowBottomNavigationBar": "Untere Navigationsleiste anzeigen",
"settingsKeepScreenOnTile": "Bildschirm eingeschaltet lassen", "settingsKeepScreenOnTile": "Bildschirm eingeschaltet lassen",
"settingsKeepScreenOnTitle": "Bildschirm eingeschaltet lassen", "settingsKeepScreenOnDialogTitle": "Bildschirm eingeschaltet lassen",
"settingsDoubleBackExit": "Zum Verlassen zweimal „zurück“ tippen", "settingsDoubleBackExit": "Zum Verlassen zweimal „zurück“ tippen",
"settingsConfirmationDialogTile": "Bestätigungsdialoge", "settingsConfirmationTile": "Bestätigungsdialoge",
"settingsConfirmationDialogTitle": "Bestätigungsdialoge", "settingsConfirmationDialogTitle": "Bestätigungsdialoge",
"settingsConfirmationDialogDeleteItems": "Vor dem endgültigen Löschen von Elementen fragen", "settingsConfirmationBeforeDeleteItems": "Vor dem endgültigen Löschen von Elementen fragen",
"settingsConfirmationDialogMoveToBinItems": "Vor dem Verschieben von Elementen in den Papierkorb fragen", "settingsConfirmationBeforeMoveToBinItems": "Vor dem Verschieben von Elementen in den Papierkorb fragen",
"settingsConfirmationDialogMoveUndatedItems": "Vor Verschiebung von Objekten ohne Metadaten-Datum fragen", "settingsConfirmationBeforeMoveUndatedItems": "Vor Verschiebung von Objekten ohne Metadaten-Datum fragen",
"settingsConfirmationAfterMoveToBinItems": "Nachricht nach dem Verschieben von Elementen in den Papierkorb anzeigen", "settingsConfirmationAfterMoveToBinItems": "Nachricht nach dem Verschieben von Elementen in den Papierkorb anzeigen",
"settingsNavigationDrawerTile": "Menü Navigation", "settingsNavigationDrawerTile": "Menü Navigation",
"settingsNavigationDrawerEditorTitle": "Menü Navigation", "settingsNavigationDrawerEditorPageTitle": "Menü Navigation",
"settingsNavigationDrawerBanner": "Die Taste berühren und halten, um Menüpunkte zu verschieben und neu anzuordnen.", "settingsNavigationDrawerBanner": "Die Taste berühren und halten, um Menüpunkte zu verschieben und neu anzuordnen.",
"settingsNavigationDrawerTabTypes": "Typen", "settingsNavigationDrawerTabTypes": "Typen",
"settingsNavigationDrawerTabAlbums": "Alben", "settingsNavigationDrawerTabAlbums": "Alben",
"settingsNavigationDrawerTabPages": "Seiten", "settingsNavigationDrawerTabPages": "Seiten",
"settingsNavigationDrawerAddAlbum": "Album hinzufügen", "settingsNavigationDrawerAddAlbum": "Album hinzufügen",
"settingsSectionThumbnails": "Vorschaubilder", "settingsThumbnailSectionTitle": "Vorschaubilder",
"settingsThumbnailOverlayTile": "Überlagerung", "settingsThumbnailOverlayTile": "Überlagerung",
"settingsThumbnailOverlayTitle": "Überlagerung", "settingsThumbnailOverlayPageTitle": "Überlagerung",
"settingsThumbnailShowFavouriteIcon": "Favoriten-Symbol anzeigen", "settingsThumbnailShowFavouriteIcon": "Favoriten-Symbol anzeigen",
"settingsThumbnailShowTagIcon": "Tag-Symbol anzeigen", "settingsThumbnailShowTagIcon": "Tag-Symbol anzeigen",
"settingsThumbnailShowLocationIcon": "Standort-Symbol anzeigen", "settingsThumbnailShowLocationIcon": "Standort-Symbol anzeigen",
@ -477,13 +475,13 @@
"settingsThumbnailShowVideoDuration": "Videodauer anzeigen", "settingsThumbnailShowVideoDuration": "Videodauer anzeigen",
"settingsCollectionQuickActionsTile": "Schnelle Aktionen", "settingsCollectionQuickActionsTile": "Schnelle Aktionen",
"settingsCollectionQuickActionEditorTitle": "Schnelle Aktionen", "settingsCollectionQuickActionEditorPageTitle": "Schnelle Aktionen",
"settingsCollectionQuickActionTabBrowsing": "Durchsuchen", "settingsCollectionQuickActionTabBrowsing": "Durchsuchen",
"settingsCollectionQuickActionTabSelecting": "Auswahl", "settingsCollectionQuickActionTabSelecting": "Auswahl",
"settingsCollectionBrowsingQuickActionEditorBanner": "Die Taste gedrückt halten, um die Schaltflächen zu bewegen und auszuwählen, welche Aktionen beim Durchsuchen von Elementen angezeigt werden.", "settingsCollectionBrowsingQuickActionEditorBanner": "Die Taste gedrückt halten, um die Schaltflächen zu bewegen und auszuwählen, welche Aktionen beim Durchsuchen von Elementen angezeigt werden.",
"settingsCollectionSelectionQuickActionEditorBanner": "Die Taste gedrückt halten, um die Schaltflächen zu bewegen und auszuwählen, welche Aktionen beim Durchsuchen von Elementen angezeigt werden.", "settingsCollectionSelectionQuickActionEditorBanner": "Die Taste gedrückt halten, um die Schaltflächen zu bewegen und auszuwählen, welche Aktionen beim Durchsuchen von Elementen angezeigt werden.",
"settingsSectionViewer": "Anzeige", "settingsViewerSectionTitle": "Anzeige",
"settingsViewerGestureSideTapNext": "Tippen auf den Bildschirmrand, um das vorheriges/nächstes Element anzuzeigen", "settingsViewerGestureSideTapNext": "Tippen auf den Bildschirmrand, um das vorheriges/nächstes Element anzuzeigen",
"settingsViewerUseCutout": "Ausgeschnittenen Bereich verwenden", "settingsViewerUseCutout": "Ausgeschnittenen Bereich verwenden",
"settingsViewerMaximumBrightness": "Maximale Helligkeit", "settingsViewerMaximumBrightness": "Maximale Helligkeit",
@ -491,14 +489,14 @@
"settingsImageBackground": "Bild-Hintergrund", "settingsImageBackground": "Bild-Hintergrund",
"settingsViewerQuickActionsTile": "Schnelle Aktionen", "settingsViewerQuickActionsTile": "Schnelle Aktionen",
"settingsViewerQuickActionEditorTitle": "Schnelle Aktionen", "settingsViewerQuickActionEditorPageTitle": "Schnelle Aktionen",
"settingsViewerQuickActionEditorBanner": "Die Taste gedrückt halten, um die Schaltflächen zu bewegen und auszuwählen, welche Aktionen im Viewer angezeigt werden sollen.", "settingsViewerQuickActionEditorBanner": "Die Taste gedrückt halten, um die Schaltflächen zu bewegen und auszuwählen, welche Aktionen im Viewer angezeigt werden sollen.",
"settingsViewerQuickActionEditorDisplayedButtons": "Angezeigte Schaltflächen", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Angezeigte Schaltflächen",
"settingsViewerQuickActionEditorAvailableButtons": "Verfügbare Schaltflächen", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Verfügbare Schaltflächen",
"settingsViewerQuickActionEmpty": "Keine Tasten", "settingsViewerQuickActionEmpty": "Keine Tasten",
"settingsViewerOverlayTile": "Überlagerung", "settingsViewerOverlayTile": "Überlagerung",
"settingsViewerOverlayTitle": "Überlagerung", "settingsViewerOverlayPageTitle": "Überlagerung",
"settingsViewerShowOverlayOnOpening": "Bei Eröffnung anzeigen", "settingsViewerShowOverlayOnOpening": "Bei Eröffnung anzeigen",
"settingsViewerShowMinimap": "Minimap anzeigen", "settingsViewerShowMinimap": "Minimap anzeigen",
"settingsViewerShowInformation": "Informationen anzeigen", "settingsViewerShowInformation": "Informationen anzeigen",
@ -508,30 +506,30 @@
"settingsViewerEnableOverlayBlurEffect": "Unschärfe-Effekt", "settingsViewerEnableOverlayBlurEffect": "Unschärfe-Effekt",
"settingsViewerSlideshowTile": "Diashow", "settingsViewerSlideshowTile": "Diashow",
"settingsViewerSlideshowTitle": "Diashow", "settingsViewerSlideshowPageTitle": "Diashow",
"settingsSlideshowRepeat": "Wiederholung", "settingsSlideshowRepeat": "Wiederholung",
"settingsSlideshowShuffle": "Mischen", "settingsSlideshowShuffle": "Mischen",
"settingsSlideshowFillScreen": "Bildschirm ausfüllen", "settingsSlideshowFillScreen": "Bildschirm ausfüllen",
"settingsSlideshowTransitionTile": "Übergang", "settingsSlideshowTransitionTile": "Übergang",
"settingsSlideshowTransitionTitle": "Übergang", "settingsSlideshowTransitionDialogTitle": "Übergang",
"settingsSlideshowIntervalTile": "Intervall", "settingsSlideshowIntervalTile": "Intervall",
"settingsSlideshowIntervalTitle": "Intervall", "settingsSlideshowIntervalDialogTitle": "Intervall",
"settingsSlideshowVideoPlaybackTile": "Videowiedergabe", "settingsSlideshowVideoPlaybackTile": "Videowiedergabe",
"settingsSlideshowVideoPlaybackTitle": "Videowiedergabe", "settingsSlideshowVideoPlaybackDialogTitle": "Videowiedergabe",
"settingsVideoPageTitle": "Video-Einstellungen", "settingsVideoPageTitle": "Video-Einstellungen",
"settingsSectionVideo": "Video", "settingsVideoSectionTitle": "Video",
"settingsVideoShowVideos": "Videos anzeigen", "settingsVideoShowVideos": "Videos anzeigen",
"settingsVideoEnableHardwareAcceleration": "Hardware-Beschleunigung", "settingsVideoEnableHardwareAcceleration": "Hardware-Beschleunigung",
"settingsVideoEnableAutoPlay": "Automatische Wiedergabe", "settingsVideoEnableAutoPlay": "Automatische Wiedergabe",
"settingsVideoLoopModeTile": "Schleifen-Modus", "settingsVideoLoopModeTile": "Schleifen-Modus",
"settingsVideoLoopModeTitle": "Schleifen-Modus", "settingsVideoLoopModeDialogTitle": "Schleifen-Modus",
"settingsSubtitleThemeTile": "Untertitel", "settingsSubtitleThemeTile": "Untertitel",
"settingsSubtitleThemeTitle": "Untertitel", "settingsSubtitleThemePageTitle": "Untertitel",
"settingsSubtitleThemeSample": "Dies ist ein Beispiel.", "settingsSubtitleThemeSample": "Dies ist ein Beispiel.",
"settingsSubtitleThemeTextAlignmentTile": "Textausrichtung", "settingsSubtitleThemeTextAlignmentTile": "Textausrichtung",
"settingsSubtitleThemeTextAlignmentTitle": "Textausrichtung", "settingsSubtitleThemeTextAlignmentDialogTitle": "Textausrichtung",
"settingsSubtitleThemeTextSize": "Textgröße", "settingsSubtitleThemeTextSize": "Textgröße",
"settingsSubtitleThemeShowOutline": "Umriss und Schatten anzeigen", "settingsSubtitleThemeShowOutline": "Umriss und Schatten anzeigen",
"settingsSubtitleThemeTextColor": "Textfarbe", "settingsSubtitleThemeTextColor": "Textfarbe",
@ -543,13 +541,13 @@
"settingsSubtitleThemeTextAlignmentRight": "Rechts", "settingsSubtitleThemeTextAlignmentRight": "Rechts",
"settingsVideoControlsTile": "Steuerung", "settingsVideoControlsTile": "Steuerung",
"settingsVideoControlsTitle": "Steuerung", "settingsVideoControlsPageTitle": "Steuerung",
"settingsVideoButtonsTile": "Schaltflächen", "settingsVideoButtonsTile": "Schaltflächen",
"settingsVideoButtonsTitle": "Schaltflächen", "settingsVideoButtonsDialogTitle": "Schaltflächen",
"settingsVideoGestureDoubleTapTogglePlay": "Doppeltippen zum Abspielen/Pausieren", "settingsVideoGestureDoubleTapTogglePlay": "Doppeltippen zum Abspielen/Pausieren",
"settingsVideoGestureSideDoubleTapSeek": "Doppeltippen auf die Bildschirmränder zum Rückwärts-/Vorwärtsspringen", "settingsVideoGestureSideDoubleTapSeek": "Doppeltippen auf die Bildschirmränder zum Rückwärts-/Vorwärtsspringen",
"settingsSectionPrivacy": "Datenschutz", "settingsPrivacySectionTitle": "Datenschutz",
"settingsAllowInstalledAppAccess": "Zugriff auf die Liste der installierten Apps", "settingsAllowInstalledAppAccess": "Zugriff auf die Liste der installierten Apps",
"settingsAllowInstalledAppAccessSubtitle": "zur Gruppierung von Bildern nach Apps", "settingsAllowInstalledAppAccessSubtitle": "zur Gruppierung von Bildern nach Apps",
"settingsAllowErrorReporting": "Anonyme Fehlermeldungen zulassen", "settingsAllowErrorReporting": "Anonyme Fehlermeldungen zulassen",
@ -558,52 +556,56 @@
"settingsEnableBinSubtitle": "Gelöschte Elemente 30 Tage lang aufbewahren", "settingsEnableBinSubtitle": "Gelöschte Elemente 30 Tage lang aufbewahren",
"settingsHiddenItemsTile": "Versteckte Elemente", "settingsHiddenItemsTile": "Versteckte Elemente",
"settingsHiddenItemsTitle": "Versteckte Elemente", "settingsHiddenItemsPageTitle": "Versteckte Elemente",
"settingsHiddenFiltersTitle": "Versteckte Filter", "settingsHiddenItemsTabFilters": "Versteckte Filter",
"settingsHiddenFiltersBanner": "Fotos und Videos, die versteckten Filtern entsprechen, werden nicht in Ihrer Sammlung angezeigt.", "settingsHiddenFiltersBanner": "Fotos und Videos, die versteckten Filtern entsprechen, werden nicht in Ihrer Sammlung angezeigt.",
"settingsHiddenFiltersEmpty": "Keine versteckten Filter", "settingsHiddenFiltersEmpty": "Keine versteckten Filter",
"settingsHiddenPathsTitle": "Verborgene Pfade", "settingsHiddenItemsTabPaths": "Verborgene Pfade",
"settingsHiddenPathsBanner": "Fotos und Videos, die sich in diesen Ordnern oder in einem ihrer Unterordner befinden, werden nicht in Ihrer Sammlung angezeigt.", "settingsHiddenPathsBanner": "Fotos und Videos, die sich in diesen Ordnern oder in einem ihrer Unterordner befinden, werden nicht in Ihrer Sammlung angezeigt.",
"addPathTooltip": "Pfad hinzufügen", "addPathTooltip": "Pfad hinzufügen",
"settingsStorageAccessTile": "Speicherzugriff", "settingsStorageAccessTile": "Speicherzugriff",
"settingsStorageAccessTitle": "Speicherzugriff", "settingsStorageAccessPageTitle": "Speicherzugriff",
"settingsStorageAccessBanner": "Einige Verzeichnisse erfordern eine explizite Zugriffsberechtigung, um Dateien darin zu ändern. Hier können Verzeichnisse überprüft werden, auf die zuvor Zugriff gewährt wurde.", "settingsStorageAccessBanner": "Einige Verzeichnisse erfordern eine explizite Zugriffsberechtigung, um Dateien darin zu ändern. Hier können Verzeichnisse überprüft werden, auf die zuvor Zugriff gewährt wurde.",
"settingsStorageAccessEmpty": "Keine Zugangsberechtigungen", "settingsStorageAccessEmpty": "Keine Zugangsberechtigungen",
"settingsStorageAccessRevokeTooltip": "Widerrufen", "settingsStorageAccessRevokeTooltip": "Widerrufen",
"settingsSectionAccessibility": "Barrierefreiheit", "settingsAccessibilitySectionTitle": "Barrierefreiheit",
"settingsRemoveAnimationsTile": "Animationen entfernen", "settingsRemoveAnimationsTile": "Animationen entfernen",
"settingsRemoveAnimationsTitle": "Animationen entfernen", "settingsRemoveAnimationsDialogTitle": "Animationen entfernen",
"settingsTimeToTakeActionTile": "Zeit zum Reagieren", "settingsTimeToTakeActionTile": "Zeit zum Reagieren",
"settingsTimeToTakeActionTitle": "Zeit zum Reagieren", "settingsTimeToTakeActionDialogTitle": "Zeit zum Reagieren",
"settingsSectionDisplay": "Anzeige", "settingsDisplaySectionTitle": "Anzeige",
"settingsThemeBrightness": "Thema", "settingsThemeBrightnessTile": "Thema",
"settingsThemeBrightnessDialogTitle": "Thema",
"settingsThemeColorHighlights": "Farbige Highlights", "settingsThemeColorHighlights": "Farbige Highlights",
"settingsThemeEnableDynamicColor": "Dynamische Farben", "settingsThemeEnableDynamicColor": "Dynamische Farben",
"settingsDisplayRefreshRateModeTile": "Bildwiederholrate der Anzeige", "settingsDisplayRefreshRateModeTile": "Bildwiederholrate der Anzeige",
"settingsDisplayRefreshRateModeTitle": "Bildwiederholrate", "settingsDisplayRefreshRateModeDialogTitle": "Bildwiederholrate",
"settingsSectionLanguage": "Sprache & Formate", "settingsLanguageSectionTitle": "Sprache & Formate",
"settingsLanguage": "Sprache", "settingsLanguageTile": "Sprache",
"settingsLanguagePageTitle": "Sprache",
"settingsCoordinateFormatTile": "Koordinatenformat", "settingsCoordinateFormatTile": "Koordinatenformat",
"settingsCoordinateFormatTitle": "Koordinatenformat", "settingsCoordinateFormatDialogTitle": "Koordinatenformat",
"settingsUnitSystemTile": "Einheiten", "settingsUnitSystemTile": "Einheiten",
"settingsUnitSystemTitle": "Einheiten", "settingsUnitSystemDialogTitle": "Einheiten",
"settingsScreenSaverPageTitle": "Bildschirmschoner", "settingsScreenSaverPageTitle": "Bildschirmschoner",
"settingsWidgetPageTitle": "Bilderrahmen", "settingsWidgetPageTitle": "Bilderrahmen",
"settingsWidgetShowOutline": "Gliederung", "settingsWidgetShowOutline": "Gliederung",
"settingsCollectionTile": "Sammlung",
"statsPageTitle": "Statistiken", "statsPageTitle": "Statistiken",
"statsWithGps": "{count, plural, =1{1 Element mit Standort} other{{count} Elemente mit Standort}}", "statsWithGps": "{count, plural, =1{1 Element mit Standort} other{{count} Elemente mit Standort}}",
"statsTopCountries": "Top-Länder", "statsTopCountriesSectionTitle": "Top-Länder",
"statsTopPlaces": "Top-Plätze", "statsTopPlacesSectionTitle": "Top-Plätze",
"statsTopTags": "Top-Tags", "statsTopTagsSectionTitle": "Top-Tags",
"viewerOpenPanoramaButtonLabel": "ÖFFNE PANORAMA", "viewerOpenPanoramaButtonLabel": "ÖFFNE PANORAMA",
"viewerSetWallpaperButtonLabel": "HINTERGRUNDBILD EINSTELLEN", "viewerSetWallpaperButtonLabel": "HINTERGRUNDBILD EINSTELLEN",
@ -614,6 +616,7 @@
"viewerInfoBackToViewerTooltip": "Zurück zum Betrachter", "viewerInfoBackToViewerTooltip": "Zurück zum Betrachter",
"viewerInfoUnknown": "Unbekannt", "viewerInfoUnknown": "Unbekannt",
"viewerInfoLabelDescription": "Beschreibung",
"viewerInfoLabelTitle": "Titel", "viewerInfoLabelTitle": "Titel",
"viewerInfoLabelDate": "Datum", "viewerInfoLabelDate": "Datum",
"viewerInfoLabelResolution": "Auflösung", "viewerInfoLabelResolution": "Auflösung",
@ -625,7 +628,7 @@
"viewerInfoLabelCoordinates": "Koordinaten", "viewerInfoLabelCoordinates": "Koordinaten",
"viewerInfoLabelAddress": "Adresse", "viewerInfoLabelAddress": "Adresse",
"mapStyleTitle": "Kartenstil", "mapStyleDialogTitle": "Kartenstil",
"mapStyleTooltip": "Kartenstil auswählen", "mapStyleTooltip": "Kartenstil auswählen",
"mapZoomInTooltip": "Vergrößern", "mapZoomInTooltip": "Vergrößern",
"mapZoomOutTooltip": "Verkleinern", "mapZoomOutTooltip": "Verkleinern",

682
lib/l10n/app_el.arb Normal file
View file

@ -0,0 +1,682 @@
{
"appName": "Aves",
"welcomeMessage": "Καλωσορίσατε στην εφαρμογή Aves",
"welcomeOptional": "Προαιρετικό",
"welcomeTermsToggle": "Συμφωνώ με τους όρους και τις προυποθέσεις",
"itemCount": "{count, plural, =1{1 στοιχείο} other{{count} στοιχεία}}",
"timeSeconds": "{seconds, plural, =1{1 δευτερόλεπτο} other{{seconds} δευτερόλεπτα}}",
"timeMinutes": "{minutes, plural, =1{1 λεπτό} other{{minutes} λεπτά}}",
"timeDays": "{days, plural, =1{1 ημέρα} other{{days} ημέρες}}",
"focalLength": "{length} mm",
"applyButtonLabel": "ΕΦΑΡΜΟΓΗ",
"deleteButtonLabel": "ΔΙΑΓΡΑΦΗ",
"nextButtonLabel": "ΕΠΟΜΕΝΟ",
"showButtonLabel": "ΕΜΦΑΝΙΣΗ",
"hideButtonLabel": "ΑΠΟΚΡΥΨΗ",
"continueButtonLabel": "ΣΥΝΕΧΕΙΑ",
"cancelTooltip": "Ακύρωση",
"changeTooltip": "Αλλαγή",
"clearTooltip": "Εκκαθάριση",
"previousTooltip": "Προηγούμενο",
"nextTooltip": "Επόμενο",
"showTooltip": "Εμφάνιση",
"hideTooltip": "Απόκρυψη",
"actionRemove": "Αφαίρεση",
"resetTooltip": "Επαναφορά",
"saveTooltip": "Αποθήκευση",
"pickTooltip": "Διαλέξτε",
"doubleBackExitMessage": "Αγγίξτε ξανά το «πίσω» για έξοδο.",
"doNotAskAgain": "Να μην ερωτηθώ ξανά",
"sourceStateLoading": "Φόρτωση",
"sourceStateCataloguing": "Καταλογογράφηση",
"sourceStateLocatingCountries": "Εντοπισμός χωρών",
"sourceStateLocatingPlaces": "Εντοπισμός τοποθεσιών",
"chipActionDelete": "Διαγραφή",
"chipActionGoToAlbumPage": "Εμφάνιση στα Άλμπουμ",
"chipActionGoToCountryPage": "Εμφάνιση στις χώρες",
"chipActionGoToTagPage": "Εμφάνιση στις ετικέτες",
"chipActionHide": "Απόκρυψη",
"chipActionPin": "Καρφίτσωμα στην κορυφή",
"chipActionUnpin": "Ξέκαρφίτσωμα από την κορυφή",
"chipActionRename": "Μετονομασία",
"chipActionSetCover": "Ορισμός ως εξώφυλλο",
"chipActionCreateAlbum": "Δημιουργία άλμπουμ",
"entryActionCopyToClipboard": "Αντιγραφή στο πρόχειρο",
"entryActionDelete": "Διαγραφή",
"entryActionConvert": "Μετατροπή",
"entryActionExport": "Εξαγωγή",
"entryActionInfo": "Λεπτομέρειες",
"entryActionRename": "Μετονομασία",
"entryActionRestore": "Επαναφορά",
"entryActionRotateCCW": "Περιστροφή προς τα αριστερά",
"entryActionRotateCW": "Περιστροφή προς τα δεξιά",
"entryActionFlip": "Αντανάκλαση καθρέφτη",
"entryActionPrint": "Εκτύπωση",
"entryActionShare": "Κοινοποίηση",
"entryActionViewSource": "Προβολή πηγής",
"entryActionShowGeoTiffOnMap": "Εμφάνιση ως επικάλυψη στον χάρτη",
"entryActionConvertMotionPhotoToStillImage": "Μετατροπή σε στατική εικόνα",
"entryActionViewMotionPhotoVideo": "Άνοιγμα του βίντεο",
"entryActionEdit": "Επεξεργασία",
"entryActionOpen": "Άνοιγμα με",
"entryActionSetAs": "Ορισμός ως",
"entryActionOpenMap": "Εμφάνιση στην εφαρμογή χάρτες",
"entryActionRotateScreen": "Περιστροφή οθόνης",
"entryActionAddFavourite": "Προσθήκη στα αγαπημένα",
"entryActionRemoveFavourite": "Αφαίρεση από τα αγαπημένα",
"videoActionCaptureFrame": "Λήψη στιγμιότυπου",
"videoActionMute": "Σίγαση",
"videoActionUnmute": "Αναίρεση σίγασης",
"videoActionPause": "Παύση",
"videoActionPlay": "Αναπαραγωγή",
"videoActionReplay10": "10 δευτερόλεπτα πίσω ",
"videoActionSkip10": "10 δευτερόλεπτα μπροστά",
"videoActionSelectStreams": "Επιλογή γλώσσας",
"videoActionSetSpeed": "Ταχύτητα αναπαραγωγής",
"videoActionSettings": "Ρυθμίσεις",
"slideshowActionResume": "Συνέχιση",
"slideshowActionShowInCollection": "Εμφάνιση στη Συλλογή",
"entryInfoActionEditDate": "Επεξεργασία ημερομηνίας και ώρας",
"entryInfoActionEditLocation": "Επεξεργασία τοποθεσίας",
"entryInfoActionEditTitleDescription": "Επεξεργασία ονομασίας & περιγραφής",
"entryInfoActionEditRating": "Επεξεργασία βαθμολογίας",
"entryInfoActionEditTags": "Επεξεργασία ετικετών",
"entryInfoActionRemoveMetadata": "Κατάργηση μεταδεδομένων",
"filterBinLabel": "Κάδος ανακύκλωσης",
"filterFavouriteLabel": "Αγαπημένα",
"filterNoDateLabel": "Χωρίς ημερομηνία",
"filterNoLocationLabel": "Χωρίς τοποθεσία",
"filterNoRatingLabel": "Χωρίς βαθμολογία",
"filterNoTagLabel": "Χωρίς ετικέτα",
"filterNoTitleLabel": "Χωρίς ονομασία",
"filterOnThisDayLabel": "Αυτή τη μέρα",
"filterRecentlyAddedLabel": "Προστέθηκαν πρόσφατα",
"filterRatingRejectedLabel": "Απορριφθέντα",
"filterTypeAnimatedLabel": "Κινούμενα",
"filterTypeMotionPhotoLabel": "Φωτογραφίες με κίνηση",
"filterTypePanoramaLabel": "Πανοραμικές",
"filterTypeRawLabel": "Raw",
"filterTypeSphericalVideoLabel": "Βίντεο 360°",
"filterTypeGeotiffLabel": "GeoTIFF",
"filterMimeImageLabel": "Εικόνα",
"filterMimeVideoLabel": "Βίντεο",
"coordinateFormatDms": "DMS",
"coordinateFormatDecimal": "Δεκαδικές μοίρες",
"coordinateDms": "{coordinate} {direction}",
"coordinateDmsNorth": "Β",
"coordinateDmsSouth": "Ν",
"coordinateDmsEast": "Α",
"coordinateDmsWest": "Δ",
"unitSystemMetric": "Μετρικό",
"unitSystemImperial": "Aγγλοσαξονικό",
"videoLoopModeNever": "Ποτέ",
"videoLoopModeShortOnly": "Μόνο για βίντεο σύντομης διάρκειας",
"videoLoopModeAlways": "Πάντα",
"videoControlsPlay": "Αναπαραγωγή",
"videoControlsPlaySeek": "Αναπαραγωγή & πίσω/μπροστά",
"videoControlsPlayOutside": "Άνοιγμα με άλλη εφαρμογή",
"videoControlsNone": "Καμία επιλογή",
"mapStyleGoogleNormal": "Google Maps",
"mapStyleGoogleHybrid": "Google Maps (Hybrid)",
"mapStyleGoogleTerrain": "Google Maps (Terrain)",
"mapStyleHuaweiNormal": "Petal Maps",
"mapStyleHuaweiTerrain": "Petal Maps (Terrain)",
"mapStyleOsmHot": "Humanitarian OSM",
"mapStyleStamenToner": "Stamen Toner",
"mapStyleStamenWatercolor": "Stamen Watercolor",
"nameConflictStrategyRename": "Μετονομασία",
"nameConflictStrategyReplace": "Αντικατάσταση",
"nameConflictStrategySkip": "Παράλειψη",
"keepScreenOnNever": "Ποτέ",
"keepScreenOnViewerOnly": "Μόνο όταν πραγματοποιείται προβολή στοιχείων",
"keepScreenOnAlways": "Πάντα",
"accessibilityAnimationsRemove": "Απενεργοποίηση εφέ οθόνης",
"accessibilityAnimationsKeep": "Διατήρηση εφέ οθόνης",
"displayRefreshRatePreferHighest": "Υψηλότερος ρυθμός",
"displayRefreshRatePreferLowest": "Χαμηλότερος ρυθμός",
"slideshowVideoPlaybackSkip": "Παράλειψη",
"slideshowVideoPlaybackMuted": "Αναπαραγωγή σε σίγαση",
"slideshowVideoPlaybackWithSound": "Αναπαραγωγή με ήχο",
"themeBrightnessLight": "Φωτεινό",
"themeBrightnessDark": "Σκούρο",
"themeBrightnessBlack": "Μαύρο",
"viewerTransitionSlide": "Ολίσθηση",
"viewerTransitionParallax": "Παράλλαξη",
"viewerTransitionFade": "Ξεθώριασμα",
"viewerTransitionZoomIn": "Μεγέθυνση",
"wallpaperTargetHome": "Αρχική οθόνη",
"wallpaperTargetLock": "Οθόνη κλειδώματος",
"wallpaperTargetHomeLock": "Αρχική οθόνη και οθόνη κλειδώματος",
"albumTierNew": "Νέα",
"albumTierPinned": "Καρφιτσωμένα",
"albumTierSpecial": "Συστήματος",
"albumTierApps": "Εφαρμογές",
"albumTierRegular": "Προσωπικά",
"storageVolumeDescriptionFallbackPrimary": "Εσωτερικός χώρος αποθήκευσης",
"storageVolumeDescriptionFallbackNonPrimary": "SD card/Εξωτερικός χώρος αποθήκευσης",
"rootDirectoryDescription": "Κατάλογος ρίζας",
"otherDirectoryDescription": "«{name}» κατάλογος",
"storageAccessDialogMessage": "Παρακαλώ επιλέξτε τον {directory} του «{volume}» στην επόμενη οθόνη για να δώσετε πρόσβαση στην εφαρμογή",
"restrictedAccessDialogMessage": "Αυτή η εφαρμογή δεν επιτρέπεται να τροποποιεί αρχεία στο {directory} του «{volume}».\n\nΠαρακαλώ χρησιμοποιήστε μια άλλη εφαρμογή διαχείρισης αρχείων ή συλλογή φωτογραφιών για να μετακινήσετε τα στοιχεία αλλού.",
"notEnoughSpaceDialogMessage": "Αυτή η λειτουργία χρειάζεται {neededSize} ελεύθερου χώρου στο «{volume}» για να ολοκληρωθεί, αλλά μόνο {freeSize} απομένουν ελεύθερα.",
"missingSystemFilePickerDialogMessage": "Η εφαρμογή επιλογής αρχείων του δεν βρέθηκε ή είναι απενεργοποιημένη. Ενεργοποιήστε την και δοκιμάστε ξανά.",
"unsupportedTypeDialogMessage": "{count, plural, =1{Αυτή η λειτουργία δεν υποστηρίζεται για το ακόλουθο αρχείο: {types}.} other{Αυτή η λειτουργία δεν υποστηρίζεται για τα ακόλουθα αρχεία: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Ορισμένα αρχεία στον φάκελο προορισμού έχουν το ίδιο όνομα.",
"nameConflictDialogMultipleSourceMessage": "Ορισμένα αρχεία έχουν το ίδιο όνομα.",
"addShortcutDialogLabel": "Ετικέτα συντόμευσης",
"addShortcutButtonLabel": "ΠΡΟΣΘΗΚΗ",
"noMatchingAppDialogMessage": "Δεν βρέθηκαν εγκατεστημένες εφαρμογές που μπορούν να το κάνουν αυτό.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Μετακίνηση αυτού του στοιχείου στον κάδο ανακύκλωσης;} other{Μετακίνηση αυτών των {count} στοιχείων στον κάδο ανακύκλωσης;}}",
"deleteEntriesConfirmationDialogMessage": "{count, plural, =1{Διαγραφή αυτού του στοιχείου;} other{Διαγραφή αυτών των {count} στοιχείων;}}",
"moveUndatedConfirmationDialogMessage": "Αποθήκευση ημερομηνιών στοιχείων πριν συνεχίσετε;",
"moveUndatedConfirmationDialogSetDate": "Αποθήκευση ημερομηνιών",
"videoResumeDialogMessage": "Συνέχεια αναπαραγωγής από {time}?",
"videoStartOverButtonLabel": "ΑΝΑΠΑΡΑΓΩΓΗ ΑΠΟ ΤΗΝ ΑΡΧΗ",
"videoResumeButtonLabel": "ΣΥΝΕΧΙΣΗ ΑΝΑΠΑΡΑΓΩΓΗΣ",
"setCoverDialogLatest": "Πιο πρόσφατο στοιχείο",
"setCoverDialogAuto": "Αυτόματο",
"setCoverDialogCustom": "Προσαρμοσμένο",
"hideFilterConfirmationDialogMessage": "Οι φωτογραφίες και τα βίντεο που ταιριάζουν θα κρυφτούν από τη συλλογή σας. Μπορείτε να τα εμφανίσετε ξανά από τις ρυθμίσεις «Απόρρητο».\n\nΕίστε σίγουροι ότι θέλετε να τα κρύψετε;",
"newAlbumDialogTitle": "Νεο αλμπουμ",
"newAlbumDialogNameLabel": "Όνομα άλμπουμ",
"newAlbumDialogNameLabelAlreadyExistsHelper": "Ο κατάλογος υπάρχει ήδη",
"newAlbumDialogStorageLabel": "Aποθηκευτικός χώρος:",
"renameAlbumDialogLabel": "Νέο όνομα",
"renameAlbumDialogLabelAlreadyExistsHelper": "Ο κατάλογος υπάρχει ήδη",
"renameEntrySetPageTitle": "Μετονομασια",
"renameEntrySetPagePatternFieldLabel": "Μοτίβο ονομασίας",
"renameEntrySetPageInsertTooltip": "Εισαγωγή πεδίου",
"renameEntrySetPagePreviewSectionTitle": "Προεπισκοπηση",
"renameProcessorCounter": "Counter",
"renameProcessorName": "Όνομα",
"deleteSingleAlbumConfirmationDialogMessage": "{count, plural, =1{Διαγραφή αυτού του άλμπουμ και του περιεχομένου του;} other{Διαγράψτε αυτό το άλμπουμ και όλα τα {count} στοιχεία του;}}",
"deleteMultiAlbumConfirmationDialogMessage": "{count, plural, =1{Διαγράψτε αυτά τα άλμπουμ και το περιεχόμενό τους;} other{Διαγράψτε αυτά τα άλμπουμ και όλα τα {count} στοιχεία τους;}}",
"exportEntryDialogFormat": "Μορφή:",
"exportEntryDialogWidth": "Πλάτος",
"exportEntryDialogHeight": "Ύψος",
"renameEntryDialogLabel": "Νέο όνομα",
"editEntryDialogTargetFieldsHeader": "Πεδία προς τροποποίηση",
"editEntryDateDialogTitle": "Ημερομηνια & Ώρα",
"editEntryDateDialogSetCustom": "Ορισμός προσαρμοσμένης ημερομηνίας",
"editEntryDateDialogCopyField": "Αντιγραφή από άλλη ημερομηνία",
"editEntryDateDialogCopyItem": "Αντιγραφή από άλλο στοιχείο",
"editEntryDateDialogExtractFromTitle": "Εξαγωγή από το όνομα του κάθε αρχείου",
"editEntryDateDialogShift": "Μετατόπιση",
"editEntryDateDialogSourceFileModifiedDate": "Ημερομηνία τροποποίησης αρχείου",
"editEntryDateDialogHours": "Ώρες",
"editEntryDateDialogMinutes": "Λεπτά",
"editEntryLocationDialogTitle": "Τοποθεσια",
"editEntryLocationDialogChooseOnMapTooltip": "Επιλογή στο χάρτη",
"editEntryLocationDialogLatitude": "Γεωγραφικό πλάτος",
"editEntryLocationDialogLongitude": "Γεωγραφικό μήκος",
"locationPickerUseThisLocationButton": "Χρησιμοποίηση της τοποθεσίας",
"editEntryRatingDialogTitle": "Βαθμολογια",
"removeEntryMetadataDialogTitle": "Αφαιρεση μεταδεδομενων",
"removeEntryMetadataDialogMore": "Περισσότερα",
"removeEntryMetadataMotionPhotoXmpWarningDialogMessage": "Απαιτείται XMP για την αναπαραγωγή του βίντεο μέσα σε μια κινούμενη φωτογραφία.\n\nΕίστε βέβαιοι ότι θέλετε να αφαιρεθεί;",
"convertMotionPhotoToStillImageWarningDialogMessage": "Είστε βέβαιοι;",
"videoSpeedDialogLabel": "Ταχύτητα αναπαραγωγής",
"videoStreamSelectionDialogVideo": "Βίντεο",
"videoStreamSelectionDialogAudio": "Ήχος",
"videoStreamSelectionDialogText": "Υπότιτλοι",
"videoStreamSelectionDialogOff": "Απενεργοποίηση",
"videoStreamSelectionDialogTrack": "Κομμάτι",
"videoStreamSelectionDialogNoSelection": "Δεν υπάρχουν άλλα κομμάτια.",
"genericSuccessFeedback": "Ολοκληρώθηκε!",
"genericFailureFeedback": "Απέτυχε",
"menuActionConfigureView": "Προβολή",
"menuActionSelect": "Επιλογή",
"menuActionSelectAll": "Επιλογή όλων",
"menuActionSelectNone": "Να μην επιλεγεί κανένα",
"menuActionMap": "Χάρτης",
"menuActionSlideshow": "Παρουσίαση φωτογραφιών",
"menuActionStats": "Στατιστικά",
"viewDialogSortSectionTitle": "Ταξινομηση",
"viewDialogGroupSectionTitle": "Ομαδοποιηση",
"viewDialogLayoutSectionTitle": "Διαταξη",
"viewDialogReverseSortOrder": "Αντίστροφη σειρά ταξινόμησης",
"tileLayoutGrid": "Πλέγμα",
"tileLayoutList": "Λίστα",
"coverDialogTabCover": "Εξώφυλλο",
"coverDialogTabApp": "Εφαρμογή",
"coverDialogTabColor": "Χρώμα",
"appPickDialogTitle": "Επιλογη εφαρμογης",
"appPickDialogNone": "Καμία επιλογή",
"aboutPageTitle": "Διαφορα",
"aboutLinkSources": "Πηγές",
"aboutLinkLicense": "Άδειες",
"aboutLinkPolicy": "Πολιτική Απορρήτου",
"aboutBugSectionTitle": "Αναφορα σφαλματος",
"aboutBugSaveLogInstruction": "Αποθήκευση των αρχείων καταγραφής της εφαρμογής σε ένα ξεχωριστό αρχείο",
"aboutBugCopyInfoInstruction": "Αντιγραφή πληροφοριών του συστήματος",
"aboutBugCopyInfoButton": "Αντιγραφή",
"aboutBugReportInstruction": "Αναφορά στο GitHub με τα αρχεία καταγραφής και τις πληροφορίες του συστήματος",
"aboutBugReportButton": "Αναφορά",
"aboutCreditsSectionTitle": "Αναφορες",
"aboutCreditsWorldAtlas1": "Αυτή η εφαρμογή χρησιμοποιεί ένα αρχείο TopoJSON από",
"aboutCreditsWorldAtlas2": "υπό την άδεια ISC.",
"aboutTranslatorsSectionTitle": "Μεταφραστες",
"aboutLicensesSectionTitle": "Αδειες ανοιχτου κωδικα",
"aboutLicensesBanner": "Αυτή η εφαρμογή χρησιμοποιεί τα ακόλουθα πακέτα και βιβλιοθήκες ανοιχτού κώδικα.",
"aboutLicensesAndroidLibrariesSectionTitle": "Βιβλιοθηκες Android",
"aboutLicensesFlutterPluginsSectionTitle": "Προσθετα Flutter",
"aboutLicensesFlutterPackagesSectionTitle": "Πακετα Flutter",
"aboutLicensesDartPackagesSectionTitle": "Πακετα Dart",
"aboutLicensesShowAllButtonLabel": "Εμφάνιση όλων των αδειών",
"policyPageTitle": "Πολιτικη απορρητου",
"collectionPageTitle": "Συλλογη",
"collectionPickPageTitle": "Διαλεξτε",
"collectionSelectPageTitle": "Επιλογη στοιχειων",
"collectionActionShowTitleSearch": "Εμφάνιση φίλτρου τίτλου",
"collectionActionHideTitleSearch": "Απόκρυψη φίλτρου τίτλου",
"collectionActionAddShortcut": "Προσθήκη συντόμευσης",
"collectionActionEmptyBin": "Καθαρισμός του κάδου ανακύκλωσης",
"collectionActionCopy": "Αντιγραφή στο άλμπουμ",
"collectionActionMove": "Μετακίνηση στο άλμπουμ",
"collectionActionRescan": "Εκ νέου σάρωση",
"collectionActionEdit": "Επεξεργασία",
"collectionSearchTitlesHintText": "Αναζήτηση τίτλων",
"collectionGroupAlbum": "Ανά άλμπουμ",
"collectionGroupMonth": "Ανά μήνα",
"collectionGroupDay": "Ανά ημέρα",
"collectionGroupNone": "Να μην γίνει ομαδοποίηση",
"sectionUnknown": "Χωρίς λεπτομέρειες",
"dateToday": "Σήμερα",
"dateYesterday": "Εχθές",
"dateThisMonth": "Αυτό το μήνα",
"collectionDeleteFailureFeedback": "{count, plural, =1{Αποτυχία διαγραφής του στοιχείου} other{Αποτυχία διαγραφής των {count} στοιχείων}}",
"collectionCopyFailureFeedback": "{count, plural, =1{Αποτυχία αντιγραφής του στοιχείου} other{Αποτυχία αντιγραφής των {count} στοιχείων}}",
"collectionMoveFailureFeedback": "{count, plural, =1{Αποτυχία μετακίνησης του στοιχείου} other{Αποτυχία μετακίνησης των {count} στοιχείων}}",
"collectionRenameFailureFeedback": "{count, plural, =1{Αποτυχία μετονομασίας του στοιχείου} other{Αποτυχία μετονομασίας των {count} στοιχείων}}",
"collectionEditFailureFeedback": "{count, plural, =1{Απέτυχε η επεξεργασία του στοιχείου} other{Απέτυχε η επεξεργασία των {count} στοιχείων}}",
"collectionExportFailureFeedback": "{count, plural, =1{Απέτυχε η εξαγωγή της σελίδας} other{Απέτυχε η εξαγωγή των {count} σελίδων}}",
"collectionCopySuccessFeedback": "{count, plural, =1{Αντιγράφηκε το στοιχείο} other{Αντιγράφηκαν τα {count} στοιχεία}}",
"collectionMoveSuccessFeedback": "{count, plural, =1{Μετακινήθηκε το στοιχείο} other{Μετακινήθηκαν τα {count} στοιχεία}}",
"collectionRenameSuccessFeedback": "{count, plural, =1{Μετονομάστηκε το στοιχείο} other{Μετονομάστηκαν τα {count} στοιχεία}}",
"collectionEditSuccessFeedback": "{count, plural, =1{Επεξεργάστηκε το στοιχείο} other{Επεξεργάστηκαν τα {count} στοιχεία}}",
"collectionEmptyFavourites": "Δεν έχουν καταχωρηθεί αγαπημένα στοιχεία",
"collectionEmptyVideos": "Δεν υπάρχουν βίντεο",
"collectionEmptyImages": "Δεν υπάρχουν εικόνες",
"collectionEmptyGrantAccessButtonLabel": "Παραχώρηση πρόσβασης",
"collectionSelectSectionTooltip": "Επιλέξτε ενότητα",
"collectionDeselectSectionTooltip": "Αφαιρέστε ενότητα",
"drawerAboutButton": "Διάφορα",
"drawerSettingsButton": "Ρυθμίσεις",
"drawerCollectionAll": "Όλη η συλλογή",
"drawerCollectionFavourites": "Αγαπημένα",
"drawerCollectionImages": "Εικόνες",
"drawerCollectionVideos": "Βίντεο",
"drawerCollectionAnimated": "Κινούμενα",
"drawerCollectionMotionPhotos": "Φωτογραφίες με κίνηση",
"drawerCollectionPanoramas": "Πανοραμικές",
"drawerCollectionRaws": "Raw φωτογραφίες",
"drawerCollectionSphericalVideos": "Βίντεο 360°",
"drawerAlbumPage": "Άλμπουμ",
"drawerCountryPage": "Χώρες",
"drawerTagPage": "Ετικέτες",
"sortByDate": "Ανά ημερομηνία",
"sortByName": "Ανά όνομα",
"sortByItemCount": "Ανά μέτρηση στοιχείων",
"sortBySize": "Ανά μέγεθος",
"sortByAlbumFileName": "Ανά άλμπουμ και όνομα αρχείου",
"sortByRating": "Ανά βαθμολογία",
"sortOrderNewestFirst": "Τα πιο πρόσφατα πρώτα",
"sortOrderOldestFirst": "Τα παλαιότερα πρώτα",
"sortOrderAtoZ": "Α έως Ω",
"sortOrderZtoA": "Ω έως Α",
"sortOrderHighestFirst": "Υψηλότερη βαθμολογία πρώτα",
"sortOrderLowestFirst": "Χαμηλότερη βαθμολογία πρώτα",
"sortOrderLargestFirst": "Τα μεγαλύτερα πρώτα",
"sortOrderSmallestFirst": "Τα μικρότερα πρώτα",
"albumGroupTier": "Ανά βαθμίδα",
"albumGroupVolume": "Ανά αποθηκευτική μονάδα",
"albumGroupNone": "Να μην γίνει ομαδοποίηση",
"albumPickPageTitleCopy": "Αντιγραφή στο άλμπουμ",
"albumPickPageTitleExport": "Εξαγωγή στο άλμπουμ",
"albumPickPageTitleMove": "Μετακίνηση στο άλμπουμ",
"albumPickPageTitlePick": "Επιλογή άλμπουμ",
"albumCamera": "Κάμερα",
"albumDownload": "Λήψεις",
"albumScreenshots": "Στιγμιότυπα οθόνης",
"albumScreenRecordings": "Εγγραφές οθόνης",
"albumVideoCaptures": "Στιγμιότυπα οθόνης από βίντεο",
"albumPageTitle": "Άλμπουμ",
"albumEmpty": "Δεν υπάρχουν άλμπουμ",
"createAlbumTooltip": "Δημιουργία άλμπουμ",
"createAlbumButtonLabel": "ΔΗΜΙΟΥΡΓΙΑ",
"newFilterBanner": "Νέα",
"countryPageTitle": "Χωρες",
"countryEmpty": "Δεν έχουν καταχωρηθεί χώρες",
"tagPageTitle": "Ετικετες",
"tagEmpty": "Δεν έχουν καταχωρηθεί ετικέτες",
"binPageTitle": "Καδος ανακυκλωσης",
"searchCollectionFieldHint": "Αναζήτηση στην συλλογή",
"searchRecentSectionTitle": "Προσφατα",
"searchDateSectionTitle": "Ημερομηνια",
"searchAlbumsSectionTitle": "Άλμπουμ",
"searchCountriesSectionTitle": "Χωρες",
"searchPlacesSectionTitle": "Τοποθεσιες",
"searchTagsSectionTitle": "Ετικετες",
"searchRatingSectionTitle": "Βαθμολογιες",
"searchMetadataSectionTitle": "Μεταδεδομενα",
"settingsPageTitle": "Ρυθμισεις",
"settingsSystemDefault": "Σύστημα",
"settingsDefault": "Προεπιλογή",
"settingsSearchFieldLabel": "Αναζήτηση ρυθμίσεων",
"settingsSearchEmpty": "Δεν υπάρχει αντίστοιχη ρύθμιση",
"settingsActionExport": "Εξαγωγή",
"settingsActionExportDialogTitle": "Εξαγωγη",
"settingsActionImport": "Εισαγωγή",
"settingsActionImportDialogTitle": "Εισαγωγη",
"appExportCovers": "Εξώφυλλα",
"appExportFavourites": "Αγαπημένα",
"appExportSettings": "Ρυθμίσεις",
"settingsNavigationSectionTitle": "Πλοηγηση",
"settingsHomeTile": "Αρχική σελίδα της εφαρμογής",
"settingsHomeDialogTitle": "Αρχικη σελιδα της εφαρμογης",
"settingsShowBottomNavigationBar": "Εμφάνιση κάτω γραμμής πλοήγησης",
"settingsKeepScreenOnTile": "Διατήρηση της οθόνης ενεργοποιημένη",
"settingsKeepScreenOnDialogTitle": "Διατηρηση της Οθονης Ενεργοποιημενη",
"settingsDoubleBackExit": "Αγγίξτε το «πίσω» δύο φορές για έξοδο",
"settingsConfirmationTile": "Παράθυρα επιβεβαίωσης",
"settingsConfirmationDialogTitle": "Παραθυρα Επιβεβαιωσης",
"settingsConfirmationBeforeDeleteItems": "Ερώτηση πριν διαγραφούν στοιχεία οριστικά",
"settingsConfirmationBeforeMoveToBinItems": "Ερώτηση πριν μεταφερθούν στοιχεία στον κάδο ανακύκλωσης",
"settingsConfirmationBeforeMoveUndatedItems": "Ερώτηση πριν μεταφερθούν στοιχεία χωρίς ημερομηνία",
"settingsConfirmationAfterMoveToBinItems": "Εμφάνιση μηνύματος μετά τη μεταφορά στοιχείων στον κάδο ανακύκλωσης",
"settingsNavigationDrawerTile": "Μενού πλοήγησης",
"settingsNavigationDrawerEditorPageTitle": "Μενου Πλοηγησης",
"settingsNavigationDrawerBanner": "Αγγίξτε παρατεταμένα για να μετακινήσετε και να αναδιατάξετε τα στοιχεία του μενού.",
"settingsNavigationDrawerTabTypes": "Τύποι",
"settingsNavigationDrawerTabAlbums": "Άλμπουμ",
"settingsNavigationDrawerTabPages": "Σελίδες",
"settingsNavigationDrawerAddAlbum": "Προσθήκη άλμπουμ",
"settingsThumbnailSectionTitle": "Μικρογραφιες",
"settingsThumbnailOverlayTile": "Βοηθητικές πληροφορίες",
"settingsThumbnailOverlayPageTitle": "Βοηθητικές πληροφοριες",
"settingsThumbnailShowFavouriteIcon": "Εμφάνιση εικονιδίου για αγαπημένο",
"settingsThumbnailShowTagIcon": "Εμφάνιση εικονιδίου για ετικέτα",
"settingsThumbnailShowLocationIcon": "Εμφάνιση εικονιδίου για τοποθεσία",
"settingsThumbnailShowMotionPhotoIcon": "Εμφάνιση εικονιδίου για φωτογραφία με κίνηση",
"settingsThumbnailShowRating": "Εμφάνιση βαθμολογίας",
"settingsThumbnailShowRawIcon": "Εμφάνιση εικονιδίου για raw στοιχεία",
"settingsThumbnailShowVideoDuration": "Εμφάνιση διάρκειας βίντεο",
"settingsCollectionQuickActionsTile": "Γρήγορες ενέργειες",
"settingsCollectionQuickActionEditorPageTitle": "Γρηγορες Ενεργειες",
"settingsCollectionQuickActionTabBrowsing": "Περιήγηση",
"settingsCollectionQuickActionTabSelecting": "Επιλογή",
"settingsCollectionBrowsingQuickActionEditorBanner": "Αγγίξτε παρατεταμένα για να μετακινήσετε τα κουμπιά και επιλέξτε ποιες ενέργειες θα εμφανίζονται κατά την περιήγηση στοιχείων.",
"settingsCollectionSelectionQuickActionEditorBanner": "Αγγίξτε παρατεταμένα για να μετακινήσετε τα κουμπιά και επιλέξτε ποιες ενέργειες θα εμφανίζονται κατά την επιλογή στοιχείων.",
"settingsViewerSectionTitle": "Προβολη",
"settingsViewerGestureSideTapNext": "Πατήστε στις άκρες της οθόνης για να εμφανίσετε το προηγούμενο/επόμενο στοιχείο",
"settingsViewerUseCutout": "Χρησιμοποιήστε την περιοχή αποκοπής",
"settingsViewerMaximumBrightness": "Μέγιστη φωτεινότητα",
"settingsMotionPhotoAutoPlay": "Αυτόματη αναπαραγωγή φωτογραφιών κίνησης",
"settingsImageBackground": "Φόντο κατά την προβολή στοιχείων",
"settingsViewerQuickActionsTile": "Γρήγορες ενέργειες",
"settingsViewerQuickActionEditorPageTitle": "Γρηγορες Ενεργειες",
"settingsViewerQuickActionEditorBanner": "Αγγίξτε παρατεταμένα για να μετακινήσετε τα κουμπιά και επιλέξτε ποιες ενέργειες θα εμφανίζονται κατά την προβολή.",
"settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Εμφανιζομενα κουμπια",
"settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Διαθεσιμα κουμπια",
"settingsViewerQuickActionEmpty": "Χωρίς κουμπιά",
"settingsViewerOverlayTile": "Επικάλυψη",
"settingsViewerOverlayPageTitle": "Επικαλυψη",
"settingsViewerShowOverlayOnOpening": "Εμφάνιση κατά το άνοιγμα",
"settingsViewerShowMinimap": "Εμφάνιση μικρού χάρτη",
"settingsViewerShowInformation": "Εμφάνιση πληροφοριών",
"settingsViewerShowInformationSubtitle": "Εμφάνιση ονομασίας, ημερομηνίας, τοποθεσίας κ.λπ.",
"settingsViewerShowShootingDetails": "Εμφάνιση λεπτομερειών λήψης",
"settingsViewerShowOverlayThumbnails": "Εμφάνιση μικρογραφιών",
"settingsViewerEnableOverlayBlurEffect": "Εφέ θαμπώματος",
"settingsViewerSlideshowTile": "Παρουσίαση φωτογραφιών",
"settingsViewerSlideshowPageTitle": "Παρουσιαση φωτογραφιων",
"settingsSlideshowRepeat": "Επανάληψη",
"settingsSlideshowShuffle": "Τυχαία σειρά",
"settingsSlideshowFillScreen": "Χρησιμοποίηση πλήρης οθόνης",
"settingsSlideshowTransitionTile": "Μετάβαση",
"settingsSlideshowTransitionDialogTitle": "Μεταβαση",
"settingsSlideshowIntervalTile": "Διάρκεια",
"settingsSlideshowIntervalDialogTitle": "Διαρκεια",
"settingsSlideshowVideoPlaybackTile": "Αναπαραγωγή βίντεο",
"settingsSlideshowVideoPlaybackDialogTitle": "Αναπαραγωγη Βιντεο",
"settingsVideoPageTitle": "Ρυθμισεις Βιντεο",
"settingsVideoSectionTitle": "Βιντεο",
"settingsVideoShowVideos": "Εμφάνιση των βίντεο στη συλλογή",
"settingsVideoEnableHardwareAcceleration": "Επιτάχυνση υλισμικού",
"settingsVideoEnableAutoPlay": "Αυτόματη αναπαραγωγή κατά το άνοιγμα",
"settingsVideoLoopModeTile": "Επανάληψη αυτόματα στο τέλος κάθε βίντεο",
"settingsVideoLoopModeDialogTitle": "Επαναληψη Αυτοματα στο Τελος Καθε Βιντεο",
"settingsSubtitleThemeTile": "Υπότιτλοι",
"settingsSubtitleThemePageTitle": "Υποτιτλοι",
"settingsSubtitleThemeSample": "Αυτό είναι ένα δείγμα.",
"settingsSubtitleThemeTextAlignmentTile": "Στοίχιση κειμένου",
"settingsSubtitleThemeTextAlignmentDialogTitle": "Στοιχιση Κειμενου",
"settingsSubtitleThemeTextSize": "Μέγεθος κειμένου",
"settingsSubtitleThemeShowOutline": "Εμφάνιση περιγράμματος και σκιάς",
"settingsSubtitleThemeTextColor": "Χρώμα κειμένου",
"settingsSubtitleThemeTextOpacity": "Αδιαφάνεια κειμένου",
"settingsSubtitleThemeBackgroundColor": "Χρώμα του φόντου",
"settingsSubtitleThemeBackgroundOpacity": "Αδιαφάνεια φόντου",
"settingsSubtitleThemeTextAlignmentLeft": "Αριστερά",
"settingsSubtitleThemeTextAlignmentCenter": "Κέντρο",
"settingsSubtitleThemeTextAlignmentRight": "Δεξιά",
"settingsVideoControlsTile": "Έλεγχος",
"settingsVideoControlsPageTitle": "Ελεγχος",
"settingsVideoButtonsTile": "Κουμπιά",
"settingsVideoButtonsDialogTitle": "Κουμπια",
"settingsVideoGestureDoubleTapTogglePlay": "Αγγίξτε την οθόνη δύο φορές για αναπαραγωγή/παύση",
"settingsVideoGestureSideDoubleTapSeek": "Αγγίξτε δύο φορές τις άκρες της οθόνης για να πάτε πίσω/εμπρός",
"settingsPrivacySectionTitle": "Απορρητο",
"settingsAllowInstalledAppAccess": "Να επιτρέπεται η πρόσβαση στον κατάλογο εγκατεστημένων εφαρμογών της συσκευής",
"settingsAllowInstalledAppAccessSubtitle": "Χρησιμοποιείται για τη βελτίωση της εμφάνισης των στοιχείων από τα άλμπουμ",
"settingsAllowErrorReporting": "Να επιτρέπεται η ανώνυμη αναφορά σφαλμάτων",
"settingsSaveSearchHistory": "Αποθήκευση ιστορικού αναζήτησης",
"settingsEnableBin": "Χρησιμοποίηση κάδου ανακύκλωσης",
"settingsEnableBinSubtitle": "Διατήρηση των διαγραμμένων στοιχείων για 30 ημέρες",
"settingsHiddenItemsTile": "Κρυφά στοιχεία",
"settingsHiddenItemsPageTitle": "Κρυφα Στοιχεια",
"settingsHiddenItemsTabFilters": "Κρυφά φίλτρα",
"settingsHiddenFiltersBanner": "Οι φωτογραφίες και τα βίντεο που είναι κρυφά δεν θα εμφανίζονται στη συλλογή σας.",
"settingsHiddenFiltersEmpty": "Χωρίς κρυφά φίλτρα",
"settingsHiddenItemsTabPaths": "Κρυφές διαδρομές",
"settingsHiddenPathsBanner": "Οι φωτογραφίες και τα βίντεο σε αυτούς τους φακέλους ή σε οποιονδήποτε από τους υποφακέλους τους, δεν θα εμφανίζονται στη συλλογή σας.",
"addPathTooltip": "Προσθήκη διαδρομής",
"settingsStorageAccessTile": "Πρόσβαση στον χώρο αποθήκευσης",
"settingsStorageAccessPageTitle": "Προσβαση στον Χωρο Αποθηκευσης",
"settingsStorageAccessBanner": "Ορισμένοι κατάλογοι απαιτούν ρητή άδεια πρόσβασης για την τροποποίηση των αρχείων που βρίσκονται σε αυτούς. Μπορείτε να δείτε εδώ τους καταλόγους στους οποίους έχετε ήδη χορηγήσει πρόσβαση.",
"settingsStorageAccessEmpty": "Δεν έχει χορηγηθεί πρόσβαση",
"settingsStorageAccessRevokeTooltip": "Ανάκληση χορήγησης πρόσβασης",
"settingsAccessibilitySectionTitle": "Προσβασιμοτητα",
"settingsRemoveAnimationsTile": "Κατάργηση κινούμενων εικόνων",
"settingsRemoveAnimationsDialogTitle": "Καταργηση Κινουμενων Εικονων",
"settingsTimeToTakeActionTile": "Χρόνος λήψης ενεργειών",
"settingsTimeToTakeActionDialogTitle": "Χρονος Ληψης Ενεργειων",
"settingsDisplaySectionTitle": "Οθονη",
"settingsThemeBrightnessTile": "Θέμα",
"settingsThemeBrightnessDialogTitle": "Θεμα",
"settingsThemeColorHighlights": "Χρωματιστά εικονίδια",
"settingsThemeEnableDynamicColor": "Έντονο χρώμα",
"settingsDisplayRefreshRateModeTile": "Εμφάνιση ρυθμού ανανέωσης",
"settingsDisplayRefreshRateModeDialogTitle": "Ρυθμος ανανεωσης",
"settingsLanguageSectionTitle": "Γλωσσα & Μορφες",
"settingsLanguageTile": "Γλώσσα",
"settingsLanguagePageTitle": "Γλωσσα",
"settingsCoordinateFormatTile": "Μορφή συντεταγμένων",
"settingsCoordinateFormatDialogTitle": "Μορφη Συντεταγμενων",
"settingsUnitSystemTile": "Σύστημα μέτρησης",
"settingsUnitSystemDialogTitle": "Συστημα μετρησης",
"settingsScreenSaverPageTitle": "Προφυλαξη οθονης",
"settingsWidgetPageTitle": "Κορνιζα",
"settingsWidgetShowOutline": "Περίγραμμα",
"settingsCollectionTile": "Συλλογή",
"statsPageTitle": "Στατιστικα",
"statsWithGps": "{count, plural, =1{1 στοιχείο με τοποθεσία} other{{count} στοιχεία με τοποθεσία}}",
"statsTopCountriesSectionTitle": "Κορυφαιες Χωρες",
"statsTopPlacesSectionTitle": "Κορυφαια Μερη",
"statsTopTagsSectionTitle": "Κορυφαιες Ετικετες",
"viewerOpenPanoramaButtonLabel": "Άνοιγμα πανοραμικών",
"viewerSetWallpaperButtonLabel": "ΟΡΙΣΜΟΣ ΤΑΠΕΤΣΑΡΙΑΣ",
"viewerErrorUnknown": "Ωχ!",
"viewerErrorDoesNotExist": "Το αρχείο δεν υπάρχει πλέον.",
"viewerInfoPageTitle": "Πληροφοριες",
"viewerInfoBackToViewerTooltip": "Επιστροφή στην προβολή",
"viewerInfoUnknown": "Άγνωστο",
"viewerInfoLabelDescription": "Περιγραφή",
"viewerInfoLabelTitle": "Όνομα",
"viewerInfoLabelDate": "Ημερομηνία",
"viewerInfoLabelResolution": "Ανάλυση",
"viewerInfoLabelSize": "Μέγεθος",
"viewerInfoLabelUri": "URI",
"viewerInfoLabelPath": "Διαδρομή",
"viewerInfoLabelDuration": "Διάρκεια",
"viewerInfoLabelOwner": "Κάτοχος",
"viewerInfoLabelCoordinates": "Συντεταγμένες",
"viewerInfoLabelAddress": "Διεύθυνση",
"mapStyleDialogTitle": "Στυλ χαρτη",
"mapStyleTooltip": "Επιλέξτε στυλ χάρτη",
"mapZoomInTooltip": "Μεγέθυνση",
"mapZoomOutTooltip": "Σμίκρυνση",
"mapPointNorthUpTooltip": "Εμφάνιση του βορρά στην κορυφή",
"mapAttributionOsmHot": "Map data © [OpenStreetMap](https://www.openstreetmap.org/copyright) contributors • Tiles by [HOT](https://www.hotosm.org/) • Hosted by [OSM France](https://openstreetmap.fr/)",
"mapAttributionStamen": "Map data © [OpenStreetMap](https://www.openstreetmap.org/copyright) contributors • Tiles by [Stamen Design](http://stamen.com), [CC BY 3.0](http://creativecommons.org/licenses/by/3.0)",
"openMapPageTooltip": "Προβολή στη σελίδα του χάρτη",
"mapEmptyRegion": "Δεν υπάρχουν εικόνες σε αυτήν την περιοχή",
"viewerInfoOpenEmbeddedFailureFeedback": "Αποτυχία εξαγωγής ενσωματωμένων δεδομένων",
"viewerInfoOpenLinkText": "Άνοιγμα",
"viewerInfoViewXmlLinkText": "Προβολή του αρχείου XML",
"viewerInfoSearchFieldLabel": "Αναζήτηση μεταδεδομένων",
"viewerInfoSearchEmpty": "Δεν ταιριάζουν τα κλειδιά",
"viewerInfoSearchSuggestionDate": "Ημερομηνία & Ώρα",
"viewerInfoSearchSuggestionDescription": "Περιγραφή",
"viewerInfoSearchSuggestionDimensions": "Διαστάσεις",
"viewerInfoSearchSuggestionResolution": "Ανάλυση",
"viewerInfoSearchSuggestionRights": "Δικαιώματα",
"tagEditorPageTitle": "Επεξεργασια Ετικετων",
"tagEditorPageNewTagFieldLabel": "Νέα ετικέτα",
"tagEditorPageAddTagTooltip": "Προσθήκη ετικέτας",
"tagEditorSectionRecent": "Πρόσφατα",
"panoramaEnableSensorControl": "Ενεργοποίηση ελέγχου αισθητήρα",
"panoramaDisableSensorControl": "Απενεργοποίηση ελέγχου αισθητήρα",
"sourceViewerPageTitle": "Πηγη",
"filePickerShowHiddenFiles": "Εμφάνιση κρυφών αρχείων",
"filePickerDoNotShowHiddenFiles": "Να μην εμφανίζονται τα κρυφά αρχεία",
"filePickerOpenFrom": "Άνοιγμα από",
"filePickerNoItems": "Κανένα στοιχείο",
"filePickerUseThisFolder": "Χρησιμοποιήστε αυτόν τον φάκελο"
}

View file

@ -55,6 +55,7 @@
"actionRemove": "Remove", "actionRemove": "Remove",
"resetTooltip": "Reset", "resetTooltip": "Reset",
"saveTooltip": "Save", "saveTooltip": "Save",
"pickTooltip": "Pick",
"doubleBackExitMessage": "Tap “back” again to exit.", "doubleBackExitMessage": "Tap “back” again to exit.",
"doNotAskAgain": "Do not ask again", "doNotAskAgain": "Do not ask again",
@ -115,18 +116,20 @@
"entryInfoActionEditDate": "Edit date & time", "entryInfoActionEditDate": "Edit date & time",
"entryInfoActionEditLocation": "Edit location", "entryInfoActionEditLocation": "Edit location",
"entryInfoActionEditDescription": "Edit description", "entryInfoActionEditTitleDescription": "Edit title & description",
"entryInfoActionEditRating": "Edit rating", "entryInfoActionEditRating": "Edit rating",
"entryInfoActionEditTags": "Edit tags", "entryInfoActionEditTags": "Edit tags",
"entryInfoActionRemoveMetadata": "Remove metadata", "entryInfoActionRemoveMetadata": "Remove metadata",
"filterBinLabel": "Recycle bin", "filterBinLabel": "Recycle bin",
"filterFavouriteLabel": "Favorite", "filterFavouriteLabel": "Favorite",
"filterLocationEmptyLabel": "Unlocated", "filterNoDateLabel": "Undated",
"filterTagEmptyLabel": "Untagged", "filterNoLocationLabel": "Unlocated",
"filterNoRatingLabel": "Unrated",
"filterNoTagLabel": "Untagged",
"filterNoTitleLabel": "Untitled",
"filterOnThisDayLabel": "On this day", "filterOnThisDayLabel": "On this day",
"filterRecentlyAddedLabel": "Recently added", "filterRecentlyAddedLabel": "Recently added",
"filterRatingUnratedLabel": "Unrated",
"filterRatingRejectedLabel": "Rejected", "filterRatingRejectedLabel": "Rejected",
"filterTypeAnimatedLabel": "Animated", "filterTypeAnimatedLabel": "Animated",
"filterTypeMotionPhotoLabel": "Motion Photo", "filterTypeMotionPhotoLabel": "Motion Photo",
@ -228,7 +231,6 @@
} }
} }
}, },
"storageAccessDialogTitle": "Storage Access",
"storageAccessDialogMessage": "Please select the {directory} of “{volume}” in the next screen to give this app access to it.", "storageAccessDialogMessage": "Please select the {directory} of “{volume}” in the next screen to give this app access to it.",
"@storageAccessDialogMessage": { "@storageAccessDialogMessage": {
"placeholders": { "placeholders": {
@ -243,7 +245,6 @@
} }
} }
}, },
"restrictedAccessDialogTitle": "Restricted Access",
"restrictedAccessDialogMessage": "This app is not allowed to modify files in the {directory} of “{volume}”.\n\nPlease use a pre-installed file manager or gallery app to move the items to another directory.", "restrictedAccessDialogMessage": "This app is not allowed to modify files in the {directory} of “{volume}”.\n\nPlease use a pre-installed file manager or gallery app to move the items to another directory.",
"@restrictedAccessDialogMessage": { "@restrictedAccessDialogMessage": {
"placeholders": { "placeholders": {
@ -258,7 +259,6 @@
} }
} }
}, },
"notEnoughSpaceDialogTitle": "Not Enough Space",
"notEnoughSpaceDialogMessage": "This operation needs {neededSize} of free space on “{volume}” to complete, but there is only {freeSize} left.", "notEnoughSpaceDialogMessage": "This operation needs {neededSize} of free space on “{volume}” to complete, but there is only {freeSize} left.",
"@notEnoughSpaceDialogMessage": { "@notEnoughSpaceDialogMessage": {
"placeholders": { "placeholders": {
@ -277,10 +277,8 @@
} }
} }
}, },
"missingSystemFilePickerDialogTitle": "Missing System File Picker",
"missingSystemFilePickerDialogMessage": "The system file picker is missing or disabled. Please enable it and try again.", "missingSystemFilePickerDialogMessage": "The system file picker is missing or disabled. Please enable it and try again.",
"unsupportedTypeDialogTitle": "Unsupported Types",
"unsupportedTypeDialogMessage": "{count, plural, =1{This operation is not supported for items of the following type: {types}.} other{This operation is not supported for items of the following types: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, =1{This operation is not supported for items of the following type: {types}.} other{This operation is not supported for items of the following types: {types}.}}",
"@unsupportedTypeDialogMessage": { "@unsupportedTypeDialogMessage": {
"placeholders": { "placeholders": {
@ -299,7 +297,6 @@
"addShortcutDialogLabel": "Shortcut label", "addShortcutDialogLabel": "Shortcut label",
"addShortcutButtonLabel": "ADD", "addShortcutButtonLabel": "ADD",
"noMatchingAppDialogTitle": "No Matching App",
"noMatchingAppDialogMessage": "There are no apps that can handle this.", "noMatchingAppDialogMessage": "There are no apps that can handle this.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Move this item to the recycle bin?} other{Move these {count} items to the recycle bin?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Move this item to the recycle bin?} other{Move these {count} items to the recycle bin?}}",
@ -346,7 +343,7 @@
"renameEntrySetPageTitle": "Rename", "renameEntrySetPageTitle": "Rename",
"renameEntrySetPagePatternFieldLabel": "Naming pattern", "renameEntrySetPagePatternFieldLabel": "Naming pattern",
"renameEntrySetPageInsertTooltip": "Insert field", "renameEntrySetPageInsertTooltip": "Insert field",
"renameEntrySetPagePreview": "Preview", "renameEntrySetPagePreviewSectionTitle": "Preview",
"renameProcessorCounter": "Counter", "renameProcessorCounter": "Counter",
"renameProcessorName": "Name", "renameProcessorName": "Name",
@ -389,8 +386,6 @@
"locationPickerUseThisLocationButton": "Use this location", "locationPickerUseThisLocationButton": "Use this location",
"editEntryDescriptionDialogTitle": "Description",
"editEntryRatingDialogTitle": "Rating", "editEntryRatingDialogTitle": "Rating",
"removeEntryMetadataDialogTitle": "Metadata Removal", "removeEntryMetadataDialogTitle": "Metadata Removal",
@ -419,9 +414,10 @@
"menuActionSlideshow": "Slideshow", "menuActionSlideshow": "Slideshow",
"menuActionStats": "Stats", "menuActionStats": "Stats",
"viewDialogTabSort": "Sort", "viewDialogSortSectionTitle": "Sort",
"viewDialogTabGroup": "Group", "viewDialogGroupSectionTitle": "Group",
"viewDialogTabLayout": "Layout", "viewDialogLayoutSectionTitle": "Layout",
"viewDialogReverseSortOrder": "Reverse sort order",
"tileLayoutGrid": "Grid", "tileLayoutGrid": "Grid",
"tileLayoutList": "List", "tileLayoutList": "List",
@ -438,24 +434,24 @@
"aboutLinkLicense": "License", "aboutLinkLicense": "License",
"aboutLinkPolicy": "Privacy Policy", "aboutLinkPolicy": "Privacy Policy",
"aboutBug": "Bug Report", "aboutBugSectionTitle": "Bug Report",
"aboutBugSaveLogInstruction": "Save app logs to a file", "aboutBugSaveLogInstruction": "Save app logs to a file",
"aboutBugCopyInfoInstruction": "Copy system information", "aboutBugCopyInfoInstruction": "Copy system information",
"aboutBugCopyInfoButton": "Copy", "aboutBugCopyInfoButton": "Copy",
"aboutBugReportInstruction": "Report on GitHub with the logs and system information", "aboutBugReportInstruction": "Report on GitHub with the logs and system information",
"aboutBugReportButton": "Report", "aboutBugReportButton": "Report",
"aboutCredits": "Credits", "aboutCreditsSectionTitle": "Credits",
"aboutCreditsWorldAtlas1": "This app uses a TopoJSON file from", "aboutCreditsWorldAtlas1": "This app uses a TopoJSON file from",
"aboutCreditsWorldAtlas2": "under ISC License.", "aboutCreditsWorldAtlas2": "under ISC License.",
"aboutCreditsTranslators": "Translators", "aboutTranslatorsSectionTitle": "Translators",
"aboutLicenses": "Open-Source Licenses", "aboutLicensesSectionTitle": "Open-Source Licenses",
"aboutLicensesBanner": "This app uses the following open-source packages and libraries.", "aboutLicensesBanner": "This app uses the following open-source packages and libraries.",
"aboutLicensesAndroidLibraries": "Android Libraries", "aboutLicensesAndroidLibrariesSectionTitle": "Android Libraries",
"aboutLicensesFlutterPlugins": "Flutter Plugins", "aboutLicensesFlutterPluginsSectionTitle": "Flutter Plugins",
"aboutLicensesFlutterPackages": "Flutter Packages", "aboutLicensesFlutterPackagesSectionTitle": "Flutter Packages",
"aboutLicensesDartPackages": "Dart Packages", "aboutLicensesDartPackagesSectionTitle": "Dart Packages",
"aboutLicensesShowAllButtonLabel": "Show All Licenses", "aboutLicensesShowAllButtonLabel": "Show All Licenses",
"policyPageTitle": "Privacy Policy", "policyPageTitle": "Privacy Policy",
@ -475,11 +471,6 @@
"collectionSearchTitlesHintText": "Search titles", "collectionSearchTitlesHintText": "Search titles",
"collectionSortDate": "By date",
"collectionSortSize": "By size",
"collectionSortName": "By album & file name",
"collectionSortRating": "By rating",
"collectionGroupAlbum": "By album", "collectionGroupAlbum": "By album",
"collectionGroupMonth": "By month", "collectionGroupMonth": "By month",
"collectionGroupDay": "By day", "collectionGroupDay": "By day",
@ -558,6 +549,8 @@
"collectionSelectSectionTooltip": "Select section", "collectionSelectSectionTooltip": "Select section",
"collectionDeselectSectionTooltip": "Deselect section", "collectionDeselectSectionTooltip": "Deselect section",
"drawerAboutButton": "About",
"drawerSettingsButton": "Settings",
"drawerCollectionAll": "All collection", "drawerCollectionAll": "All collection",
"drawerCollectionFavourites": "Favorites", "drawerCollectionFavourites": "Favorites",
"drawerCollectionImages": "Images", "drawerCollectionImages": "Images",
@ -567,10 +560,25 @@
"drawerCollectionPanoramas": "Panoramas", "drawerCollectionPanoramas": "Panoramas",
"drawerCollectionRaws": "Raw photos", "drawerCollectionRaws": "Raw photos",
"drawerCollectionSphericalVideos": "360° Videos", "drawerCollectionSphericalVideos": "360° Videos",
"drawerAlbumPage": "Albums",
"drawerCountryPage": "Countries",
"drawerTagPage": "Tags",
"chipSortDate": "By date", "sortByDate": "By date",
"chipSortName": "By name", "sortByName": "By name",
"chipSortCount": "By item count", "sortByItemCount": "By item count",
"sortBySize": "By size",
"sortByAlbumFileName": "By album & file name",
"sortByRating": "By rating",
"sortOrderNewestFirst": "Newest first",
"sortOrderOldestFirst": "Oldest first",
"sortOrderAtoZ": "A to Z",
"sortOrderZtoA": "Z to A",
"sortOrderHighestFirst": "Highest first",
"sortOrderLowestFirst": "Lowest first",
"sortOrderLargestFirst": "Largest first",
"sortOrderSmallestFirst": "Smallest first",
"albumGroupTier": "By tier", "albumGroupTier": "By tier",
"albumGroupVolume": "By storage volume", "albumGroupVolume": "By storage volume",
@ -602,13 +610,14 @@
"binPageTitle": "Recycle Bin", "binPageTitle": "Recycle Bin",
"searchCollectionFieldHint": "Search collection", "searchCollectionFieldHint": "Search collection",
"searchSectionRecent": "Recent", "searchRecentSectionTitle": "Recent",
"searchSectionDate": "Date", "searchDateSectionTitle": "Date",
"searchSectionAlbums": "Albums", "searchAlbumsSectionTitle": "Albums",
"searchSectionCountries": "Countries", "searchCountriesSectionTitle": "Countries",
"searchSectionPlaces": "Places", "searchPlacesSectionTitle": "Places",
"searchSectionTags": "Tags", "searchTagsSectionTitle": "Tags",
"searchSectionRating": "Ratings", "searchRatingSectionTitle": "Ratings",
"searchMetadataSectionTitle": "Metadata",
"settingsPageTitle": "Settings", "settingsPageTitle": "Settings",
"settingsSystemDefault": "System", "settingsSystemDefault": "System",
@ -617,37 +626,40 @@
"settingsSearchFieldLabel": "Search settings", "settingsSearchFieldLabel": "Search settings",
"settingsSearchEmpty": "No matching setting", "settingsSearchEmpty": "No matching setting",
"settingsActionExport": "Export", "settingsActionExport": "Export",
"settingsActionExportDialogTitle": "Export",
"settingsActionImport": "Import", "settingsActionImport": "Import",
"settingsActionImportDialogTitle": "Import",
"appExportCovers": "Covers", "appExportCovers": "Covers",
"appExportFavourites": "Favorites", "appExportFavourites": "Favorites",
"appExportSettings": "Settings", "appExportSettings": "Settings",
"settingsSectionNavigation": "Navigation", "settingsNavigationSectionTitle": "Navigation",
"settingsHome": "Home", "settingsHomeTile": "Home",
"settingsHomeDialogTitle": "Home",
"settingsShowBottomNavigationBar": "Show bottom navigation bar", "settingsShowBottomNavigationBar": "Show bottom navigation bar",
"settingsKeepScreenOnTile": "Keep screen on", "settingsKeepScreenOnTile": "Keep screen on",
"settingsKeepScreenOnTitle": "Keep Screen On", "settingsKeepScreenOnDialogTitle": "Keep Screen On",
"settingsDoubleBackExit": "Tap “back” twice to exit", "settingsDoubleBackExit": "Tap “back” twice to exit",
"settingsConfirmationDialogTile": "Confirmation dialogs", "settingsConfirmationTile": "Confirmation dialogs",
"settingsConfirmationDialogTitle": "Confirmation Dialogs", "settingsConfirmationDialogTitle": "Confirmation Dialogs",
"settingsConfirmationDialogDeleteItems": "Ask before deleting items forever", "settingsConfirmationBeforeDeleteItems": "Ask before deleting items forever",
"settingsConfirmationDialogMoveToBinItems": "Ask before moving items to the recycle bin", "settingsConfirmationBeforeMoveToBinItems": "Ask before moving items to the recycle bin",
"settingsConfirmationDialogMoveUndatedItems": "Ask before moving undated items", "settingsConfirmationBeforeMoveUndatedItems": "Ask before moving undated items",
"settingsConfirmationAfterMoveToBinItems": "Show message after moving items to the recycle bin", "settingsConfirmationAfterMoveToBinItems": "Show message after moving items to the recycle bin",
"settingsNavigationDrawerTile": "Navigation menu", "settingsNavigationDrawerTile": "Navigation menu",
"settingsNavigationDrawerEditorTitle": "Navigation Menu", "settingsNavigationDrawerEditorPageTitle": "Navigation Menu",
"settingsNavigationDrawerBanner": "Touch and hold to move and reorder menu items.", "settingsNavigationDrawerBanner": "Touch and hold to move and reorder menu items.",
"settingsNavigationDrawerTabTypes": "Types", "settingsNavigationDrawerTabTypes": "Types",
"settingsNavigationDrawerTabAlbums": "Albums", "settingsNavigationDrawerTabAlbums": "Albums",
"settingsNavigationDrawerTabPages": "Pages", "settingsNavigationDrawerTabPages": "Pages",
"settingsNavigationDrawerAddAlbum": "Add album", "settingsNavigationDrawerAddAlbum": "Add album",
"settingsSectionThumbnails": "Thumbnails", "settingsThumbnailSectionTitle": "Thumbnails",
"settingsThumbnailOverlayTile": "Overlay", "settingsThumbnailOverlayTile": "Overlay",
"settingsThumbnailOverlayTitle": "Overlay", "settingsThumbnailOverlayPageTitle": "Overlay",
"settingsThumbnailShowFavouriteIcon": "Show favorite icon", "settingsThumbnailShowFavouriteIcon": "Show favorite icon",
"settingsThumbnailShowTagIcon": "Show tag icon", "settingsThumbnailShowTagIcon": "Show tag icon",
"settingsThumbnailShowLocationIcon": "Show location icon", "settingsThumbnailShowLocationIcon": "Show location icon",
@ -657,13 +669,13 @@
"settingsThumbnailShowVideoDuration": "Show video duration", "settingsThumbnailShowVideoDuration": "Show video duration",
"settingsCollectionQuickActionsTile": "Quick actions", "settingsCollectionQuickActionsTile": "Quick actions",
"settingsCollectionQuickActionEditorTitle": "Quick Actions", "settingsCollectionQuickActionEditorPageTitle": "Quick Actions",
"settingsCollectionQuickActionTabBrowsing": "Browsing", "settingsCollectionQuickActionTabBrowsing": "Browsing",
"settingsCollectionQuickActionTabSelecting": "Selecting", "settingsCollectionQuickActionTabSelecting": "Selecting",
"settingsCollectionBrowsingQuickActionEditorBanner": "Touch and hold to move buttons and select which actions are displayed when browsing items.", "settingsCollectionBrowsingQuickActionEditorBanner": "Touch and hold to move buttons and select which actions are displayed when browsing items.",
"settingsCollectionSelectionQuickActionEditorBanner": "Touch and hold to move buttons and select which actions are displayed when selecting items.", "settingsCollectionSelectionQuickActionEditorBanner": "Touch and hold to move buttons and select which actions are displayed when selecting items.",
"settingsSectionViewer": "Viewer", "settingsViewerSectionTitle": "Viewer",
"settingsViewerGestureSideTapNext": "Tap on screen edges to show previous/next item", "settingsViewerGestureSideTapNext": "Tap on screen edges to show previous/next item",
"settingsViewerUseCutout": "Use cutout area", "settingsViewerUseCutout": "Use cutout area",
"settingsViewerMaximumBrightness": "Maximum brightness", "settingsViewerMaximumBrightness": "Maximum brightness",
@ -671,14 +683,14 @@
"settingsImageBackground": "Image background", "settingsImageBackground": "Image background",
"settingsViewerQuickActionsTile": "Quick actions", "settingsViewerQuickActionsTile": "Quick actions",
"settingsViewerQuickActionEditorTitle": "Quick Actions", "settingsViewerQuickActionEditorPageTitle": "Quick Actions",
"settingsViewerQuickActionEditorBanner": "Touch and hold to move buttons and select which actions are displayed in the viewer.", "settingsViewerQuickActionEditorBanner": "Touch and hold to move buttons and select which actions are displayed in the viewer.",
"settingsViewerQuickActionEditorDisplayedButtons": "Displayed Buttons", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Displayed Buttons",
"settingsViewerQuickActionEditorAvailableButtons": "Available Buttons", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Available Buttons",
"settingsViewerQuickActionEmpty": "No buttons", "settingsViewerQuickActionEmpty": "No buttons",
"settingsViewerOverlayTile": "Overlay", "settingsViewerOverlayTile": "Overlay",
"settingsViewerOverlayTitle": "Overlay", "settingsViewerOverlayPageTitle": "Overlay",
"settingsViewerShowOverlayOnOpening": "Show on opening", "settingsViewerShowOverlayOnOpening": "Show on opening",
"settingsViewerShowMinimap": "Show minimap", "settingsViewerShowMinimap": "Show minimap",
"settingsViewerShowInformation": "Show information", "settingsViewerShowInformation": "Show information",
@ -688,30 +700,30 @@
"settingsViewerEnableOverlayBlurEffect": "Blur effect", "settingsViewerEnableOverlayBlurEffect": "Blur effect",
"settingsViewerSlideshowTile": "Slideshow", "settingsViewerSlideshowTile": "Slideshow",
"settingsViewerSlideshowTitle": "Slideshow", "settingsViewerSlideshowPageTitle": "Slideshow",
"settingsSlideshowRepeat": "Repeat", "settingsSlideshowRepeat": "Repeat",
"settingsSlideshowShuffle": "Shuffle", "settingsSlideshowShuffle": "Shuffle",
"settingsSlideshowFillScreen": "Fill screen", "settingsSlideshowFillScreen": "Fill screen",
"settingsSlideshowTransitionTile": "Transition", "settingsSlideshowTransitionTile": "Transition",
"settingsSlideshowTransitionTitle": "Transition", "settingsSlideshowTransitionDialogTitle": "Transition",
"settingsSlideshowIntervalTile": "Interval", "settingsSlideshowIntervalTile": "Interval",
"settingsSlideshowIntervalTitle": "Interval", "settingsSlideshowIntervalDialogTitle": "Interval",
"settingsSlideshowVideoPlaybackTile": "Video playback", "settingsSlideshowVideoPlaybackTile": "Video playback",
"settingsSlideshowVideoPlaybackTitle": "Video Playback", "settingsSlideshowVideoPlaybackDialogTitle": "Video Playback",
"settingsVideoPageTitle": "Video Settings", "settingsVideoPageTitle": "Video Settings",
"settingsSectionVideo": "Video", "settingsVideoSectionTitle": "Video",
"settingsVideoShowVideos": "Show videos", "settingsVideoShowVideos": "Show videos",
"settingsVideoEnableHardwareAcceleration": "Hardware acceleration", "settingsVideoEnableHardwareAcceleration": "Hardware acceleration",
"settingsVideoEnableAutoPlay": "Auto play", "settingsVideoEnableAutoPlay": "Auto play",
"settingsVideoLoopModeTile": "Loop mode", "settingsVideoLoopModeTile": "Loop mode",
"settingsVideoLoopModeTitle": "Loop Mode", "settingsVideoLoopModeDialogTitle": "Loop Mode",
"settingsSubtitleThemeTile": "Subtitles", "settingsSubtitleThemeTile": "Subtitles",
"settingsSubtitleThemeTitle": "Subtitles", "settingsSubtitleThemePageTitle": "Subtitles",
"settingsSubtitleThemeSample": "This is a sample.", "settingsSubtitleThemeSample": "This is a sample.",
"settingsSubtitleThemeTextAlignmentTile": "Text alignment", "settingsSubtitleThemeTextAlignmentTile": "Text alignment",
"settingsSubtitleThemeTextAlignmentTitle": "Text Alignment", "settingsSubtitleThemeTextAlignmentDialogTitle": "Text Alignment",
"settingsSubtitleThemeTextSize": "Text size", "settingsSubtitleThemeTextSize": "Text size",
"settingsSubtitleThemeShowOutline": "Show outline and shadow", "settingsSubtitleThemeShowOutline": "Show outline and shadow",
"settingsSubtitleThemeTextColor": "Text color", "settingsSubtitleThemeTextColor": "Text color",
@ -723,13 +735,13 @@
"settingsSubtitleThemeTextAlignmentRight": "Right", "settingsSubtitleThemeTextAlignmentRight": "Right",
"settingsVideoControlsTile": "Controls", "settingsVideoControlsTile": "Controls",
"settingsVideoControlsTitle": "Controls", "settingsVideoControlsPageTitle": "Controls",
"settingsVideoButtonsTile": "Buttons", "settingsVideoButtonsTile": "Buttons",
"settingsVideoButtonsTitle": "Buttons", "settingsVideoButtonsDialogTitle": "Buttons",
"settingsVideoGestureDoubleTapTogglePlay": "Double tap to play/pause", "settingsVideoGestureDoubleTapTogglePlay": "Double tap to play/pause",
"settingsVideoGestureSideDoubleTapSeek": "Double tap on screen edges to seek backward/forward", "settingsVideoGestureSideDoubleTapSeek": "Double tap on screen edges to seek backward/forward",
"settingsSectionPrivacy": "Privacy", "settingsPrivacySectionTitle": "Privacy",
"settingsAllowInstalledAppAccess": "Allow access to app inventory", "settingsAllowInstalledAppAccess": "Allow access to app inventory",
"settingsAllowInstalledAppAccessSubtitle": "Used to improve album display", "settingsAllowInstalledAppAccessSubtitle": "Used to improve album display",
"settingsAllowErrorReporting": "Allow anonymous error reporting", "settingsAllowErrorReporting": "Allow anonymous error reporting",
@ -738,47 +750,51 @@
"settingsEnableBinSubtitle": "Keep deleted items for 30 days", "settingsEnableBinSubtitle": "Keep deleted items for 30 days",
"settingsHiddenItemsTile": "Hidden items", "settingsHiddenItemsTile": "Hidden items",
"settingsHiddenItemsTitle": "Hidden Items", "settingsHiddenItemsPageTitle": "Hidden Items",
"settingsHiddenFiltersTitle": "Hidden Filters", "settingsHiddenItemsTabFilters": "Hidden Filters",
"settingsHiddenFiltersBanner": "Photos and videos matching hidden filters will not appear in your collection.", "settingsHiddenFiltersBanner": "Photos and videos matching hidden filters will not appear in your collection.",
"settingsHiddenFiltersEmpty": "No hidden filters", "settingsHiddenFiltersEmpty": "No hidden filters",
"settingsHiddenPathsTitle": "Hidden Paths", "settingsHiddenItemsTabPaths": "Hidden Paths",
"settingsHiddenPathsBanner": "Photos and videos in these folders, or any of their subfolders, will not appear in your collection.", "settingsHiddenPathsBanner": "Photos and videos in these folders, or any of their subfolders, will not appear in your collection.",
"addPathTooltip": "Add path", "addPathTooltip": "Add path",
"settingsStorageAccessTile": "Storage access", "settingsStorageAccessTile": "Storage access",
"settingsStorageAccessTitle": "Storage Access", "settingsStorageAccessPageTitle": "Storage Access",
"settingsStorageAccessBanner": "Some directories require an explicit access grant to modify files in them. You can review here directories to which you previously gave access.", "settingsStorageAccessBanner": "Some directories require an explicit access grant to modify files in them. You can review here directories to which you previously gave access.",
"settingsStorageAccessEmpty": "No access grants", "settingsStorageAccessEmpty": "No access grants",
"settingsStorageAccessRevokeTooltip": "Revoke", "settingsStorageAccessRevokeTooltip": "Revoke",
"settingsSectionAccessibility": "Accessibility", "settingsAccessibilitySectionTitle": "Accessibility",
"settingsRemoveAnimationsTile": "Remove animations", "settingsRemoveAnimationsTile": "Remove animations",
"settingsRemoveAnimationsTitle": "Remove Animations", "settingsRemoveAnimationsDialogTitle": "Remove Animations",
"settingsTimeToTakeActionTile": "Time to take action", "settingsTimeToTakeActionTile": "Time to take action",
"settingsTimeToTakeActionTitle": "Time to Take Action", "settingsTimeToTakeActionDialogTitle": "Time to Take Action",
"settingsSectionDisplay": "Display", "settingsDisplaySectionTitle": "Display",
"settingsThemeBrightness": "Theme", "settingsThemeBrightnessTile": "Theme",
"settingsThemeBrightnessDialogTitle": "Theme",
"settingsThemeColorHighlights": "Color highlights", "settingsThemeColorHighlights": "Color highlights",
"settingsThemeEnableDynamicColor": "Dynamic color", "settingsThemeEnableDynamicColor": "Dynamic color",
"settingsDisplayRefreshRateModeTile": "Display refresh rate", "settingsDisplayRefreshRateModeTile": "Display refresh rate",
"settingsDisplayRefreshRateModeTitle": "Refresh Rate", "settingsDisplayRefreshRateModeDialogTitle": "Refresh Rate",
"settingsSectionLanguage": "Language & Formats", "settingsLanguageSectionTitle": "Language & Formats",
"settingsLanguage": "Language", "settingsLanguageTile": "Language",
"settingsLanguagePageTitle": "Language",
"settingsCoordinateFormatTile": "Coordinate format", "settingsCoordinateFormatTile": "Coordinate format",
"settingsCoordinateFormatTitle": "Coordinate Format", "settingsCoordinateFormatDialogTitle": "Coordinate Format",
"settingsUnitSystemTile": "Units", "settingsUnitSystemTile": "Units",
"settingsUnitSystemTitle": "Units", "settingsUnitSystemDialogTitle": "Units",
"settingsScreenSaverPageTitle": "Screen Saver", "settingsScreenSaverPageTitle": "Screen Saver",
"settingsWidgetPageTitle": "Photo Frame", "settingsWidgetPageTitle": "Photo Frame",
"settingsWidgetShowOutline": "Outline", "settingsWidgetShowOutline": "Outline",
"settingsCollectionTile": "Collection",
"statsPageTitle": "Stats", "statsPageTitle": "Stats",
"statsWithGps": "{count, plural, =1{1 item with location} other{{count} items with location}}", "statsWithGps": "{count, plural, =1{1 item with location} other{{count} items with location}}",
"@statsWithGps": { "@statsWithGps": {
@ -786,9 +802,9 @@
"count": {} "count": {}
} }
}, },
"statsTopCountries": "Top Countries", "statsTopCountriesSectionTitle": "Top Countries",
"statsTopPlaces": "Top Places", "statsTopPlacesSectionTitle": "Top Places",
"statsTopTags": "Top Tags", "statsTopTagsSectionTitle": "Top Tags",
"viewerOpenPanoramaButtonLabel": "OPEN PANORAMA", "viewerOpenPanoramaButtonLabel": "OPEN PANORAMA",
"viewerSetWallpaperButtonLabel": "SET WALLPAPER", "viewerSetWallpaperButtonLabel": "SET WALLPAPER",
@ -799,6 +815,7 @@
"viewerInfoBackToViewerTooltip": "Back to viewer", "viewerInfoBackToViewerTooltip": "Back to viewer",
"viewerInfoUnknown": "unknown", "viewerInfoUnknown": "unknown",
"viewerInfoLabelDescription": "Description",
"viewerInfoLabelTitle": "Title", "viewerInfoLabelTitle": "Title",
"viewerInfoLabelDate": "Date", "viewerInfoLabelDate": "Date",
"viewerInfoLabelResolution": "Resolution", "viewerInfoLabelResolution": "Resolution",
@ -810,7 +827,7 @@
"viewerInfoLabelCoordinates": "Coordinates", "viewerInfoLabelCoordinates": "Coordinates",
"viewerInfoLabelAddress": "Address", "viewerInfoLabelAddress": "Address",
"mapStyleTitle": "Map Style", "mapStyleDialogTitle": "Map Style",
"mapStyleTooltip": "Select map style", "mapStyleTooltip": "Select map style",
"mapZoomInTooltip": "Zoom in", "mapZoomInTooltip": "Zoom in",
"mapZoomOutTooltip": "Zoom out", "mapZoomOutTooltip": "Zoom out",

View file

@ -27,6 +27,7 @@
"actionRemove": "Remover", "actionRemove": "Remover",
"resetTooltip": "Restablecer", "resetTooltip": "Restablecer",
"saveTooltip": "Guardar", "saveTooltip": "Guardar",
"pickTooltip": "Elegir",
"doubleBackExitMessage": "Presione «atrás» nuevamente para salir.", "doubleBackExitMessage": "Presione «atrás» nuevamente para salir.",
"doNotAskAgain": "No preguntar nuevamente", "doNotAskAgain": "No preguntar nuevamente",
@ -93,10 +94,10 @@
"filterBinLabel": "Cesto de basura", "filterBinLabel": "Cesto de basura",
"filterFavouriteLabel": "Favorito", "filterFavouriteLabel": "Favorito",
"filterLocationEmptyLabel": "No localizado", "filterNoLocationLabel": "No localizado",
"filterTagEmptyLabel": "Sin etiquetar", "filterNoRatingLabel": "Sin clasificar",
"filterNoTagLabel": "Sin etiquetar",
"filterOnThisDayLabel": "De este día", "filterOnThisDayLabel": "De este día",
"filterRatingUnratedLabel": "Sin clasificar",
"filterRatingRejectedLabel": "Rechazado", "filterRatingRejectedLabel": "Rechazado",
"filterTypeAnimatedLabel": "Animado", "filterTypeAnimatedLabel": "Animado",
"filterTypeMotionPhotoLabel": "Foto en movimiento", "filterTypeMotionPhotoLabel": "Foto en movimiento",
@ -177,16 +178,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "Tarjeta de memoria", "storageVolumeDescriptionFallbackNonPrimary": "Tarjeta de memoria",
"rootDirectoryDescription": "el directorio raíz", "rootDirectoryDescription": "el directorio raíz",
"otherDirectoryDescription": "el directorio «{name}»", "otherDirectoryDescription": "el directorio «{name}»",
"storageAccessDialogTitle": "Acceso al almacenamiento",
"storageAccessDialogMessage": "Por favor seleccione {directory} en «{volume}» en la siguiente pantalla para permitir a esta aplicación tener acceso.", "storageAccessDialogMessage": "Por favor seleccione {directory} en «{volume}» en la siguiente pantalla para permitir a esta aplicación tener acceso.",
"restrictedAccessDialogTitle": "Acceso restringido",
"restrictedAccessDialogMessage": "Esta aplicación no tiene permiso para modificar archivos de {directory} en «{volume}».\n\nPor favor use un gestor de archivos o la aplicación de galería preinstalada para mover los elementos a otro directorio.", "restrictedAccessDialogMessage": "Esta aplicación no tiene permiso para modificar archivos de {directory} en «{volume}».\n\nPor favor use un gestor de archivos o la aplicación de galería preinstalada para mover los elementos a otro directorio.",
"notEnoughSpaceDialogTitle": "Espacio insuficiente",
"notEnoughSpaceDialogMessage": "Esta operación necesita {neededSize} de espacio libre en «{volume}» para completarse, pero sólo hay {freeSize} disponible.", "notEnoughSpaceDialogMessage": "Esta operación necesita {neededSize} de espacio libre en «{volume}» para completarse, pero sólo hay {freeSize} disponible.",
"missingSystemFilePickerDialogTitle": "Selector de archivos del sistema no disponible",
"missingSystemFilePickerDialogMessage": "El selector de archivos del sistema no se encuentra disponible o fue deshabilitado. Por favor habilítelo e intente nuevamente.", "missingSystemFilePickerDialogMessage": "El selector de archivos del sistema no se encuentra disponible o fue deshabilitado. Por favor habilítelo e intente nuevamente.",
"unsupportedTypeDialogTitle": "Tipos de archivo incompatibles",
"unsupportedTypeDialogMessage": "{count, plural, =1{Esta operación no está disponible para un elemento del siguiente tipo: {types}.} other{Esta operación no está disponible para elementos de los siguientes tipos: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, =1{Esta operación no está disponible para un elemento del siguiente tipo: {types}.} other{Esta operación no está disponible para elementos de los siguientes tipos: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Algunos archivos en el directorio de destino tienen el mismo nombre.", "nameConflictDialogSingleSourceMessage": "Algunos archivos en el directorio de destino tienen el mismo nombre.",
@ -195,7 +191,6 @@
"addShortcutDialogLabel": "Etiqueta del atajo", "addShortcutDialogLabel": "Etiqueta del atajo",
"addShortcutButtonLabel": "AGREGAR", "addShortcutButtonLabel": "AGREGAR",
"noMatchingAppDialogTitle": "Sin aplicación compatible",
"noMatchingAppDialogMessage": "No se encontraron aplicaciones para manejar esto.", "noMatchingAppDialogMessage": "No se encontraron aplicaciones para manejar esto.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{¿Mover este elemento al cesto de basura?} other{¿Mover estos {count} elementos al cesto de basura?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{¿Mover este elemento al cesto de basura?} other{¿Mover estos {count} elementos al cesto de basura?}}",
@ -224,7 +219,7 @@
"renameEntrySetPageTitle": "Renombrar", "renameEntrySetPageTitle": "Renombrar",
"renameEntrySetPagePatternFieldLabel": "Patrón de nombramiento", "renameEntrySetPagePatternFieldLabel": "Patrón de nombramiento",
"renameEntrySetPageInsertTooltip": "Insertar campo", "renameEntrySetPageInsertTooltip": "Insertar campo",
"renameEntrySetPagePreview": "Vista previa", "renameEntrySetPagePreviewSectionTitle": "Vista previa",
"renameProcessorCounter": "Contador", "renameProcessorCounter": "Contador",
"renameProcessorName": "Nombre", "renameProcessorName": "Nombre",
@ -285,9 +280,9 @@
"menuActionSlideshow": "Presentación", "menuActionSlideshow": "Presentación",
"menuActionStats": "Estadísticas", "menuActionStats": "Estadísticas",
"viewDialogTabSort": "Ordenar", "viewDialogSortSectionTitle": "Ordenar",
"viewDialogTabGroup": "Grupo", "viewDialogGroupSectionTitle": "Grupo",
"viewDialogTabLayout": "Disposición", "viewDialogLayoutSectionTitle": "Disposición",
"tileLayoutGrid": "Cuadrícula", "tileLayoutGrid": "Cuadrícula",
"tileLayoutList": "Lista", "tileLayoutList": "Lista",
@ -304,24 +299,24 @@
"aboutLinkLicense": "Licencia", "aboutLinkLicense": "Licencia",
"aboutLinkPolicy": "Política de privacidad", "aboutLinkPolicy": "Política de privacidad",
"aboutBug": "Reporte de errores", "aboutBugSectionTitle": "Reporte de errores",
"aboutBugSaveLogInstruction": "Guardar registros de la aplicación a un archivo", "aboutBugSaveLogInstruction": "Guardar registros de la aplicación a un archivo",
"aboutBugCopyInfoInstruction": "Copiar información del sistema", "aboutBugCopyInfoInstruction": "Copiar información del sistema",
"aboutBugCopyInfoButton": "Copiar", "aboutBugCopyInfoButton": "Copiar",
"aboutBugReportInstruction": "Reportar en GitHub con los registros y la información del sistema", "aboutBugReportInstruction": "Reportar en GitHub con los registros y la información del sistema",
"aboutBugReportButton": "Reportar", "aboutBugReportButton": "Reportar",
"aboutCredits": "Créditos", "aboutCreditsSectionTitle": "Créditos",
"aboutCreditsWorldAtlas1": "Esta aplicación usa un archivo TopoJSON de", "aboutCreditsWorldAtlas1": "Esta aplicación usa un archivo TopoJSON de",
"aboutCreditsWorldAtlas2": "bajo licencia ISC.", "aboutCreditsWorldAtlas2": "bajo licencia ISC.",
"aboutCreditsTranslators": "Traductores:", "aboutTranslatorsSectionTitle": "Traductores:",
"aboutLicenses": "Licencias de código abierto", "aboutLicensesSectionTitle": "Licencias de código abierto",
"aboutLicensesBanner": "Esta aplicación usa los siguientes paquetes y librerías de código abierto.", "aboutLicensesBanner": "Esta aplicación usa los siguientes paquetes y librerías de código abierto.",
"aboutLicensesAndroidLibraries": "Librerías de Android", "aboutLicensesAndroidLibrariesSectionTitle": "Librerías de Android",
"aboutLicensesFlutterPlugins": "Añadidos de Flutter", "aboutLicensesFlutterPluginsSectionTitle": "Añadidos de Flutter",
"aboutLicensesFlutterPackages": "Paquetes de Flutter", "aboutLicensesFlutterPackagesSectionTitle": "Paquetes de Flutter",
"aboutLicensesDartPackages": "Paquetes de Dart", "aboutLicensesDartPackagesSectionTitle": "Paquetes de Dart",
"aboutLicensesShowAllButtonLabel": "Mostrar todas las licencias", "aboutLicensesShowAllButtonLabel": "Mostrar todas las licencias",
"policyPageTitle": "Política de privacidad", "policyPageTitle": "Política de privacidad",
@ -341,11 +336,6 @@
"collectionSearchTitlesHintText": "Buscar títulos", "collectionSearchTitlesHintText": "Buscar títulos",
"collectionSortDate": "Por fecha",
"collectionSortSize": "Por tamaño",
"collectionSortName": "Por nombre de álbum y archivo",
"collectionSortRating": "Por clasificación",
"collectionGroupAlbum": "Por álbum", "collectionGroupAlbum": "Por álbum",
"collectionGroupMonth": "Por mes", "collectionGroupMonth": "Por mes",
"collectionGroupDay": "Por día", "collectionGroupDay": "Por día",
@ -374,6 +364,8 @@
"collectionSelectSectionTooltip": "Seleccionar sección", "collectionSelectSectionTooltip": "Seleccionar sección",
"collectionDeselectSectionTooltip": "Deseleccionar sección", "collectionDeselectSectionTooltip": "Deseleccionar sección",
"drawerAboutButton": "Acerca de",
"drawerSettingsButton": "Ajustes",
"drawerCollectionAll": "Toda la colección", "drawerCollectionAll": "Toda la colección",
"drawerCollectionFavourites": "Favoritos", "drawerCollectionFavourites": "Favoritos",
"drawerCollectionImages": "Imágenes", "drawerCollectionImages": "Imágenes",
@ -383,10 +375,16 @@
"drawerCollectionPanoramas": "Panorámicas", "drawerCollectionPanoramas": "Panorámicas",
"drawerCollectionRaws": "Fotos Raw", "drawerCollectionRaws": "Fotos Raw",
"drawerCollectionSphericalVideos": "Videos en 360°", "drawerCollectionSphericalVideos": "Videos en 360°",
"drawerAlbumPage": "Álbumes",
"drawerCountryPage": "Países",
"drawerTagPage": "Etiquetas",
"chipSortDate": "Por fecha", "sortByDate": "Por fecha",
"chipSortName": "Por nombre", "sortByName": "Por nombre",
"chipSortCount": "Por número de elementos", "sortByItemCount": "Por número de elementos",
"sortBySize": "Por tamaño",
"sortByAlbumFileName": "Por nombre de álbum y archivo",
"sortByRating": "Por clasificación",
"albumGroupTier": "Por nivel", "albumGroupTier": "Por nivel",
"albumGroupVolume": "Por volumen de almacenamiento", "albumGroupVolume": "Por volumen de almacenamiento",
@ -418,13 +416,13 @@
"binPageTitle": "Cesto de basura", "binPageTitle": "Cesto de basura",
"searchCollectionFieldHint": "Buscar en colección", "searchCollectionFieldHint": "Buscar en colección",
"searchSectionRecent": "Reciente", "searchRecentSectionTitle": "Reciente",
"searchSectionDate": "Fecha", "searchDateSectionTitle": "Fecha",
"searchSectionAlbums": "Álbumes", "searchAlbumsSectionTitle": "Álbumes",
"searchSectionCountries": "Países", "searchCountriesSectionTitle": "Países",
"searchSectionPlaces": "Lugares", "searchPlacesSectionTitle": "Lugares",
"searchSectionTags": "Etiquetas", "searchTagsSectionTitle": "Etiquetas",
"searchSectionRating": "Clasificaciones", "searchRatingSectionTitle": "Clasificaciones",
"settingsPageTitle": "Ajustes", "settingsPageTitle": "Ajustes",
"settingsSystemDefault": "Sistema", "settingsSystemDefault": "Sistema",
@ -433,36 +431,39 @@
"settingsSearchFieldLabel": "Buscar ajustes", "settingsSearchFieldLabel": "Buscar ajustes",
"settingsSearchEmpty": "Sin coincidencias", "settingsSearchEmpty": "Sin coincidencias",
"settingsActionExport": "Exportar", "settingsActionExport": "Exportar",
"settingsActionExportDialogTitle": "Exportar",
"settingsActionImport": "Importar", "settingsActionImport": "Importar",
"settingsActionImportDialogTitle": "Importar",
"appExportCovers": "Carátulas", "appExportCovers": "Carátulas",
"appExportFavourites": "Favoritos", "appExportFavourites": "Favoritos",
"appExportSettings": "Ajustes", "appExportSettings": "Ajustes",
"settingsSectionNavigation": "Navegación", "settingsNavigationSectionTitle": "Navegación",
"settingsHome": "Inicio", "settingsHomeTile": "Inicio",
"settingsHomeDialogTitle": "Inicio",
"settingsShowBottomNavigationBar": "Mostrar barra de navegación inferior", "settingsShowBottomNavigationBar": "Mostrar barra de navegación inferior",
"settingsKeepScreenOnTile": "Mantener pantalla encendida", "settingsKeepScreenOnTile": "Mantener pantalla encendida",
"settingsKeepScreenOnTitle": "Mantener pantalla encendida", "settingsKeepScreenOnDialogTitle": "Mantener pantalla encendida",
"settingsDoubleBackExit": "Presione «atrás» dos veces para salir", "settingsDoubleBackExit": "Presione «atrás» dos veces para salir",
"settingsConfirmationDialogTile": "Diálogos de confirmación", "settingsConfirmationTile": "Diálogos de confirmación",
"settingsConfirmationDialogTitle": "Diálogos de confirmación", "settingsConfirmationDialogTitle": "Diálogos de confirmación",
"settingsConfirmationDialogDeleteItems": "Preguntar antes de eliminar elementos permanentemente", "settingsConfirmationBeforeDeleteItems": "Preguntar antes de eliminar elementos permanentemente",
"settingsConfirmationDialogMoveToBinItems": "Preguntar antes de mover elementos al cesto de basura", "settingsConfirmationBeforeMoveToBinItems": "Preguntar antes de mover elementos al cesto de basura",
"settingsConfirmationDialogMoveUndatedItems": "Preguntar antes de mover elementos sin una fecha de metadatos", "settingsConfirmationBeforeMoveUndatedItems": "Preguntar antes de mover elementos sin una fecha de metadatos",
"settingsNavigationDrawerTile": "Menú de navegación", "settingsNavigationDrawerTile": "Menú de navegación",
"settingsNavigationDrawerEditorTitle": "Menú de navegación", "settingsNavigationDrawerEditorPageTitle": "Menú de navegación",
"settingsNavigationDrawerBanner": "Toque y mantenga para mover y reordenar elementos del menú.", "settingsNavigationDrawerBanner": "Toque y mantenga para mover y reordenar elementos del menú.",
"settingsNavigationDrawerTabTypes": "Tipos", "settingsNavigationDrawerTabTypes": "Tipos",
"settingsNavigationDrawerTabAlbums": "Álbumes", "settingsNavigationDrawerTabAlbums": "Álbumes",
"settingsNavigationDrawerTabPages": "Páginas", "settingsNavigationDrawerTabPages": "Páginas",
"settingsNavigationDrawerAddAlbum": "Agregar álbum", "settingsNavigationDrawerAddAlbum": "Agregar álbum",
"settingsSectionThumbnails": "Miniaturas", "settingsThumbnailSectionTitle": "Miniaturas",
"settingsThumbnailOverlayTile": "Incrustaciones", "settingsThumbnailOverlayTile": "Incrustaciones",
"settingsThumbnailOverlayTitle": "Incrustaciones", "settingsThumbnailOverlayPageTitle": "Incrustaciones",
"settingsThumbnailShowFavouriteIcon": "Mostrar icono de favoritos", "settingsThumbnailShowFavouriteIcon": "Mostrar icono de favoritos",
"settingsThumbnailShowTagIcon": "Mostrar ícono de etiqueta", "settingsThumbnailShowTagIcon": "Mostrar ícono de etiqueta",
"settingsThumbnailShowLocationIcon": "Mostrar icono de ubicación", "settingsThumbnailShowLocationIcon": "Mostrar icono de ubicación",
@ -472,13 +473,13 @@
"settingsThumbnailShowVideoDuration": "Mostrar duración de video", "settingsThumbnailShowVideoDuration": "Mostrar duración de video",
"settingsCollectionQuickActionsTile": "Acciones rápidas", "settingsCollectionQuickActionsTile": "Acciones rápidas",
"settingsCollectionQuickActionEditorTitle": "Acciones rápidas", "settingsCollectionQuickActionEditorPageTitle": "Acciones rápidas",
"settingsCollectionQuickActionTabBrowsing": "Búsqueda", "settingsCollectionQuickActionTabBrowsing": "Búsqueda",
"settingsCollectionQuickActionTabSelecting": "Selección", "settingsCollectionQuickActionTabSelecting": "Selección",
"settingsCollectionBrowsingQuickActionEditorBanner": "Toque y mantenga para mover botones y seleccionar cuáles acciones se muestran mientras busca elementos.", "settingsCollectionBrowsingQuickActionEditorBanner": "Toque y mantenga para mover botones y seleccionar cuáles acciones se muestran mientras busca elementos.",
"settingsCollectionSelectionQuickActionEditorBanner": "Toque y mantenga para mover botones y seleccionar cuáles acciones se muestran mientras selecciona elementos.", "settingsCollectionSelectionQuickActionEditorBanner": "Toque y mantenga para mover botones y seleccionar cuáles acciones se muestran mientras selecciona elementos.",
"settingsSectionViewer": "Visor", "settingsViewerSectionTitle": "Visor",
"settingsViewerGestureSideTapNext": "Toque en los bordes de la pantalla para mostrar el elemento anterior/siguiente", "settingsViewerGestureSideTapNext": "Toque en los bordes de la pantalla para mostrar el elemento anterior/siguiente",
"settingsViewerUseCutout": "Usar área recortada", "settingsViewerUseCutout": "Usar área recortada",
"settingsViewerMaximumBrightness": "Brillo máximo", "settingsViewerMaximumBrightness": "Brillo máximo",
@ -486,14 +487,14 @@
"settingsImageBackground": "Imagen de fondo", "settingsImageBackground": "Imagen de fondo",
"settingsViewerQuickActionsTile": "Acciones rápidas", "settingsViewerQuickActionsTile": "Acciones rápidas",
"settingsViewerQuickActionEditorTitle": "Acciones rápidas", "settingsViewerQuickActionEditorPageTitle": "Acciones rápidas",
"settingsViewerQuickActionEditorBanner": "Toque y mantenga para mover botones y seleccionar cuáles acciones se muestran en el visor.", "settingsViewerQuickActionEditorBanner": "Toque y mantenga para mover botones y seleccionar cuáles acciones se muestran en el visor.",
"settingsViewerQuickActionEditorDisplayedButtons": "Botones mostrados", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Botones mostrados",
"settingsViewerQuickActionEditorAvailableButtons": "Botones disponibles", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Botones disponibles",
"settingsViewerQuickActionEmpty": "Sin botones", "settingsViewerQuickActionEmpty": "Sin botones",
"settingsViewerOverlayTile": "Incrustaciones", "settingsViewerOverlayTile": "Incrustaciones",
"settingsViewerOverlayTitle": "Incrustaciones", "settingsViewerOverlayPageTitle": "Incrustaciones",
"settingsViewerShowOverlayOnOpening": "Mostrar durante apertura", "settingsViewerShowOverlayOnOpening": "Mostrar durante apertura",
"settingsViewerShowMinimap": "Mostrar mapa en miniatura", "settingsViewerShowMinimap": "Mostrar mapa en miniatura",
"settingsViewerShowInformation": "Mostrar información", "settingsViewerShowInformation": "Mostrar información",
@ -503,30 +504,30 @@
"settingsViewerEnableOverlayBlurEffect": "Efecto de difuminado", "settingsViewerEnableOverlayBlurEffect": "Efecto de difuminado",
"settingsViewerSlideshowTile": "Presentación", "settingsViewerSlideshowTile": "Presentación",
"settingsViewerSlideshowTitle": "Presentación", "settingsViewerSlideshowPageTitle": "Presentación",
"settingsSlideshowRepeat": "Repetir", "settingsSlideshowRepeat": "Repetir",
"settingsSlideshowShuffle": "Mezclar", "settingsSlideshowShuffle": "Mezclar",
"settingsSlideshowFillScreen": "Llenar pantalla", "settingsSlideshowFillScreen": "Llenar pantalla",
"settingsSlideshowTransitionTile": "Transición", "settingsSlideshowTransitionTile": "Transición",
"settingsSlideshowTransitionTitle": "Transición", "settingsSlideshowTransitionDialogTitle": "Transición",
"settingsSlideshowIntervalTile": "Intervalo", "settingsSlideshowIntervalTile": "Intervalo",
"settingsSlideshowIntervalTitle": "Intervalo", "settingsSlideshowIntervalDialogTitle": "Intervalo",
"settingsSlideshowVideoPlaybackTile": "Reproducción de video", "settingsSlideshowVideoPlaybackTile": "Reproducción de video",
"settingsSlideshowVideoPlaybackTitle": "Reproducción de video", "settingsSlideshowVideoPlaybackDialogTitle": "Reproducción de video",
"settingsVideoPageTitle": "Ajustes de video", "settingsVideoPageTitle": "Ajustes de video",
"settingsSectionVideo": "Video", "settingsVideoSectionTitle": "Video",
"settingsVideoShowVideos": "Mostrar videos", "settingsVideoShowVideos": "Mostrar videos",
"settingsVideoEnableHardwareAcceleration": "Aceleración por hardware", "settingsVideoEnableHardwareAcceleration": "Aceleración por hardware",
"settingsVideoEnableAutoPlay": "Reproducción automática", "settingsVideoEnableAutoPlay": "Reproducción automática",
"settingsVideoLoopModeTile": "Modo bucle", "settingsVideoLoopModeTile": "Modo bucle",
"settingsVideoLoopModeTitle": "Modo bucle", "settingsVideoLoopModeDialogTitle": "Modo bucle",
"settingsSubtitleThemeTile": "Subtítulos", "settingsSubtitleThemeTile": "Subtítulos",
"settingsSubtitleThemeTitle": "Subtítulos", "settingsSubtitleThemePageTitle": "Subtítulos",
"settingsSubtitleThemeSample": "Esto es un ejemplo.", "settingsSubtitleThemeSample": "Esto es un ejemplo.",
"settingsSubtitleThemeTextAlignmentTile": "Alineación de texto", "settingsSubtitleThemeTextAlignmentTile": "Alineación de texto",
"settingsSubtitleThemeTextAlignmentTitle": "Alineación de texto", "settingsSubtitleThemeTextAlignmentDialogTitle": "Alineación de texto",
"settingsSubtitleThemeTextSize": "Tamaño de texto", "settingsSubtitleThemeTextSize": "Tamaño de texto",
"settingsSubtitleThemeShowOutline": "Mostrar contorno y sombra", "settingsSubtitleThemeShowOutline": "Mostrar contorno y sombra",
"settingsSubtitleThemeTextColor": "Color de texto", "settingsSubtitleThemeTextColor": "Color de texto",
@ -538,13 +539,13 @@
"settingsSubtitleThemeTextAlignmentRight": "Derecha", "settingsSubtitleThemeTextAlignmentRight": "Derecha",
"settingsVideoControlsTile": "Controles", "settingsVideoControlsTile": "Controles",
"settingsVideoControlsTitle": "Controles", "settingsVideoControlsPageTitle": "Controles",
"settingsVideoButtonsTile": "Botones", "settingsVideoButtonsTile": "Botones",
"settingsVideoButtonsTitle": "Botones", "settingsVideoButtonsDialogTitle": "Botones",
"settingsVideoGestureDoubleTapTogglePlay": "Doble toque para reproducir/pausar", "settingsVideoGestureDoubleTapTogglePlay": "Doble toque para reproducir/pausar",
"settingsVideoGestureSideDoubleTapSeek": "Doble toque en los bordes de la pantalla para buscar atrás/adelante", "settingsVideoGestureSideDoubleTapSeek": "Doble toque en los bordes de la pantalla para buscar atrás/adelante",
"settingsSectionPrivacy": "Privacidad", "settingsPrivacySectionTitle": "Privacidad",
"settingsAllowInstalledAppAccess": "Permita el acceso a lista de aplicaciones", "settingsAllowInstalledAppAccess": "Permita el acceso a lista de aplicaciones",
"settingsAllowInstalledAppAccessSubtitle": "Usado para mejorar los álbumes mostrados", "settingsAllowInstalledAppAccessSubtitle": "Usado para mejorar los álbumes mostrados",
"settingsAllowErrorReporting": "Permitir reporte de errores anónimo", "settingsAllowErrorReporting": "Permitir reporte de errores anónimo",
@ -553,52 +554,56 @@
"settingsEnableBinSubtitle": "Guardar los elementos eliminados por 30 días", "settingsEnableBinSubtitle": "Guardar los elementos eliminados por 30 días",
"settingsHiddenItemsTile": "Elementos ocultos", "settingsHiddenItemsTile": "Elementos ocultos",
"settingsHiddenItemsTitle": "Elementos ocultos", "settingsHiddenItemsPageTitle": "Elementos ocultos",
"settingsHiddenFiltersTitle": "Filtros", "settingsHiddenItemsTabFilters": "Filtros",
"settingsHiddenFiltersBanner": "Fotos y videos que concuerden con los filtros no aparecerán en su colección.", "settingsHiddenFiltersBanner": "Fotos y videos que concuerden con los filtros no aparecerán en su colección.",
"settingsHiddenFiltersEmpty": "Sin filtros", "settingsHiddenFiltersEmpty": "Sin filtros",
"settingsHiddenPathsTitle": "Ubicaciones ocultas", "settingsHiddenItemsTabPaths": "Ubicaciones ocultas",
"settingsHiddenPathsBanner": "Fotos y videos que se encuentren en estos directorios y cualquiera de sus subdirectorios no aparecerán en su colección.", "settingsHiddenPathsBanner": "Fotos y videos que se encuentren en estos directorios y cualquiera de sus subdirectorios no aparecerán en su colección.",
"addPathTooltip": "Añadir ubicación", "addPathTooltip": "Añadir ubicación",
"settingsStorageAccessTile": "Acceso al almacenamiento", "settingsStorageAccessTile": "Acceso al almacenamiento",
"settingsStorageAccessTitle": "Acceso al almacenamiento", "settingsStorageAccessPageTitle": "Acceso al almacenamiento",
"settingsStorageAccessBanner": "Algunos directorios requieren un permiso de acceso explícito para que sea posible modificar los archivos que contienen. Puede revisar los directorios con permiso aquí.", "settingsStorageAccessBanner": "Algunos directorios requieren un permiso de acceso explícito para que sea posible modificar los archivos que contienen. Puede revisar los directorios con permiso aquí.",
"settingsStorageAccessEmpty": "Sin permisos de acceso", "settingsStorageAccessEmpty": "Sin permisos de acceso",
"settingsStorageAccessRevokeTooltip": "Revocar", "settingsStorageAccessRevokeTooltip": "Revocar",
"settingsSectionAccessibility": "Accesibilidad", "settingsAccessibilitySectionTitle": "Accesibilidad",
"settingsRemoveAnimationsTile": "Remover animaciones", "settingsRemoveAnimationsTile": "Remover animaciones",
"settingsRemoveAnimationsTitle": "Remover animaciones", "settingsRemoveAnimationsDialogTitle": "Remover animaciones",
"settingsTimeToTakeActionTile": "Retraso para ejecutar una acción", "settingsTimeToTakeActionTile": "Retraso para ejecutar una acción",
"settingsTimeToTakeActionTitle": "Retraso para ejecutar una acción", "settingsTimeToTakeActionDialogTitle": "Retraso para ejecutar una acción",
"settingsSectionDisplay": "Pantalla", "settingsDisplaySectionTitle": "Pantalla",
"settingsThemeBrightness": "Tema", "settingsThemeBrightnessTile": "Tema",
"settingsThemeBrightnessDialogTitle": "Tema",
"settingsThemeColorHighlights": "Acentos de color", "settingsThemeColorHighlights": "Acentos de color",
"settingsThemeEnableDynamicColor": "Color dinámico", "settingsThemeEnableDynamicColor": "Color dinámico",
"settingsDisplayRefreshRateModeTile": "Tasa de refresco de la pantalla", "settingsDisplayRefreshRateModeTile": "Tasa de refresco de la pantalla",
"settingsDisplayRefreshRateModeTitle": "Tasa de refresco", "settingsDisplayRefreshRateModeDialogTitle": "Tasa de refresco",
"settingsSectionLanguage": "Idioma y formatos", "settingsLanguageSectionTitle": "Idioma y formatos",
"settingsLanguage": "Idioma", "settingsLanguageTile": "Idioma",
"settingsLanguagePageTitle": "Idioma",
"settingsCoordinateFormatTile": "Formato de coordenadas", "settingsCoordinateFormatTile": "Formato de coordenadas",
"settingsCoordinateFormatTitle": "Formato de coordenadas", "settingsCoordinateFormatDialogTitle": "Formato de coordenadas",
"settingsUnitSystemTile": "Unidades", "settingsUnitSystemTile": "Unidades",
"settingsUnitSystemTitle": "Unidades", "settingsUnitSystemDialogTitle": "Unidades",
"settingsScreenSaverPageTitle": "Protector de pantalla", "settingsScreenSaverPageTitle": "Protector de pantalla",
"settingsWidgetPageTitle": "Marco de foto", "settingsWidgetPageTitle": "Marco de foto",
"settingsWidgetShowOutline": "Borde", "settingsWidgetShowOutline": "Borde",
"settingsCollectionTile": "Colección",
"statsPageTitle": "Stats", "statsPageTitle": "Stats",
"statsWithGps": "{count, plural, =1{1 elemento con ubicación} other{{count} elementos con ubicación}}", "statsWithGps": "{count, plural, =1{1 elemento con ubicación} other{{count} elementos con ubicación}}",
"statsTopCountries": "Países principales", "statsTopCountriesSectionTitle": "Países principales",
"statsTopPlaces": "Lugares principales", "statsTopPlacesSectionTitle": "Lugares principales",
"statsTopTags": "Etiquetas principales", "statsTopTagsSectionTitle": "Etiquetas principales",
"viewerOpenPanoramaButtonLabel": "ABRIR PANORÁMICA", "viewerOpenPanoramaButtonLabel": "ABRIR PANORÁMICA",
"viewerSetWallpaperButtonLabel": "ESTABLECER FONDO", "viewerSetWallpaperButtonLabel": "ESTABLECER FONDO",
@ -620,7 +625,7 @@
"viewerInfoLabelCoordinates": "Coordinadas", "viewerInfoLabelCoordinates": "Coordinadas",
"viewerInfoLabelAddress": "Dirección", "viewerInfoLabelAddress": "Dirección",
"mapStyleTitle": "Estilo de mapa", "mapStyleDialogTitle": "Estilo de mapa",
"mapStyleTooltip": "Selección de estilo de mapa", "mapStyleTooltip": "Selección de estilo de mapa",
"mapZoomInTooltip": "Acercar", "mapZoomInTooltip": "Acercar",
"mapZoomOutTooltip": "Alejar", "mapZoomOutTooltip": "Alejar",

View file

@ -27,6 +27,7 @@
"actionRemove": "Supprimer", "actionRemove": "Supprimer",
"resetTooltip": "Réinitialiser", "resetTooltip": "Réinitialiser",
"saveTooltip": "Sauvegarder", "saveTooltip": "Sauvegarder",
"pickTooltip": "Sélectionner",
"doubleBackExitMessage": "Pressez «\u00A0retour\u00A0» à nouveau pour quitter.", "doubleBackExitMessage": "Pressez «\u00A0retour\u00A0» à nouveau pour quitter.",
"doNotAskAgain": "Ne pas demander de nouveau", "doNotAskAgain": "Ne pas demander de nouveau",
@ -87,18 +88,20 @@
"entryInfoActionEditDate": "Modifier la date", "entryInfoActionEditDate": "Modifier la date",
"entryInfoActionEditLocation": "Modifier le lieu", "entryInfoActionEditLocation": "Modifier le lieu",
"entryInfoActionEditDescription": "Modifier la description", "entryInfoActionEditTitleDescription": "Modifier titre et description",
"entryInfoActionEditRating": "Modifier la notation", "entryInfoActionEditRating": "Modifier la notation",
"entryInfoActionEditTags": "Modifier les libellés", "entryInfoActionEditTags": "Modifier les libellés",
"entryInfoActionRemoveMetadata": "Retirer les métadonnées", "entryInfoActionRemoveMetadata": "Retirer les métadonnées",
"filterBinLabel": "Corbeille", "filterBinLabel": "Corbeille",
"filterFavouriteLabel": "Favori", "filterFavouriteLabel": "Favori",
"filterLocationEmptyLabel": "Sans lieu", "filterNoDateLabel": "Sans date",
"filterTagEmptyLabel": "Sans libellé", "filterNoLocationLabel": "Sans lieu",
"filterNoRatingLabel": "Sans notation",
"filterNoTagLabel": "Sans libellé",
"filterNoTitleLabel": "Sans titre",
"filterOnThisDayLabel": "Ce jour-là", "filterOnThisDayLabel": "Ce jour-là",
"filterRecentlyAddedLabel": "Ajouté récemment", "filterRecentlyAddedLabel": "Ajouté récemment",
"filterRatingUnratedLabel": "Sans notation",
"filterRatingRejectedLabel": "Rejeté", "filterRatingRejectedLabel": "Rejeté",
"filterTypeAnimatedLabel": "Animation", "filterTypeAnimatedLabel": "Animation",
"filterTypeMotionPhotoLabel": "Photo animée", "filterTypeMotionPhotoLabel": "Photo animée",
@ -179,16 +182,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "Carte SD", "storageVolumeDescriptionFallbackNonPrimary": "Carte SD",
"rootDirectoryDescription": "dossier racine", "rootDirectoryDescription": "dossier racine",
"otherDirectoryDescription": "dossier «\u00A0{name}\u00A0»", "otherDirectoryDescription": "dossier «\u00A0{name}\u00A0»",
"storageAccessDialogTitle": "Accès au dossier",
"storageAccessDialogMessage": "Veuillez sélectionner le {directory} de «\u00A0{volume}\u00A0» à lécran suivant, pour que lapp puisse modifier son contenu.", "storageAccessDialogMessage": "Veuillez sélectionner le {directory} de «\u00A0{volume}\u00A0» à lécran suivant, pour que lapp puisse modifier son contenu.",
"restrictedAccessDialogTitle": "Accès restreint",
"restrictedAccessDialogMessage": "Cette app ne peut pas modifier les fichiers du {directory} de «\u00A0{volume}\u00A0».\n\nVeuillez utiliser une app pré-installée pour déplacer les fichiers vers un autre dossier.", "restrictedAccessDialogMessage": "Cette app ne peut pas modifier les fichiers du {directory} de «\u00A0{volume}\u00A0».\n\nVeuillez utiliser une app pré-installée pour déplacer les fichiers vers un autre dossier.",
"notEnoughSpaceDialogTitle": "Espace insuffisant",
"notEnoughSpaceDialogMessage": "Cette opération nécessite {neededSize} despace disponible sur «\u00A0{volume}\u00A0», mais il ne reste que {freeSize}.", "notEnoughSpaceDialogMessage": "Cette opération nécessite {neededSize} despace disponible sur «\u00A0{volume}\u00A0», mais il ne reste que {freeSize}.",
"missingSystemFilePickerDialogTitle": "Sélecteur de fichiers désactivé",
"missingSystemFilePickerDialogMessage": "Le sélecteur de fichiers du système est absent ou désactivé. Veuillez le réactiver et réessayer.", "missingSystemFilePickerDialogMessage": "Le sélecteur de fichiers du système est absent ou désactivé. Veuillez le réactiver et réessayer.",
"unsupportedTypeDialogTitle": "Formats non supportés",
"unsupportedTypeDialogMessage": "{count, plural, =1{Cette opération nest pas disponible pour les fichiers au format suivant : {types}.} other{Cette opération nest pas disponible pour les fichiers aux formats suivants : {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, =1{Cette opération nest pas disponible pour les fichiers au format suivant : {types}.} other{Cette opération nest pas disponible pour les fichiers aux formats suivants : {types}.}}",
"nameConflictDialogSingleSourceMessage": "Certains fichiers dans le dossier de destination ont le même nom.", "nameConflictDialogSingleSourceMessage": "Certains fichiers dans le dossier de destination ont le même nom.",
@ -197,7 +195,6 @@
"addShortcutDialogLabel": "Nom du raccourci", "addShortcutDialogLabel": "Nom du raccourci",
"addShortcutButtonLabel": "AJOUTER", "addShortcutButtonLabel": "AJOUTER",
"noMatchingAppDialogTitle": "App indisponible",
"noMatchingAppDialogMessage": "Aucune app ne peut effectuer cette opération.", "noMatchingAppDialogMessage": "Aucune app ne peut effectuer cette opération.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Mettre cet élément à la corbeille ?} other{Mettre ces {count} éléments à la corbeille ?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Mettre cet élément à la corbeille ?} other{Mettre ces {count} éléments à la corbeille ?}}",
@ -226,7 +223,7 @@
"renameEntrySetPageTitle": "Renommage", "renameEntrySetPageTitle": "Renommage",
"renameEntrySetPagePatternFieldLabel": "Modèle de nommage", "renameEntrySetPagePatternFieldLabel": "Modèle de nommage",
"renameEntrySetPageInsertTooltip": "Ajouter un champ", "renameEntrySetPageInsertTooltip": "Ajouter un champ",
"renameEntrySetPagePreview": "Aperçu", "renameEntrySetPagePreviewSectionTitle": "Aperçu",
"renameProcessorCounter": "Compteur", "renameProcessorCounter": "Compteur",
"renameProcessorName": "Nom", "renameProcessorName": "Nom",
@ -259,8 +256,6 @@
"locationPickerUseThisLocationButton": "Utiliser ce lieu", "locationPickerUseThisLocationButton": "Utiliser ce lieu",
"editEntryDescriptionDialogTitle": "Description",
"editEntryRatingDialogTitle": "Notation", "editEntryRatingDialogTitle": "Notation",
"removeEntryMetadataDialogTitle": "Retrait de métadonnées", "removeEntryMetadataDialogTitle": "Retrait de métadonnées",
@ -289,9 +284,10 @@
"menuActionSlideshow": "Diaporama", "menuActionSlideshow": "Diaporama",
"menuActionStats": "Statistiques", "menuActionStats": "Statistiques",
"viewDialogTabSort": "Tri", "viewDialogSortSectionTitle": "Tri",
"viewDialogTabGroup": "Groupes", "viewDialogGroupSectionTitle": "Groupes",
"viewDialogTabLayout": "Vue", "viewDialogLayoutSectionTitle": "Vue",
"viewDialogReverseSortOrder": "Inverser lordre",
"tileLayoutGrid": "Grille", "tileLayoutGrid": "Grille",
"tileLayoutList": "Liste", "tileLayoutList": "Liste",
@ -308,24 +304,24 @@
"aboutLinkLicense": "Licence", "aboutLinkLicense": "Licence",
"aboutLinkPolicy": "Politique de confidentialité", "aboutLinkPolicy": "Politique de confidentialité",
"aboutBug": "Rapports derreur", "aboutBugSectionTitle": "Rapports derreur",
"aboutBugSaveLogInstruction": "Sauvegarder les logs de lapp vers un fichier", "aboutBugSaveLogInstruction": "Sauvegarder les logs de lapp vers un fichier",
"aboutBugCopyInfoInstruction": "Copier les informations denvironnement", "aboutBugCopyInfoInstruction": "Copier les informations denvironnement",
"aboutBugCopyInfoButton": "Copier", "aboutBugCopyInfoButton": "Copier",
"aboutBugReportInstruction": "Créer une «\u00A0issue\u00A0» sur GitHub en attachant les logs et informations denvironnement", "aboutBugReportInstruction": "Créer une «\u00A0issue\u00A0» sur GitHub en attachant les logs et informations denvironnement",
"aboutBugReportButton": "Créer", "aboutBugReportButton": "Créer",
"aboutCredits": "Remerciements", "aboutCreditsSectionTitle": "Remerciements",
"aboutCreditsWorldAtlas1": "Cette app utilise un fichier TopoJSON de ", "aboutCreditsWorldAtlas1": "Cette app utilise un fichier TopoJSON de ",
"aboutCreditsWorldAtlas2": "sous licence ISC.", "aboutCreditsWorldAtlas2": "sous licence ISC.",
"aboutCreditsTranslators": "Traducteurs", "aboutTranslatorsSectionTitle": "Traducteurs",
"aboutLicenses": "Licences open-source", "aboutLicensesSectionTitle": "Licences open-source",
"aboutLicensesBanner": "Cette app utilise ces librairies et packages open-source.", "aboutLicensesBanner": "Cette app utilise ces librairies et packages open-source.",
"aboutLicensesAndroidLibraries": "Librairies Android", "aboutLicensesAndroidLibrariesSectionTitle": "Librairies Android",
"aboutLicensesFlutterPlugins": "Plugins Flutter", "aboutLicensesFlutterPluginsSectionTitle": "Plugins Flutter",
"aboutLicensesFlutterPackages": "Packages Flutter", "aboutLicensesFlutterPackagesSectionTitle": "Packages Flutter",
"aboutLicensesDartPackages": "Packages Dart", "aboutLicensesDartPackagesSectionTitle": "Packages Dart",
"aboutLicensesShowAllButtonLabel": "Afficher toutes les licences", "aboutLicensesShowAllButtonLabel": "Afficher toutes les licences",
"policyPageTitle": "Politique de confidentialité", "policyPageTitle": "Politique de confidentialité",
@ -345,11 +341,6 @@
"collectionSearchTitlesHintText": "Recherche de titres", "collectionSearchTitlesHintText": "Recherche de titres",
"collectionSortDate": "par date",
"collectionSortSize": "par taille",
"collectionSortName": "alphabétique",
"collectionSortRating": "par notation",
"collectionGroupAlbum": "par album", "collectionGroupAlbum": "par album",
"collectionGroupMonth": "par mois", "collectionGroupMonth": "par mois",
"collectionGroupDay": "par jour", "collectionGroupDay": "par jour",
@ -378,6 +369,8 @@
"collectionSelectSectionTooltip": "Sélectionner la section", "collectionSelectSectionTooltip": "Sélectionner la section",
"collectionDeselectSectionTooltip": "Désélectionner la section", "collectionDeselectSectionTooltip": "Désélectionner la section",
"drawerAboutButton": "À propos",
"drawerSettingsButton": "Réglages",
"drawerCollectionAll": "Toute la collection", "drawerCollectionAll": "Toute la collection",
"drawerCollectionFavourites": "Favoris", "drawerCollectionFavourites": "Favoris",
"drawerCollectionImages": "Images", "drawerCollectionImages": "Images",
@ -387,10 +380,25 @@
"drawerCollectionPanoramas": "Panoramas", "drawerCollectionPanoramas": "Panoramas",
"drawerCollectionRaws": "Photos Raw", "drawerCollectionRaws": "Photos Raw",
"drawerCollectionSphericalVideos": "Vidéos à 360°", "drawerCollectionSphericalVideos": "Vidéos à 360°",
"drawerAlbumPage": "Albums",
"drawerCountryPage": "Pays",
"drawerTagPage": "Libellés",
"chipSortDate": "par date", "sortByDate": "par date",
"chipSortName": "alphabétique", "sortByName": "alphabétique",
"chipSortCount": "par nombre déléments", "sortByItemCount": "par nombre déléments",
"sortBySize": "par taille",
"sortByAlbumFileName": "alphabétique",
"sortByRating": "par notation",
"sortOrderNewestFirst": "Plus récents dabord",
"sortOrderOldestFirst": "Plus anciens dabord",
"sortOrderAtoZ": "De A à Z",
"sortOrderZtoA": "De Z à A",
"sortOrderHighestFirst": "Meilleurs dabord",
"sortOrderLowestFirst": "Moins bons dabord",
"sortOrderLargestFirst": "Plus larges dabord",
"sortOrderSmallestFirst": "Moins larges dabord",
"albumGroupTier": "par importance", "albumGroupTier": "par importance",
"albumGroupVolume": "par volume de stockage", "albumGroupVolume": "par volume de stockage",
@ -422,13 +430,14 @@
"binPageTitle": "Corbeille", "binPageTitle": "Corbeille",
"searchCollectionFieldHint": "Recherche", "searchCollectionFieldHint": "Recherche",
"searchSectionRecent": "Historique", "searchRecentSectionTitle": "Historique",
"searchSectionDate": "Date", "searchDateSectionTitle": "Date",
"searchSectionAlbums": "Albums", "searchAlbumsSectionTitle": "Albums",
"searchSectionCountries": "Pays", "searchCountriesSectionTitle": "Pays",
"searchSectionPlaces": "Lieux", "searchPlacesSectionTitle": "Lieux",
"searchSectionTags": "Libellés", "searchTagsSectionTitle": "Libellés",
"searchSectionRating": "Notations", "searchRatingSectionTitle": "Notations",
"searchMetadataSectionTitle": "Métadonnées",
"settingsPageTitle": "Réglages", "settingsPageTitle": "Réglages",
"settingsSystemDefault": "Système", "settingsSystemDefault": "Système",
@ -437,37 +446,40 @@
"settingsSearchFieldLabel": "Recherche de réglages", "settingsSearchFieldLabel": "Recherche de réglages",
"settingsSearchEmpty": "Aucun réglage correspondant", "settingsSearchEmpty": "Aucun réglage correspondant",
"settingsActionExport": "Exporter", "settingsActionExport": "Exporter",
"settingsActionExportDialogTitle": "Exporter",
"settingsActionImport": "Importer", "settingsActionImport": "Importer",
"settingsActionImportDialogTitle": "Importer",
"appExportCovers": "Couvertures", "appExportCovers": "Couvertures",
"appExportFavourites": "Favoris", "appExportFavourites": "Favoris",
"appExportSettings": "Réglages", "appExportSettings": "Réglages",
"settingsSectionNavigation": "Navigation", "settingsNavigationSectionTitle": "Navigation",
"settingsHome": "Page daccueil", "settingsHomeTile": "Page daccueil",
"settingsHomeDialogTitle": "Page daccueil",
"settingsShowBottomNavigationBar": "Afficher la barre de navigation", "settingsShowBottomNavigationBar": "Afficher la barre de navigation",
"settingsKeepScreenOnTile": "Maintenir lécran allumé", "settingsKeepScreenOnTile": "Maintenir lécran allumé",
"settingsKeepScreenOnTitle": "Allumage de lécran", "settingsKeepScreenOnDialogTitle": "Allumage de lécran",
"settingsDoubleBackExit": "Presser «\u00A0retour\u00A0» 2 fois pour quitter", "settingsDoubleBackExit": "Presser «\u00A0retour\u00A0» 2 fois pour quitter",
"settingsConfirmationDialogTile": "Demandes de confirmation", "settingsConfirmationTile": "Demandes de confirmation",
"settingsConfirmationDialogTitle": "Demandes de confirmation", "settingsConfirmationDialogTitle": "Demandes de confirmation",
"settingsConfirmationDialogDeleteItems": "Suppression définitive déléments", "settingsConfirmationBeforeDeleteItems": "Suppression définitive déléments",
"settingsConfirmationDialogMoveToBinItems": "Mise déléments à la corbeille", "settingsConfirmationBeforeMoveToBinItems": "Mise déléments à la corbeille",
"settingsConfirmationDialogMoveUndatedItems": "Déplacement déléments non datés", "settingsConfirmationBeforeMoveUndatedItems": "Déplacement déléments non datés",
"settingsConfirmationAfterMoveToBinItems": "Confirmation après mise déléments à la corbeille", "settingsConfirmationAfterMoveToBinItems": "Confirmation après mise déléments à la corbeille",
"settingsNavigationDrawerTile": "Menu de navigation", "settingsNavigationDrawerTile": "Menu de navigation",
"settingsNavigationDrawerEditorTitle": "Menu de navigation", "settingsNavigationDrawerEditorPageTitle": "Menu de navigation",
"settingsNavigationDrawerBanner": "Maintenez votre doigt appuyé pour déplacer et réorganiser les éléments de menu.", "settingsNavigationDrawerBanner": "Maintenez votre doigt appuyé pour déplacer et réorganiser les éléments de menu.",
"settingsNavigationDrawerTabTypes": "Types", "settingsNavigationDrawerTabTypes": "Types",
"settingsNavigationDrawerTabAlbums": "Albums", "settingsNavigationDrawerTabAlbums": "Albums",
"settingsNavigationDrawerTabPages": "Pages", "settingsNavigationDrawerTabPages": "Pages",
"settingsNavigationDrawerAddAlbum": "Ajouter un album", "settingsNavigationDrawerAddAlbum": "Ajouter un album",
"settingsSectionThumbnails": "Vignettes", "settingsThumbnailSectionTitle": "Vignettes",
"settingsThumbnailOverlayTile": "Incrustations", "settingsThumbnailOverlayTile": "Incrustations",
"settingsThumbnailOverlayTitle": "Incrustations", "settingsThumbnailOverlayPageTitle": "Incrustations",
"settingsThumbnailShowFavouriteIcon": "Afficher licône de favori", "settingsThumbnailShowFavouriteIcon": "Afficher licône de favori",
"settingsThumbnailShowTagIcon": "Afficher licône de libellé", "settingsThumbnailShowTagIcon": "Afficher licône de libellé",
"settingsThumbnailShowLocationIcon": "Afficher licône de lieu", "settingsThumbnailShowLocationIcon": "Afficher licône de lieu",
@ -477,13 +489,13 @@
"settingsThumbnailShowVideoDuration": "Afficher la durée de la vidéo", "settingsThumbnailShowVideoDuration": "Afficher la durée de la vidéo",
"settingsCollectionQuickActionsTile": "Actions rapides", "settingsCollectionQuickActionsTile": "Actions rapides",
"settingsCollectionQuickActionEditorTitle": "Actions rapides", "settingsCollectionQuickActionEditorPageTitle": "Actions rapides",
"settingsCollectionQuickActionTabBrowsing": "Navigation", "settingsCollectionQuickActionTabBrowsing": "Navigation",
"settingsCollectionQuickActionTabSelecting": "Sélection", "settingsCollectionQuickActionTabSelecting": "Sélection",
"settingsCollectionBrowsingQuickActionEditorBanner": "Maintenez votre doigt appuyé pour déplacer les boutons et choisir les actions affichées lors de la navigation.", "settingsCollectionBrowsingQuickActionEditorBanner": "Maintenez votre doigt appuyé pour déplacer les boutons et choisir les actions affichées lors de la navigation.",
"settingsCollectionSelectionQuickActionEditorBanner": "Maintenez votre doigt appuyé pour déplacer les boutons et choisir les actions affichées lors de la sélection déléments.", "settingsCollectionSelectionQuickActionEditorBanner": "Maintenez votre doigt appuyé pour déplacer les boutons et choisir les actions affichées lors de la sélection déléments.",
"settingsSectionViewer": "Visionneuse", "settingsViewerSectionTitle": "Visionneuse",
"settingsViewerGestureSideTapNext": "Appuyer sur les bords de lécran pour passer à lélément précédent/suivant", "settingsViewerGestureSideTapNext": "Appuyer sur les bords de lécran pour passer à lélément précédent/suivant",
"settingsViewerUseCutout": "Utiliser la zone dencoche", "settingsViewerUseCutout": "Utiliser la zone dencoche",
"settingsViewerMaximumBrightness": "Luminosité maximale", "settingsViewerMaximumBrightness": "Luminosité maximale",
@ -491,14 +503,14 @@
"settingsImageBackground": "Arrière-plan de limage", "settingsImageBackground": "Arrière-plan de limage",
"settingsViewerQuickActionsTile": "Actions rapides", "settingsViewerQuickActionsTile": "Actions rapides",
"settingsViewerQuickActionEditorTitle": "Actions rapides", "settingsViewerQuickActionEditorPageTitle": "Actions rapides",
"settingsViewerQuickActionEditorBanner": "Maintenez votre doigt appuyé pour déplacer les boutons et choisir les actions affichées sur la visionneuse.", "settingsViewerQuickActionEditorBanner": "Maintenez votre doigt appuyé pour déplacer les boutons et choisir les actions affichées sur la visionneuse.",
"settingsViewerQuickActionEditorDisplayedButtons": "Boutons affichés", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Boutons affichés",
"settingsViewerQuickActionEditorAvailableButtons": "Boutons disponibles", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Boutons disponibles",
"settingsViewerQuickActionEmpty": "Aucun bouton", "settingsViewerQuickActionEmpty": "Aucun bouton",
"settingsViewerOverlayTile": "Incrustations", "settingsViewerOverlayTile": "Incrustations",
"settingsViewerOverlayTitle": "Incrustations", "settingsViewerOverlayPageTitle": "Incrustations",
"settingsViewerShowOverlayOnOpening": "Afficher à louverture", "settingsViewerShowOverlayOnOpening": "Afficher à louverture",
"settingsViewerShowMinimap": "Afficher la mini-carte", "settingsViewerShowMinimap": "Afficher la mini-carte",
"settingsViewerShowInformation": "Afficher les détails", "settingsViewerShowInformation": "Afficher les détails",
@ -508,30 +520,30 @@
"settingsViewerEnableOverlayBlurEffect": "Effets de flou", "settingsViewerEnableOverlayBlurEffect": "Effets de flou",
"settingsViewerSlideshowTile": "Diaporama", "settingsViewerSlideshowTile": "Diaporama",
"settingsViewerSlideshowTitle": "Diaporama", "settingsViewerSlideshowPageTitle": "Diaporama",
"settingsSlideshowRepeat": "Répéter", "settingsSlideshowRepeat": "Répéter",
"settingsSlideshowShuffle": "Aléatoire", "settingsSlideshowShuffle": "Aléatoire",
"settingsSlideshowFillScreen": "Remplir lécran", "settingsSlideshowFillScreen": "Remplir lécran",
"settingsSlideshowTransitionTile": "Transition", "settingsSlideshowTransitionTile": "Transition",
"settingsSlideshowTransitionTitle": "Transition", "settingsSlideshowTransitionDialogTitle": "Transition",
"settingsSlideshowIntervalTile": "Intervalle", "settingsSlideshowIntervalTile": "Intervalle",
"settingsSlideshowIntervalTitle": "Intervalle", "settingsSlideshowIntervalDialogTitle": "Intervalle",
"settingsSlideshowVideoPlaybackTile": "Lecture de vidéos", "settingsSlideshowVideoPlaybackTile": "Lecture de vidéos",
"settingsSlideshowVideoPlaybackTitle": "Lecture de vidéos", "settingsSlideshowVideoPlaybackDialogTitle": "Lecture de vidéos",
"settingsVideoPageTitle": "Réglages vidéo", "settingsVideoPageTitle": "Réglages vidéo",
"settingsSectionVideo": "Vidéo", "settingsVideoSectionTitle": "Vidéo",
"settingsVideoShowVideos": "Afficher les vidéos", "settingsVideoShowVideos": "Afficher les vidéos",
"settingsVideoEnableHardwareAcceleration": "Accélération matérielle", "settingsVideoEnableHardwareAcceleration": "Accélération matérielle",
"settingsVideoEnableAutoPlay": "Lecture automatique", "settingsVideoEnableAutoPlay": "Lecture automatique",
"settingsVideoLoopModeTile": "Lecture répétée", "settingsVideoLoopModeTile": "Lecture répétée",
"settingsVideoLoopModeTitle": "Lecture répétée", "settingsVideoLoopModeDialogTitle": "Lecture répétée",
"settingsSubtitleThemeTile": "Sous-titres", "settingsSubtitleThemeTile": "Sous-titres",
"settingsSubtitleThemeTitle": "Sous-titres", "settingsSubtitleThemePageTitle": "Sous-titres",
"settingsSubtitleThemeSample": "Ceci est un exemple.", "settingsSubtitleThemeSample": "Ceci est un exemple.",
"settingsSubtitleThemeTextAlignmentTile": "Alignement du texte", "settingsSubtitleThemeTextAlignmentTile": "Alignement du texte",
"settingsSubtitleThemeTextAlignmentTitle": "Alignement du texte", "settingsSubtitleThemeTextAlignmentDialogTitle": "Alignement du texte",
"settingsSubtitleThemeTextSize": "Taille du texte", "settingsSubtitleThemeTextSize": "Taille du texte",
"settingsSubtitleThemeShowOutline": "Afficher les contours et ombres", "settingsSubtitleThemeShowOutline": "Afficher les contours et ombres",
"settingsSubtitleThemeTextColor": "Couleur du texte", "settingsSubtitleThemeTextColor": "Couleur du texte",
@ -543,13 +555,13 @@
"settingsSubtitleThemeTextAlignmentRight": "droite", "settingsSubtitleThemeTextAlignmentRight": "droite",
"settingsVideoControlsTile": "Contrôles", "settingsVideoControlsTile": "Contrôles",
"settingsVideoControlsTitle": "Contrôles", "settingsVideoControlsPageTitle": "Contrôles",
"settingsVideoButtonsTile": "Boutons", "settingsVideoButtonsTile": "Boutons",
"settingsVideoButtonsTitle": "Boutons", "settingsVideoButtonsDialogTitle": "Boutons",
"settingsVideoGestureDoubleTapTogglePlay": "Appuyer deux fois pour lire ou mettre en pause", "settingsVideoGestureDoubleTapTogglePlay": "Appuyer deux fois pour lire ou mettre en pause",
"settingsVideoGestureSideDoubleTapSeek": "Appuyer deux fois sur les bords de lécran pour reculer ou avancer", "settingsVideoGestureSideDoubleTapSeek": "Appuyer deux fois sur les bords de lécran pour reculer ou avancer",
"settingsSectionPrivacy": "Confidentialité", "settingsPrivacySectionTitle": "Confidentialité",
"settingsAllowInstalledAppAccess": "Autoriser laccès à linventaire des apps", "settingsAllowInstalledAppAccess": "Autoriser laccès à linventaire des apps",
"settingsAllowInstalledAppAccessSubtitle": "Pour un affichage amélioré des albums", "settingsAllowInstalledAppAccessSubtitle": "Pour un affichage amélioré des albums",
"settingsAllowErrorReporting": "Autoriser lenvoi de rapports derreur", "settingsAllowErrorReporting": "Autoriser lenvoi de rapports derreur",
@ -558,52 +570,56 @@
"settingsEnableBinSubtitle": "Conserver les éléments supprimés pendant 30 jours", "settingsEnableBinSubtitle": "Conserver les éléments supprimés pendant 30 jours",
"settingsHiddenItemsTile": "Éléments masqués", "settingsHiddenItemsTile": "Éléments masqués",
"settingsHiddenItemsTitle": "Éléments masqués", "settingsHiddenItemsPageTitle": "Éléments masqués",
"settingsHiddenFiltersTitle": "Filtres masqués", "settingsHiddenItemsTabFilters": "Filtres masqués",
"settingsHiddenFiltersBanner": "Les images et vidéos correspondantes aux filtres masqués napparaîtront pas dans votre collection.", "settingsHiddenFiltersBanner": "Les images et vidéos correspondantes aux filtres masqués napparaîtront pas dans votre collection.",
"settingsHiddenFiltersEmpty": "Aucun filtre masqué", "settingsHiddenFiltersEmpty": "Aucun filtre masqué",
"settingsHiddenPathsTitle": "Chemins masqués", "settingsHiddenItemsTabPaths": "Chemins masqués",
"settingsHiddenPathsBanner": "Les images et vidéos dans ces dossiers, ou leurs sous-dossiers, napparaîtront pas dans votre collection.", "settingsHiddenPathsBanner": "Les images et vidéos dans ces dossiers, ou leurs sous-dossiers, napparaîtront pas dans votre collection.",
"addPathTooltip": "Ajouter un chemin", "addPathTooltip": "Ajouter un chemin",
"settingsStorageAccessTile": "Accès au stockage", "settingsStorageAccessTile": "Accès au stockage",
"settingsStorageAccessTitle": "Accès au stockage", "settingsStorageAccessPageTitle": "Accès au stockage",
"settingsStorageAccessBanner": "Une autorisation daccès au stockage est nécessaire pour modifier le contenu de certains dossiers. Voici la liste des autorisations couramment en vigueur.", "settingsStorageAccessBanner": "Une autorisation daccès au stockage est nécessaire pour modifier le contenu de certains dossiers. Voici la liste des autorisations couramment en vigueur.",
"settingsStorageAccessEmpty": "Aucune autorisation daccès", "settingsStorageAccessEmpty": "Aucune autorisation daccès",
"settingsStorageAccessRevokeTooltip": "Retirer", "settingsStorageAccessRevokeTooltip": "Retirer",
"settingsSectionAccessibility": "Accessibilité", "settingsAccessibilitySectionTitle": "Accessibilité",
"settingsRemoveAnimationsTile": "Suppression des animations", "settingsRemoveAnimationsTile": "Suppression des animations",
"settingsRemoveAnimationsTitle": "Suppression des animations", "settingsRemoveAnimationsDialogTitle": "Suppression des animations",
"settingsTimeToTakeActionTile": "Délai pour effectuer une action", "settingsTimeToTakeActionTile": "Délai pour effectuer une action",
"settingsTimeToTakeActionTitle": "Délai pour effectuer une action", "settingsTimeToTakeActionDialogTitle": "Délai pour effectuer une action",
"settingsSectionDisplay": "Affichage", "settingsDisplaySectionTitle": "Affichage",
"settingsThemeBrightness": "Thème", "settingsThemeBrightnessTile": "Thème",
"settingsThemeBrightnessDialogTitle": "Thème",
"settingsThemeColorHighlights": "Surlignages colorés", "settingsThemeColorHighlights": "Surlignages colorés",
"settingsThemeEnableDynamicColor": "Couleur dynamique", "settingsThemeEnableDynamicColor": "Couleur dynamique",
"settingsDisplayRefreshRateModeTile": "Fréquence dactualisation de lécran", "settingsDisplayRefreshRateModeTile": "Fréquence dactualisation de lécran",
"settingsDisplayRefreshRateModeTitle": "Fréquence dactualisation", "settingsDisplayRefreshRateModeDialogTitle": "Fréquence dactualisation",
"settingsSectionLanguage": "Langue & Formats", "settingsLanguageSectionTitle": "Langue & Formats",
"settingsLanguage": "Langue", "settingsLanguageTile": "Langue",
"settingsLanguagePageTitle": "Langue",
"settingsCoordinateFormatTile": "Format de coordonnées", "settingsCoordinateFormatTile": "Format de coordonnées",
"settingsCoordinateFormatTitle": "Format de coordonnées", "settingsCoordinateFormatDialogTitle": "Format de coordonnées",
"settingsUnitSystemTile": "Unités", "settingsUnitSystemTile": "Unités",
"settingsUnitSystemTitle": "Unités", "settingsUnitSystemDialogTitle": "Unités",
"settingsScreenSaverPageTitle": "Économiseur décran", "settingsScreenSaverPageTitle": "Économiseur décran",
"settingsWidgetPageTitle": "Cadre photo", "settingsWidgetPageTitle": "Cadre photo",
"settingsWidgetShowOutline": "Contours", "settingsWidgetShowOutline": "Contours",
"settingsCollectionTile": "Collection",
"statsPageTitle": "Statistiques", "statsPageTitle": "Statistiques",
"statsWithGps": "{count, plural, =1{1 élément localisé} other{{count} éléments localisés}}", "statsWithGps": "{count, plural, =1{1 élément localisé} other{{count} éléments localisés}}",
"statsTopCountries": "Top pays", "statsTopCountriesSectionTitle": "Top pays",
"statsTopPlaces": "Top lieux", "statsTopPlacesSectionTitle": "Top lieux",
"statsTopTags": "Top libellés", "statsTopTagsSectionTitle": "Top libellés",
"viewerOpenPanoramaButtonLabel": "OUVRIR LE PANORAMA", "viewerOpenPanoramaButtonLabel": "OUVRIR LE PANORAMA",
"viewerSetWallpaperButtonLabel": "APPLIQUER", "viewerSetWallpaperButtonLabel": "APPLIQUER",
@ -614,6 +630,7 @@
"viewerInfoBackToViewerTooltip": "Retour à la visionneuse", "viewerInfoBackToViewerTooltip": "Retour à la visionneuse",
"viewerInfoUnknown": "inconnu", "viewerInfoUnknown": "inconnu",
"viewerInfoLabelDescription": "Description",
"viewerInfoLabelTitle": "Titre", "viewerInfoLabelTitle": "Titre",
"viewerInfoLabelDate": "Date", "viewerInfoLabelDate": "Date",
"viewerInfoLabelResolution": "Résolution", "viewerInfoLabelResolution": "Résolution",
@ -625,7 +642,7 @@
"viewerInfoLabelCoordinates": "Coordonnées", "viewerInfoLabelCoordinates": "Coordonnées",
"viewerInfoLabelAddress": "Adresse", "viewerInfoLabelAddress": "Adresse",
"mapStyleTitle": "Type de carte", "mapStyleDialogTitle": "Type de carte",
"mapStyleTooltip": "Sélectionner le type de carte", "mapStyleTooltip": "Sélectionner le type de carte",
"mapZoomInTooltip": "Zoomer", "mapZoomInTooltip": "Zoomer",
"mapZoomOutTooltip": "Dézoomer", "mapZoomOutTooltip": "Dézoomer",

View file

@ -27,6 +27,7 @@
"actionRemove": "Hapus", "actionRemove": "Hapus",
"resetTooltip": "Ulang", "resetTooltip": "Ulang",
"saveTooltip": "Simpan", "saveTooltip": "Simpan",
"pickTooltip": "Pilih",
"doubleBackExitMessage": "Ketuk “kembali” lagi untuk keluar.", "doubleBackExitMessage": "Ketuk “kembali” lagi untuk keluar.",
"doNotAskAgain": "Jangan tanya lagi", "doNotAskAgain": "Jangan tanya lagi",
@ -87,16 +88,20 @@
"entryInfoActionEditDate": "Ubah tanggal & waktu", "entryInfoActionEditDate": "Ubah tanggal & waktu",
"entryInfoActionEditLocation": "Ubah lokasi", "entryInfoActionEditLocation": "Ubah lokasi",
"entryInfoActionEditTitleDescription": "Ubah judul & deskripsi",
"entryInfoActionEditRating": "Ubah nilai", "entryInfoActionEditRating": "Ubah nilai",
"entryInfoActionEditTags": "Ubah label", "entryInfoActionEditTags": "Ubah label",
"entryInfoActionRemoveMetadata": "Hapus metadata", "entryInfoActionRemoveMetadata": "Hapus metadata",
"filterBinLabel": "Tong sampah", "filterBinLabel": "Tong sampah",
"filterFavouriteLabel": "Favorit", "filterFavouriteLabel": "Favorit",
"filterLocationEmptyLabel": "Lokasi yang tidak ditemukan", "filterNoDateLabel": "Tak ada tanggal",
"filterTagEmptyLabel": "Tidak dilabel", "filterNoLocationLabel": "Lokasi yang tidak ditemukan",
"filterNoRatingLabel": "Belum diberi nilai",
"filterNoTagLabel": "Tidak dilabel",
"filterNoTitleLabel": "Tak ada judul",
"filterOnThisDayLabel": "Di hari ini", "filterOnThisDayLabel": "Di hari ini",
"filterRatingUnratedLabel": "Belum diberi nilai", "filterRecentlyAddedLabel": "Baru-baru ini ditambahkan",
"filterRatingRejectedLabel": "Ditolak", "filterRatingRejectedLabel": "Ditolak",
"filterTypeAnimatedLabel": "Teranimasi", "filterTypeAnimatedLabel": "Teranimasi",
"filterTypeMotionPhotoLabel": "Foto bergerak", "filterTypeMotionPhotoLabel": "Foto bergerak",
@ -177,16 +182,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "kartu SD", "storageVolumeDescriptionFallbackNonPrimary": "kartu SD",
"rootDirectoryDescription": "direktori root", "rootDirectoryDescription": "direktori root",
"otherDirectoryDescription": "direktori “{name}”", "otherDirectoryDescription": "direktori “{name}”",
"storageAccessDialogTitle": "Akses Penyimpanan",
"storageAccessDialogMessage": "Silahkan pilih {directory} dari “{volume}” di layar berikutnya untuk memberikan akses aplikasi ini ke sana.", "storageAccessDialogMessage": "Silahkan pilih {directory} dari “{volume}” di layar berikutnya untuk memberikan akses aplikasi ini ke sana.",
"restrictedAccessDialogTitle": "Akses Terbatas",
"restrictedAccessDialogMessage": "Aplikasi ini tidak diizinkan untuk mengubah file di {directory} dari “{volume}”.\n\nSilahkan pakai aplikasi Manager File atau aplikasi gallery untuk gerakkan benda ke direktori lain.", "restrictedAccessDialogMessage": "Aplikasi ini tidak diizinkan untuk mengubah file di {directory} dari “{volume}”.\n\nSilahkan pakai aplikasi Manager File atau aplikasi gallery untuk gerakkan benda ke direktori lain.",
"notEnoughSpaceDialogTitle": "Tidak Cukup Ruang",
"notEnoughSpaceDialogMessage": "Operasi ini memerlukan {neededSize} ruang kosong di “{volume}” untuk menyelesaikan, tetapi hanya ada {freeSize} tersisa.", "notEnoughSpaceDialogMessage": "Operasi ini memerlukan {neededSize} ruang kosong di “{volume}” untuk menyelesaikan, tetapi hanya ada {freeSize} tersisa.",
"missingSystemFilePickerDialogTitle": "Pemilih File Sistem Tidak Ada",
"missingSystemFilePickerDialogMessage": "Pemilih file sistem tidak ada atau dinonaktifkan. Harap aktifkan dan coba lagi.", "missingSystemFilePickerDialogMessage": "Pemilih file sistem tidak ada atau dinonaktifkan. Harap aktifkan dan coba lagi.",
"unsupportedTypeDialogTitle": "Tipe Yang Tidak Didukung",
"unsupportedTypeDialogMessage": "{count, plural, other{Operasi ini tidak didukung untuk benda dari jenis berikut: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, other{Operasi ini tidak didukung untuk benda dari jenis berikut: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Beberapa file di folder tujuan memiliki nama yang sama.", "nameConflictDialogSingleSourceMessage": "Beberapa file di folder tujuan memiliki nama yang sama.",
@ -195,7 +195,6 @@
"addShortcutDialogLabel": "Label pintasan", "addShortcutDialogLabel": "Label pintasan",
"addShortcutButtonLabel": "TAMBAH", "addShortcutButtonLabel": "TAMBAH",
"noMatchingAppDialogTitle": "Tidak Ada Aplikasi Yang Cocok",
"noMatchingAppDialogMessage": "Tidak ada aplikasi yang cocok untuk menangani ini.", "noMatchingAppDialogMessage": "Tidak ada aplikasi yang cocok untuk menangani ini.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Pindahkan benda ini ke tong sampah?} other{Pindahkan {count} benda ke tempat sampah?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Pindahkan benda ini ke tong sampah?} other{Pindahkan {count} benda ke tempat sampah?}}",
@ -224,7 +223,7 @@
"renameEntrySetPageTitle": "Ganti nama", "renameEntrySetPageTitle": "Ganti nama",
"renameEntrySetPagePatternFieldLabel": "Pola penamaan", "renameEntrySetPagePatternFieldLabel": "Pola penamaan",
"renameEntrySetPageInsertTooltip": "Masukkan bidang", "renameEntrySetPageInsertTooltip": "Masukkan bidang",
"renameEntrySetPagePreview": "Pratinjau", "renameEntrySetPagePreviewSectionTitle": "Pratinjau",
"renameProcessorCounter": "Penghitungan", "renameProcessorCounter": "Penghitungan",
"renameProcessorName": "Nama", "renameProcessorName": "Nama",
@ -285,9 +284,10 @@
"menuActionSlideshow": "Tampilan slide", "menuActionSlideshow": "Tampilan slide",
"menuActionStats": "Statistik", "menuActionStats": "Statistik",
"viewDialogTabSort": "Sortir", "viewDialogSortSectionTitle": "Sortir",
"viewDialogTabGroup": "Grup", "viewDialogGroupSectionTitle": "Grup",
"viewDialogTabLayout": "Tata letak", "viewDialogLayoutSectionTitle": "Tata letak",
"viewDialogReverseSortOrder": "Urutan pengurutan terbalik",
"tileLayoutGrid": "Grid", "tileLayoutGrid": "Grid",
"tileLayoutList": "Daftar", "tileLayoutList": "Daftar",
@ -304,24 +304,24 @@
"aboutLinkLicense": "Lisensi", "aboutLinkLicense": "Lisensi",
"aboutLinkPolicy": "Aturan Privasi", "aboutLinkPolicy": "Aturan Privasi",
"aboutBug": "Lapor Bug", "aboutBugSectionTitle": "Lapor Bug",
"aboutBugSaveLogInstruction": "Simpan log aplikasi ke file", "aboutBugSaveLogInstruction": "Simpan log aplikasi ke file",
"aboutBugCopyInfoInstruction": "Salin informasi sistem", "aboutBugCopyInfoInstruction": "Salin informasi sistem",
"aboutBugCopyInfoButton": "Salin", "aboutBugCopyInfoButton": "Salin",
"aboutBugReportInstruction": "Laporkan ke GitHub dengan log dan informasi sistem", "aboutBugReportInstruction": "Laporkan ke GitHub dengan log dan informasi sistem",
"aboutBugReportButton": "Rapor", "aboutBugReportButton": "Rapor",
"aboutCredits": "Kredit", "aboutCreditsSectionTitle": "Kredit",
"aboutCreditsWorldAtlas1": "Aplikasi ini menggunakan file TopoJSON dari", "aboutCreditsWorldAtlas1": "Aplikasi ini menggunakan file TopoJSON dari",
"aboutCreditsWorldAtlas2": "dibawah Lisensi ISC.", "aboutCreditsWorldAtlas2": "dibawah Lisensi ISC.",
"aboutCreditsTranslators": "Penerjemah", "aboutTranslatorsSectionTitle": "Penerjemah",
"aboutLicenses": "Lisensi Sumber Terbuka", "aboutLicensesSectionTitle": "Lisensi Sumber Terbuka",
"aboutLicensesBanner": "Aplikasi ini menggunakan paket dan perpustakaan sumber terbuka berikut.", "aboutLicensesBanner": "Aplikasi ini menggunakan paket dan perpustakaan sumber terbuka berikut.",
"aboutLicensesAndroidLibraries": "Perpustakaan Android", "aboutLicensesAndroidLibrariesSectionTitle": "Perpustakaan Android",
"aboutLicensesFlutterPlugins": "Plugin Flutter", "aboutLicensesFlutterPluginsSectionTitle": "Plugin Flutter",
"aboutLicensesFlutterPackages": "Paket Flutter", "aboutLicensesFlutterPackagesSectionTitle": "Paket Flutter",
"aboutLicensesDartPackages": "Paket Dart", "aboutLicensesDartPackagesSectionTitle": "Paket Dart",
"aboutLicensesShowAllButtonLabel": "Tampilkan Semua Lisensi", "aboutLicensesShowAllButtonLabel": "Tampilkan Semua Lisensi",
"policyPageTitle": "Aturan Privasi", "policyPageTitle": "Aturan Privasi",
@ -341,11 +341,6 @@
"collectionSearchTitlesHintText": "Cari judul", "collectionSearchTitlesHintText": "Cari judul",
"collectionSortDate": "Lewat tanggal",
"collectionSortSize": "Lewat ukuran",
"collectionSortName": "Lewat nama album & file",
"collectionSortRating": "Lewat nilai",
"collectionGroupAlbum": "Lewat album", "collectionGroupAlbum": "Lewat album",
"collectionGroupMonth": "Lewat bulan", "collectionGroupMonth": "Lewat bulan",
"collectionGroupDay": "Lewat hari", "collectionGroupDay": "Lewat hari",
@ -374,6 +369,8 @@
"collectionSelectSectionTooltip": "Pilih bagian", "collectionSelectSectionTooltip": "Pilih bagian",
"collectionDeselectSectionTooltip": "Batalkan pilihan bagian", "collectionDeselectSectionTooltip": "Batalkan pilihan bagian",
"drawerAboutButton": "Tentang",
"drawerSettingsButton": "Pengaturan",
"drawerCollectionAll": "Semua koleksi", "drawerCollectionAll": "Semua koleksi",
"drawerCollectionFavourites": "Favorit", "drawerCollectionFavourites": "Favorit",
"drawerCollectionImages": "Gambar", "drawerCollectionImages": "Gambar",
@ -383,10 +380,25 @@
"drawerCollectionPanoramas": "Panorama", "drawerCollectionPanoramas": "Panorama",
"drawerCollectionRaws": "Foto Raw", "drawerCollectionRaws": "Foto Raw",
"drawerCollectionSphericalVideos": "Video 360°", "drawerCollectionSphericalVideos": "Video 360°",
"drawerAlbumPage": "Album",
"drawerCountryPage": "Negara",
"drawerTagPage": "Label",
"chipSortDate": "Lewat tanggal", "sortByDate": "Lewat tanggal",
"chipSortName": "Lewat nama", "sortByName": "Lewat nama",
"chipSortCount": "Lewat jumlah benda", "sortByItemCount": "Lewat jumlah benda",
"sortBySize": "Lewat ukuran",
"sortByAlbumFileName": "Lewat nama album & file",
"sortByRating": "Lewat nilai",
"sortOrderNewestFirst": "Terbaru pertama",
"sortOrderOldestFirst": "Tertua pertama",
"sortOrderAtoZ": "A ke Z",
"sortOrderZtoA": "Z ke A",
"sortOrderHighestFirst": "Tertinggi pertama",
"sortOrderLowestFirst": "Terendah pertama",
"sortOrderLargestFirst": "Terbesar pertama",
"sortOrderSmallestFirst": "Terkecil pertama",
"albumGroupTier": "Lewat tingkat", "albumGroupTier": "Lewat tingkat",
"albumGroupVolume": "Lewat volume penyimpanan", "albumGroupVolume": "Lewat volume penyimpanan",
@ -418,13 +430,14 @@
"binPageTitle": "Tong Sampah", "binPageTitle": "Tong Sampah",
"searchCollectionFieldHint": "Cari koleksi", "searchCollectionFieldHint": "Cari koleksi",
"searchSectionRecent": "Terkini", "searchRecentSectionTitle": "Terkini",
"searchSectionDate": "Tanggal", "searchDateSectionTitle": "Tanggal",
"searchSectionAlbums": "Album", "searchAlbumsSectionTitle": "Album",
"searchSectionCountries": "Negara", "searchCountriesSectionTitle": "Negara",
"searchSectionPlaces": "Tempat", "searchPlacesSectionTitle": "Tempat",
"searchSectionTags": "Label", "searchTagsSectionTitle": "Label",
"searchSectionRating": "Nilai", "searchRatingSectionTitle": "Nilai",
"searchMetadataSectionTitle": "Metadata",
"settingsPageTitle": "Pengaturan", "settingsPageTitle": "Pengaturan",
"settingsSystemDefault": "Sistem", "settingsSystemDefault": "Sistem",
@ -433,36 +446,40 @@
"settingsSearchFieldLabel": "Cari peraturan", "settingsSearchFieldLabel": "Cari peraturan",
"settingsSearchEmpty": "Tidak ada peraturan yang cocok", "settingsSearchEmpty": "Tidak ada peraturan yang cocok",
"settingsActionExport": "Ekspor", "settingsActionExport": "Ekspor",
"settingsActionExportDialogTitle": "Ekspor",
"settingsActionImport": "Impor", "settingsActionImport": "Impor",
"settingsActionImportDialogTitle": "Impor",
"appExportCovers": "Sampul", "appExportCovers": "Sampul",
"appExportFavourites": "Favorit", "appExportFavourites": "Favorit",
"appExportSettings": "Pengaturan", "appExportSettings": "Pengaturan",
"settingsSectionNavigation": "Navigasi", "settingsNavigationSectionTitle": "Navigasi",
"settingsHome": "Beranda", "settingsHomeTile": "Beranda",
"settingsHomeDialogTitle": "Beranda",
"settingsShowBottomNavigationBar": "Tampilkan bilah navigasi bawah", "settingsShowBottomNavigationBar": "Tampilkan bilah navigasi bawah",
"settingsKeepScreenOnTile": "Biarkan layarnya menyala", "settingsKeepScreenOnTile": "Biarkan layarnya menyala",
"settingsKeepScreenOnTitle": "Biarkan Layarnya Menyala", "settingsKeepScreenOnDialogTitle": "Biarkan Layarnya Menyala",
"settingsDoubleBackExit": "Ketuk “kembali” dua kali untuk keluar", "settingsDoubleBackExit": "Ketuk “kembali” dua kali untuk keluar",
"settingsConfirmationDialogTile": "Dialog konfirmasi", "settingsConfirmationTile": "Dialog konfirmasi",
"settingsConfirmationDialogTitle": "Dialog Konfirmasi", "settingsConfirmationDialogTitle": "Dialog Konfirmasi",
"settingsConfirmationDialogDeleteItems": "Tanya sebelum menghapus benda selamanya", "settingsConfirmationBeforeDeleteItems": "Tanya sebelum menghapus benda selamanya",
"settingsConfirmationDialogMoveToBinItems": "Tanya sebelum memindahkan benda ke tong sampah", "settingsConfirmationBeforeMoveToBinItems": "Tanya sebelum memindahkan benda ke tong sampah",
"settingsConfirmationDialogMoveUndatedItems": "Tanyakan sebelum memindahkan barang tanpa metadata tanggal", "settingsConfirmationBeforeMoveUndatedItems": "Tanyakan sebelum memindahkan barang tanpa metadata tanggal",
"settingsConfirmationAfterMoveToBinItems": "Tampilkan pesan setelah menggerakkan barang ke tong sampah",
"settingsNavigationDrawerTile": "Menu navigasi", "settingsNavigationDrawerTile": "Menu navigasi",
"settingsNavigationDrawerEditorTitle": "Menu Navigasi", "settingsNavigationDrawerEditorPageTitle": "Menu Navigasi",
"settingsNavigationDrawerBanner": "Sentuh dan tahan untuk memindahkan dan menyusun ulang benda menu.", "settingsNavigationDrawerBanner": "Sentuh dan tahan untuk memindahkan dan menyusun ulang benda menu.",
"settingsNavigationDrawerTabTypes": "Tipe", "settingsNavigationDrawerTabTypes": "Tipe",
"settingsNavigationDrawerTabAlbums": "Album", "settingsNavigationDrawerTabAlbums": "Album",
"settingsNavigationDrawerTabPages": "Halaman", "settingsNavigationDrawerTabPages": "Halaman",
"settingsNavigationDrawerAddAlbum": "Tambahkan album", "settingsNavigationDrawerAddAlbum": "Tambahkan album",
"settingsSectionThumbnails": "Thumbnail", "settingsThumbnailSectionTitle": "Thumbnail",
"settingsThumbnailOverlayTile": "Hamparan", "settingsThumbnailOverlayTile": "Hamparan",
"settingsThumbnailOverlayTitle": "Hamparan", "settingsThumbnailOverlayPageTitle": "Hamparan",
"settingsThumbnailShowFavouriteIcon": "Tampilkan ikon favorit", "settingsThumbnailShowFavouriteIcon": "Tampilkan ikon favorit",
"settingsThumbnailShowTagIcon": "Tampilkan ikon label", "settingsThumbnailShowTagIcon": "Tampilkan ikon label",
"settingsThumbnailShowLocationIcon": "Tampilkan ikon lokasi", "settingsThumbnailShowLocationIcon": "Tampilkan ikon lokasi",
@ -472,27 +489,28 @@
"settingsThumbnailShowVideoDuration": "Tampilkan durasi video", "settingsThumbnailShowVideoDuration": "Tampilkan durasi video",
"settingsCollectionQuickActionsTile": "Aksi cepat", "settingsCollectionQuickActionsTile": "Aksi cepat",
"settingsCollectionQuickActionEditorTitle": "Aksi Cepat", "settingsCollectionQuickActionEditorPageTitle": "Aksi Cepat",
"settingsCollectionQuickActionTabBrowsing": "Menjelajah", "settingsCollectionQuickActionTabBrowsing": "Menjelajah",
"settingsCollectionQuickActionTabSelecting": "Memilih", "settingsCollectionQuickActionTabSelecting": "Memilih",
"settingsCollectionBrowsingQuickActionEditorBanner": "Sentuh dan tahan untuk memindahkan tombol dan memilih tindakan yang ditampilkan saat menelusuri benda.", "settingsCollectionBrowsingQuickActionEditorBanner": "Sentuh dan tahan untuk memindahkan tombol dan memilih tindakan yang ditampilkan saat menelusuri benda.",
"settingsCollectionSelectionQuickActionEditorBanner": "Sentuh dan tahan untuk memindahkan tombol dan memilih tindakan yang ditampilkan saat memilih benda.", "settingsCollectionSelectionQuickActionEditorBanner": "Sentuh dan tahan untuk memindahkan tombol dan memilih tindakan yang ditampilkan saat memilih benda.",
"settingsSectionViewer": "Penonton", "settingsViewerSectionTitle": "Penonton",
"settingsViewerGestureSideTapNext": "Ketuk tepi layar untuk menampilkan benda sebelumnya/berikutnya",
"settingsViewerUseCutout": "Gunakan area potongan", "settingsViewerUseCutout": "Gunakan area potongan",
"settingsViewerMaximumBrightness": "Kecerahan maksimum", "settingsViewerMaximumBrightness": "Kecerahan maksimum",
"settingsMotionPhotoAutoPlay": "Putar foto bergerak otomatis", "settingsMotionPhotoAutoPlay": "Putar foto bergerak otomatis",
"settingsImageBackground": "Latar belakang gambar", "settingsImageBackground": "Latar belakang gambar",
"settingsViewerQuickActionsTile": "Aksi cepat", "settingsViewerQuickActionsTile": "Aksi cepat",
"settingsViewerQuickActionEditorTitle": "Aksi Cepat", "settingsViewerQuickActionEditorPageTitle": "Aksi Cepat",
"settingsViewerQuickActionEditorBanner": "Sentuh dan tahan untuk memindahkan tombol dan memilih tindakan yang ditampilkan di penampil.", "settingsViewerQuickActionEditorBanner": "Sentuh dan tahan untuk memindahkan tombol dan memilih tindakan yang ditampilkan di penampil.",
"settingsViewerQuickActionEditorDisplayedButtons": "Tombol yang Ditampilkan", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Tombol yang Ditampilkan",
"settingsViewerQuickActionEditorAvailableButtons": "Tombol yang tersedia", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Tombol yang tersedia",
"settingsViewerQuickActionEmpty": "Tidak ada tombol", "settingsViewerQuickActionEmpty": "Tidak ada tombol",
"settingsViewerOverlayTile": "Hamparan", "settingsViewerOverlayTile": "Hamparan",
"settingsViewerOverlayTitle": "Hamparan", "settingsViewerOverlayPageTitle": "Hamparan",
"settingsViewerShowOverlayOnOpening": "Tampilkan saat pembukaan", "settingsViewerShowOverlayOnOpening": "Tampilkan saat pembukaan",
"settingsViewerShowMinimap": "Tampilkan minimap", "settingsViewerShowMinimap": "Tampilkan minimap",
"settingsViewerShowInformation": "Tampilkan informasi", "settingsViewerShowInformation": "Tampilkan informasi",
@ -502,30 +520,30 @@
"settingsViewerEnableOverlayBlurEffect": "Efek Kabur", "settingsViewerEnableOverlayBlurEffect": "Efek Kabur",
"settingsViewerSlideshowTile": "Tampilan slide", "settingsViewerSlideshowTile": "Tampilan slide",
"settingsViewerSlideshowTitle": "Tampilan Slide", "settingsViewerSlideshowPageTitle": "Tampilan Slide",
"settingsSlideshowRepeat": "Ulangi", "settingsSlideshowRepeat": "Ulangi",
"settingsSlideshowShuffle": "Acak", "settingsSlideshowShuffle": "Acak",
"settingsSlideshowFillScreen": "Isi layar", "settingsSlideshowFillScreen": "Isi layar",
"settingsSlideshowTransitionTile": "Transisi", "settingsSlideshowTransitionTile": "Transisi",
"settingsSlideshowTransitionTitle": "Transisi", "settingsSlideshowTransitionDialogTitle": "Transisi",
"settingsSlideshowIntervalTile": "Interval", "settingsSlideshowIntervalTile": "Interval",
"settingsSlideshowIntervalTitle": "Interval", "settingsSlideshowIntervalDialogTitle": "Interval",
"settingsSlideshowVideoPlaybackTile": "Putaran ulang video", "settingsSlideshowVideoPlaybackTile": "Putaran ulang video",
"settingsSlideshowVideoPlaybackTitle": "Putaran Ulang Video", "settingsSlideshowVideoPlaybackDialogTitle": "Putaran Ulang Video",
"settingsVideoPageTitle": "Pengaturan Video", "settingsVideoPageTitle": "Pengaturan Video",
"settingsSectionVideo": "Video", "settingsVideoSectionTitle": "Video",
"settingsVideoShowVideos": "Tampilkan video", "settingsVideoShowVideos": "Tampilkan video",
"settingsVideoEnableHardwareAcceleration": "Akselerasi perangkat keras", "settingsVideoEnableHardwareAcceleration": "Akselerasi perangkat keras",
"settingsVideoEnableAutoPlay": "Putar otomatis", "settingsVideoEnableAutoPlay": "Putar otomatis",
"settingsVideoLoopModeTile": "Putar ulang", "settingsVideoLoopModeTile": "Putar ulang",
"settingsVideoLoopModeTitle": "Putar Ulang", "settingsVideoLoopModeDialogTitle": "Putar Ulang",
"settingsSubtitleThemeTile": "Subjudul", "settingsSubtitleThemeTile": "Subjudul",
"settingsSubtitleThemeTitle": "Subjudul", "settingsSubtitleThemePageTitle": "Subjudul",
"settingsSubtitleThemeSample": "Ini adalah sampel.", "settingsSubtitleThemeSample": "Ini adalah sampel.",
"settingsSubtitleThemeTextAlignmentTile": "Perataan teks", "settingsSubtitleThemeTextAlignmentTile": "Perataan teks",
"settingsSubtitleThemeTextAlignmentTitle": "Perataan Teks", "settingsSubtitleThemeTextAlignmentDialogTitle": "Perataan Teks",
"settingsSubtitleThemeTextSize": "Ukuran teks", "settingsSubtitleThemeTextSize": "Ukuran teks",
"settingsSubtitleThemeShowOutline": "Tampilkan garis besar dan bayangan", "settingsSubtitleThemeShowOutline": "Tampilkan garis besar dan bayangan",
"settingsSubtitleThemeTextColor": "Warna teks", "settingsSubtitleThemeTextColor": "Warna teks",
@ -537,13 +555,13 @@
"settingsSubtitleThemeTextAlignmentRight": "Kanan", "settingsSubtitleThemeTextAlignmentRight": "Kanan",
"settingsVideoControlsTile": "Kontrol", "settingsVideoControlsTile": "Kontrol",
"settingsVideoControlsTitle": "Kontrol", "settingsVideoControlsPageTitle": "Kontrol",
"settingsVideoButtonsTile": "Tombol", "settingsVideoButtonsTile": "Tombol",
"settingsVideoButtonsTitle": "Tombol", "settingsVideoButtonsDialogTitle": "Tombol",
"settingsVideoGestureDoubleTapTogglePlay": "Ketuk dua kali untuk mainkan/hentikan", "settingsVideoGestureDoubleTapTogglePlay": "Ketuk dua kali untuk mainkan/hentikan",
"settingsVideoGestureSideDoubleTapSeek": "Ketuk dua kali di tepi layar untuk mencari kebelakang/kedepan", "settingsVideoGestureSideDoubleTapSeek": "Ketuk dua kali di tepi layar untuk mencari kebelakang/kedepan",
"settingsSectionPrivacy": "Privasi", "settingsPrivacySectionTitle": "Privasi",
"settingsAllowInstalledAppAccess": "Izinkan akses ke inventori aplikasi", "settingsAllowInstalledAppAccess": "Izinkan akses ke inventori aplikasi",
"settingsAllowInstalledAppAccessSubtitle": "Digunakan untuk meningkatkan tampilan album", "settingsAllowInstalledAppAccessSubtitle": "Digunakan untuk meningkatkan tampilan album",
"settingsAllowErrorReporting": "Izinkan pelaporan kesalahan secara anonim", "settingsAllowErrorReporting": "Izinkan pelaporan kesalahan secara anonim",
@ -552,52 +570,56 @@
"settingsEnableBinSubtitle": "Simpan benda yang dihapus selama 30 hari", "settingsEnableBinSubtitle": "Simpan benda yang dihapus selama 30 hari",
"settingsHiddenItemsTile": "Benda tersembunyi", "settingsHiddenItemsTile": "Benda tersembunyi",
"settingsHiddenItemsTitle": "Benda Tersembunyi", "settingsHiddenItemsPageTitle": "Benda Tersembunyi",
"settingsHiddenFiltersTitle": "Filter Tersembunyi", "settingsHiddenItemsTabFilters": "Filter Tersembunyi",
"settingsHiddenFiltersBanner": "Foto dan video filter tersembunyi yang cocok tidak akan muncul di koleksi Anda.", "settingsHiddenFiltersBanner": "Foto dan video filter tersembunyi yang cocok tidak akan muncul di koleksi Anda.",
"settingsHiddenFiltersEmpty": "Tidak ada filter tersembunyi", "settingsHiddenFiltersEmpty": "Tidak ada filter tersembunyi",
"settingsHiddenPathsTitle": "Jalan Tersembunyi", "settingsHiddenItemsTabPaths": "Jalan Tersembunyi",
"settingsHiddenPathsBanner": "Foto dan video di folder ini, atau subfoldernya, tidak akan muncul di koleksi Anda.", "settingsHiddenPathsBanner": "Foto dan video di folder ini, atau subfoldernya, tidak akan muncul di koleksi Anda.",
"addPathTooltip": "Tambahkan jalan", "addPathTooltip": "Tambahkan jalan",
"settingsStorageAccessTile": "Akses penyimpanan", "settingsStorageAccessTile": "Akses penyimpanan",
"settingsStorageAccessTitle": "Akses Penyimpanan", "settingsStorageAccessPageTitle": "Akses Penyimpanan",
"settingsStorageAccessBanner": "Beberapa direktori memerlukan pemberian akses eksplisit untuk memodifikasi file di dalamnya. Anda dapat meninjau direktori yang anda beri akses sebelumnya di sini.", "settingsStorageAccessBanner": "Beberapa direktori memerlukan pemberian akses eksplisit untuk memodifikasi file di dalamnya. Anda dapat meninjau direktori yang anda beri akses sebelumnya di sini.",
"settingsStorageAccessEmpty": "Tidak ada akses", "settingsStorageAccessEmpty": "Tidak ada akses",
"settingsStorageAccessRevokeTooltip": "Tarik kembali", "settingsStorageAccessRevokeTooltip": "Tarik kembali",
"settingsSectionAccessibility": "Aksesibilitas", "settingsAccessibilitySectionTitle": "Aksesibilitas",
"settingsRemoveAnimationsTile": "Hapus animasi", "settingsRemoveAnimationsTile": "Hapus animasi",
"settingsRemoveAnimationsTitle": "Hapus Animasi", "settingsRemoveAnimationsDialogTitle": "Hapus Animasi",
"settingsTimeToTakeActionTile": "Waktu untuk mengambil tindakan", "settingsTimeToTakeActionTile": "Waktu untuk mengambil tindakan",
"settingsTimeToTakeActionTitle": "Saatnya Bertindak", "settingsTimeToTakeActionDialogTitle": "Saatnya Bertindak",
"settingsSectionDisplay": "Tampilan", "settingsDisplaySectionTitle": "Tampilan",
"settingsThemeBrightness": "Tema", "settingsThemeBrightnessTile": "Tema",
"settingsThemeBrightnessDialogTitle": "Tema",
"settingsThemeColorHighlights": "Highlight warna", "settingsThemeColorHighlights": "Highlight warna",
"settingsThemeEnableDynamicColor": "Warna dinamis", "settingsThemeEnableDynamicColor": "Warna dinamis",
"settingsDisplayRefreshRateModeTile": "Tingkat penyegaran tampilan", "settingsDisplayRefreshRateModeTile": "Tingkat penyegaran tampilan",
"settingsDisplayRefreshRateModeTitle": "Tingkat Penyegaran", "settingsDisplayRefreshRateModeDialogTitle": "Tingkat Penyegaran",
"settingsSectionLanguage": "Bahasa & Format", "settingsLanguageSectionTitle": "Bahasa & Format",
"settingsLanguage": "Bahasa", "settingsLanguageTile": "Bahasa",
"settingsLanguagePageTitle": "Bahasa",
"settingsCoordinateFormatTile": "Format koordinat", "settingsCoordinateFormatTile": "Format koordinat",
"settingsCoordinateFormatTitle": "Format Koordinat", "settingsCoordinateFormatDialogTitle": "Format Koordinat",
"settingsUnitSystemTile": "Unit", "settingsUnitSystemTile": "Unit",
"settingsUnitSystemTitle": "Unit", "settingsUnitSystemDialogTitle": "Unit",
"settingsScreenSaverPageTitle": "Screensaver", "settingsScreenSaverPageTitle": "Screensaver",
"settingsWidgetPageTitle": "Bingkai Foto", "settingsWidgetPageTitle": "Bingkai Foto",
"settingsWidgetShowOutline": "Garis luar", "settingsWidgetShowOutline": "Garis luar",
"settingsCollectionTile": "Koleksi",
"statsPageTitle": "Statistik", "statsPageTitle": "Statistik",
"statsWithGps": "{count, plural, other{{count} benda dengan lokasi}}", "statsWithGps": "{count, plural, other{{count} benda dengan lokasi}}",
"statsTopCountries": "Negara Teratas", "statsTopCountriesSectionTitle": "Negara Teratas",
"statsTopPlaces": "Tempat Teratas", "statsTopPlacesSectionTitle": "Tempat Teratas",
"statsTopTags": "Label Teratas", "statsTopTagsSectionTitle": "Label Teratas",
"viewerOpenPanoramaButtonLabel": "BUKA PANORAMA", "viewerOpenPanoramaButtonLabel": "BUKA PANORAMA",
"viewerSetWallpaperButtonLabel": "TETAPKAN SEBAGAI WALLPAPER", "viewerSetWallpaperButtonLabel": "TETAPKAN SEBAGAI WALLPAPER",
@ -608,6 +630,7 @@
"viewerInfoBackToViewerTooltip": "Kembali ke penonton", "viewerInfoBackToViewerTooltip": "Kembali ke penonton",
"viewerInfoUnknown": "tidak dikenal", "viewerInfoUnknown": "tidak dikenal",
"viewerInfoLabelDescription": "Deskripsi",
"viewerInfoLabelTitle": "Judul", "viewerInfoLabelTitle": "Judul",
"viewerInfoLabelDate": "Tanggal", "viewerInfoLabelDate": "Tanggal",
"viewerInfoLabelResolution": "Resolusi", "viewerInfoLabelResolution": "Resolusi",
@ -619,7 +642,7 @@
"viewerInfoLabelCoordinates": "Koordinat", "viewerInfoLabelCoordinates": "Koordinat",
"viewerInfoLabelAddress": "Alamat", "viewerInfoLabelAddress": "Alamat",
"mapStyleTitle": "Gaya Peta", "mapStyleDialogTitle": "Gaya Peta",
"mapStyleTooltip": "Pilih gaya peta", "mapStyleTooltip": "Pilih gaya peta",
"mapZoomInTooltip": "Perbesar", "mapZoomInTooltip": "Perbesar",
"mapZoomOutTooltip": "Perkecil", "mapZoomOutTooltip": "Perkecil",

View file

@ -27,6 +27,7 @@
"actionRemove": "Rimuovi", "actionRemove": "Rimuovi",
"resetTooltip": "Reimposta", "resetTooltip": "Reimposta",
"saveTooltip": "Salva", "saveTooltip": "Salva",
"pickTooltip": "Seleziona",
"doubleBackExitMessage": "Tocca di nuovo «indietro» per uscire", "doubleBackExitMessage": "Tocca di nuovo «indietro» per uscire",
"doNotAskAgain": "Non chiedere di nuovo", "doNotAskAgain": "Non chiedere di nuovo",
@ -87,18 +88,20 @@
"entryInfoActionEditDate": "Modifica data e ora", "entryInfoActionEditDate": "Modifica data e ora",
"entryInfoActionEditLocation": "Modifica posizione", "entryInfoActionEditLocation": "Modifica posizione",
"entryInfoActionEditDescription": "Modifica descrizione", "entryInfoActionEditTitleDescription": "Modifica titolo & descrizione",
"entryInfoActionEditRating": "Modifica valutazione", "entryInfoActionEditRating": "Modifica valutazione",
"entryInfoActionEditTags": "Modifica etichetta", "entryInfoActionEditTags": "Modifica etichetta",
"entryInfoActionRemoveMetadata": "Rimuovi metadati", "entryInfoActionRemoveMetadata": "Rimuovi metadati",
"filterBinLabel": "Cestino", "filterBinLabel": "Cestino",
"filterFavouriteLabel": "Preferiti", "filterFavouriteLabel": "Preferiti",
"filterLocationEmptyLabel": "Senza posizione", "filterNoDateLabel": "Senza data",
"filterTagEmptyLabel": "Senza etichetta", "filterNoLocationLabel": "Senza posizione",
"filterNoRatingLabel": "Non valutato",
"filterNoTagLabel": "Senza etichetta",
"filterNoTitleLabel": "Senza titolo",
"filterOnThisDayLabel": "In questo giorno", "filterOnThisDayLabel": "In questo giorno",
"filterRecentlyAddedLabel": "Aggiunto di recente", "filterRecentlyAddedLabel": "Aggiunto di recente",
"filterRatingUnratedLabel": "Non valutato",
"filterRatingRejectedLabel": "Rifiutato", "filterRatingRejectedLabel": "Rifiutato",
"filterTypeAnimatedLabel": "Animato", "filterTypeAnimatedLabel": "Animato",
"filterTypeMotionPhotoLabel": "Foto in movimento", "filterTypeMotionPhotoLabel": "Foto in movimento",
@ -179,16 +182,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "Scheda SD", "storageVolumeDescriptionFallbackNonPrimary": "Scheda SD",
"rootDirectoryDescription": "cartella root", "rootDirectoryDescription": "cartella root",
"otherDirectoryDescription": "cartella «{name}»", "otherDirectoryDescription": "cartella «{name}»",
"storageAccessDialogTitle": "Accesso a tutti i file",
"storageAccessDialogMessage": "Si prega di selezionare la {directory} di «{volume}» nella prossima schermata per dare accesso a questa applicazione", "storageAccessDialogMessage": "Si prega di selezionare la {directory} di «{volume}» nella prossima schermata per dare accesso a questa applicazione",
"restrictedAccessDialogTitle": "Accesso limitato",
"restrictedAccessDialogMessage": "Questa applicazione non è autorizzata a modificare i file nella {directory} di «{volume}»", "restrictedAccessDialogMessage": "Questa applicazione non è autorizzata a modificare i file nella {directory} di «{volume}»",
"notEnoughSpaceDialogTitle": "Spazio insufficiente",
"notEnoughSpaceDialogMessage": "Questa operazione ha bisogno di {needSize} di spazio libero su «{volume}» per essere completata, ma è rimasto solo {freeSize}", "notEnoughSpaceDialogMessage": "Questa operazione ha bisogno di {needSize} di spazio libero su «{volume}» per essere completata, ma è rimasto solo {freeSize}",
"missingSystemFilePickerDialogTitle": "Selezionatore file mancante",
"missingSystemFilePickerDialogMessage": "Il selezionatore file di sistema è mancante o disabilitato. Per favore abilitalo e riprova", "missingSystemFilePickerDialogMessage": "Il selezionatore file di sistema è mancante o disabilitato. Per favore abilitalo e riprova",
"unsupportedTypeDialogTitle": "Formati non supportati",
"unsupportedTypeDialogMessage": "{count, plural, =1{Questa operazione non è supportata per elementi del seguente tipo: {types}.} other{Questa operazione non è supportata per elementi dei seguenti tipi: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, =1{Questa operazione non è supportata per elementi del seguente tipo: {types}.} other{Questa operazione non è supportata per elementi dei seguenti tipi: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Alcuni file nella cartella di destinazione hanno lo stesso nome", "nameConflictDialogSingleSourceMessage": "Alcuni file nella cartella di destinazione hanno lo stesso nome",
@ -197,7 +195,6 @@
"addShortcutDialogLabel": "Etichetta della scorciatoia", "addShortcutDialogLabel": "Etichetta della scorciatoia",
"addShortcutButtonLabel": "AGGIUNGI", "addShortcutButtonLabel": "AGGIUNGI",
"noMatchingAppDialogTitle": "Nessuna app corrispondente",
"noMatchingAppDialogMessage": "Non ci sono app che possono gestire questo", "noMatchingAppDialogMessage": "Non ci sono app che possono gestire questo",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Spostare questo elemento nel cestino?} other{Spostare questi {count} elementi nel cestino?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Spostare questo elemento nel cestino?} other{Spostare questi {count} elementi nel cestino?}}",
@ -226,7 +223,7 @@
"renameEntrySetPageTitle": "Rinomina", "renameEntrySetPageTitle": "Rinomina",
"renameEntrySetPagePatternFieldLabel": "Schema per i nomi", "renameEntrySetPagePatternFieldLabel": "Schema per i nomi",
"renameEntrySetPageInsertTooltip": "Inserisci campo", "renameEntrySetPageInsertTooltip": "Inserisci campo",
"renameEntrySetPagePreview": "Anteprima", "renameEntrySetPagePreviewSectionTitle": "Anteprima",
"renameProcessorCounter": "Contatore", "renameProcessorCounter": "Contatore",
"renameProcessorName": "Nome", "renameProcessorName": "Nome",
@ -259,8 +256,6 @@
"locationPickerUseThisLocationButton": "Usa questa posizione", "locationPickerUseThisLocationButton": "Usa questa posizione",
"editEntryDescriptionDialogTitle": "Descrizione",
"editEntryRatingDialogTitle": "Valutazione", "editEntryRatingDialogTitle": "Valutazione",
"removeEntryMetadataDialogTitle": "Rimozione dei metadati", "removeEntryMetadataDialogTitle": "Rimozione dei metadati",
@ -289,9 +284,10 @@
"menuActionSlideshow": "Presentazione", "menuActionSlideshow": "Presentazione",
"menuActionStats": "Statistiche", "menuActionStats": "Statistiche",
"viewDialogTabSort": "Ordina", "viewDialogSortSectionTitle": "Ordina",
"viewDialogTabGroup": "Raggruppa", "viewDialogGroupSectionTitle": "Raggruppa",
"viewDialogTabLayout": "Layout", "viewDialogLayoutSectionTitle": "Layout",
"viewDialogReverseSortOrder": "Inverti ordinamento",
"tileLayoutGrid": "Griglia", "tileLayoutGrid": "Griglia",
"tileLayoutList": "Lista", "tileLayoutList": "Lista",
@ -308,24 +304,24 @@
"aboutLinkLicense": "Licenza", "aboutLinkLicense": "Licenza",
"aboutLinkPolicy": "Informativa sulla privacy", "aboutLinkPolicy": "Informativa sulla privacy",
"aboutBug": "Segnalazione bug", "aboutBugSectionTitle": "Segnalazione bug",
"aboutBugSaveLogInstruction": "Salva i log dellapp in un file", "aboutBugSaveLogInstruction": "Salva i log dellapp in un file",
"aboutBugCopyInfoInstruction": "Copia le informazioni di sistema", "aboutBugCopyInfoInstruction": "Copia le informazioni di sistema",
"aboutBugCopyInfoButton": "Copia", "aboutBugCopyInfoButton": "Copia",
"aboutBugReportInstruction": "Segnala su GitHub con i log e le informazioni di sistema", "aboutBugReportInstruction": "Segnala su GitHub con i log e le informazioni di sistema",
"aboutBugReportButton": "Segnala", "aboutBugReportButton": "Segnala",
"aboutCredits": "Crediti", "aboutCreditsSectionTitle": "Crediti",
"aboutCreditsWorldAtlas1": "Questa applicazione utilizza un file TopoJSON di", "aboutCreditsWorldAtlas1": "Questa applicazione utilizza un file TopoJSON di",
"aboutCreditsWorldAtlas2": "sotto licenza ISC", "aboutCreditsWorldAtlas2": "sotto licenza ISC",
"aboutCreditsTranslators": "Traduttori", "aboutTranslatorsSectionTitle": "Traduttori",
"aboutLicenses": "Licenze Open-Source", "aboutLicensesSectionTitle": "Licenze Open-Source",
"aboutLicensesBanner": "Questa applicazione utilizza i seguenti pacchetti e librerie open-source", "aboutLicensesBanner": "Questa applicazione utilizza i seguenti pacchetti e librerie open-source",
"aboutLicensesAndroidLibraries": "Librerie Android", "aboutLicensesAndroidLibrariesSectionTitle": "Librerie Android",
"aboutLicensesFlutterPlugins": "Plugin Flutter", "aboutLicensesFlutterPluginsSectionTitle": "Plugin Flutter",
"aboutLicensesFlutterPackages": "Pacchetti Flutter", "aboutLicensesFlutterPackagesSectionTitle": "Pacchetti Flutter",
"aboutLicensesDartPackages": "Pacchetti Dart", "aboutLicensesDartPackagesSectionTitle": "Pacchetti Dart",
"aboutLicensesShowAllButtonLabel": "Mostra tutte le licenze", "aboutLicensesShowAllButtonLabel": "Mostra tutte le licenze",
"policyPageTitle": "Informativa sulla privacy", "policyPageTitle": "Informativa sulla privacy",
@ -345,11 +341,6 @@
"collectionSearchTitlesHintText": "Cerca titoli", "collectionSearchTitlesHintText": "Cerca titoli",
"collectionSortDate": "Per data",
"collectionSortSize": "Per dimensione",
"collectionSortName": "Per album e nome del file",
"collectionSortRating": "Per valutazione",
"collectionGroupAlbum": "Per album", "collectionGroupAlbum": "Per album",
"collectionGroupMonth": "Per mese", "collectionGroupMonth": "Per mese",
"collectionGroupDay": "Per giorno", "collectionGroupDay": "Per giorno",
@ -378,6 +369,8 @@
"collectionSelectSectionTooltip": "Seleziona sezione", "collectionSelectSectionTooltip": "Seleziona sezione",
"collectionDeselectSectionTooltip": "Deseleziona sezione", "collectionDeselectSectionTooltip": "Deseleziona sezione",
"drawerAboutButton": "Informazioni",
"drawerSettingsButton": "Impostazioni",
"drawerCollectionAll": "Tutte le collezioni", "drawerCollectionAll": "Tutte le collezioni",
"drawerCollectionFavourites": "Preferiti", "drawerCollectionFavourites": "Preferiti",
"drawerCollectionImages": "Immagini", "drawerCollectionImages": "Immagini",
@ -387,10 +380,24 @@
"drawerCollectionPanoramas": "Panorami", "drawerCollectionPanoramas": "Panorami",
"drawerCollectionRaws": "Foto raw", "drawerCollectionRaws": "Foto raw",
"drawerCollectionSphericalVideos": "Video a 360°", "drawerCollectionSphericalVideos": "Video a 360°",
"drawerAlbumPage": "Album",
"drawerCountryPage": "Paesi",
"drawerTagPage": "Etichette",
"chipSortDate": "Per data", "sortByDate": "Per data",
"chipSortName": "Per nome", "sortByName": "Per nome",
"chipSortCount": "Per numero di elementi", "sortByItemCount": "Per numero di elementi",
"sortBySize": "Per dimensione",
"sortByAlbumFileName": "Per album e nome del file",
"sortByRating": "Per valutazione",
"sortOrderNewestFirst": "Prima i più nuovi",
"sortOrderOldestFirst": "Prima i più vecchi",
"sortOrderAtoZ": "Dalla A alla Z",
"sortOrderZtoA": "Dalla Z alla A",
"sortOrderHighestFirst": "Prima le più alte",
"sortOrderLowestFirst": "Prima le più basse",
"sortOrderLargestFirst": "Prima i più grandi",
"sortOrderSmallestFirst": "Prima i più piccoli",
"albumGroupTier": "Per importanza", "albumGroupTier": "Per importanza",
"albumGroupVolume": "Per volume di archiviazione", "albumGroupVolume": "Per volume di archiviazione",
@ -422,13 +429,14 @@
"binPageTitle": "Cestino", "binPageTitle": "Cestino",
"searchCollectionFieldHint": "Cerca raccolta", "searchCollectionFieldHint": "Cerca raccolta",
"searchSectionRecent": "Recenti", "searchRecentSectionTitle": "Recenti",
"searchSectionDate": "Data", "searchDateSectionTitle": "Data",
"searchSectionAlbums": "Album", "searchAlbumsSectionTitle": "Album",
"searchSectionCountries": "Paesi", "searchCountriesSectionTitle": "Paesi",
"searchSectionPlaces": "Luoghi", "searchPlacesSectionTitle": "Luoghi",
"searchSectionTags": "Etichette", "searchTagsSectionTitle": "Etichette",
"searchSectionRating": "Valutazioni", "searchRatingSectionTitle": "Valutazioni",
"searchMetadataSectionTitle": "Metadati",
"settingsPageTitle": "Impostazioni", "settingsPageTitle": "Impostazioni",
"settingsSystemDefault": "Sistema", "settingsSystemDefault": "Sistema",
@ -437,37 +445,40 @@
"settingsSearchFieldLabel": "Ricerca impostazioni", "settingsSearchFieldLabel": "Ricerca impostazioni",
"settingsSearchEmpty": "Nessuna impostazione corrispondente", "settingsSearchEmpty": "Nessuna impostazione corrispondente",
"settingsActionExport": "Esporta", "settingsActionExport": "Esporta",
"settingsActionExportDialogTitle": "Esporta",
"settingsActionImport": "Importa", "settingsActionImport": "Importa",
"settingsActionImportDialogTitle": "Importa",
"appExportCovers": "Copertine", "appExportCovers": "Copertine",
"appExportFavourites": "Preferiti", "appExportFavourites": "Preferiti",
"appExportSettings": "Impostazioni", "appExportSettings": "Impostazioni",
"settingsSectionNavigation": "Navigazione", "settingsNavigationSectionTitle": "Navigazione",
"settingsHome": "Pagina iniziale", "settingsHomeTile": "Pagina iniziale",
"settingsHomeDialogTitle": "Pagina iniziale",
"settingsShowBottomNavigationBar": "Mostra la barra di navigazione in basso", "settingsShowBottomNavigationBar": "Mostra la barra di navigazione in basso",
"settingsKeepScreenOnTile": "Mantieni acceso lo schermo", "settingsKeepScreenOnTile": "Mantieni acceso lo schermo",
"settingsKeepScreenOnTitle": "Illuminazione schermo", "settingsKeepScreenOnDialogTitle": "Illuminazione schermo",
"settingsDoubleBackExit": "Tocca «indietro» due volte per uscire", "settingsDoubleBackExit": "Tocca «indietro» due volte per uscire",
"settingsConfirmationDialogTile": "Richieste di conferma", "settingsConfirmationTile": "Richieste di conferma",
"settingsConfirmationDialogTitle": "Richieste di conferma", "settingsConfirmationDialogTitle": "Richieste di conferma",
"settingsConfirmationDialogDeleteItems": "Chiedi prima di cancellare gli elementi definitivamente", "settingsConfirmationBeforeDeleteItems": "Chiedi prima di cancellare gli elementi definitivamente",
"settingsConfirmationDialogMoveToBinItems": "Chiedi prima di spostare gli elementi nel cestino", "settingsConfirmationBeforeMoveToBinItems": "Chiedi prima di spostare gli elementi nel cestino",
"settingsConfirmationDialogMoveUndatedItems": "Chiedi prima di spostare gli elementi senza data", "settingsConfirmationBeforeMoveUndatedItems": "Chiedi prima di spostare gli elementi senza data",
"settingsConfirmationAfterMoveToBinItems": "Mostra un messaggio dopo aver spostato gli elementi nel cestino", "settingsConfirmationAfterMoveToBinItems": "Mostra un messaggio dopo aver spostato gli elementi nel cestino",
"settingsNavigationDrawerTile": "Menu di navigazione", "settingsNavigationDrawerTile": "Menu di navigazione",
"settingsNavigationDrawerEditorTitle": "Menu di navigazione", "settingsNavigationDrawerEditorPageTitle": "Menu di navigazione",
"settingsNavigationDrawerBanner": "Tocca e tieni premuto per spostare e riordinare gli elementi del menu", "settingsNavigationDrawerBanner": "Tocca e tieni premuto per spostare e riordinare gli elementi del menu",
"settingsNavigationDrawerTabTypes": "Tipi", "settingsNavigationDrawerTabTypes": "Tipi",
"settingsNavigationDrawerTabAlbums": "Album", "settingsNavigationDrawerTabAlbums": "Album",
"settingsNavigationDrawerTabPages": "Pagine", "settingsNavigationDrawerTabPages": "Pagine",
"settingsNavigationDrawerAddAlbum": "Aggiungi album", "settingsNavigationDrawerAddAlbum": "Aggiungi album",
"settingsSectionThumbnails": "Miniature", "settingsThumbnailSectionTitle": "Miniature",
"settingsThumbnailOverlayTile": "Sovrapposizione", "settingsThumbnailOverlayTile": "Sovrapposizione",
"settingsThumbnailOverlayTitle": "Sovrapposizione", "settingsThumbnailOverlayPageTitle": "Sovrapposizione",
"settingsThumbnailShowFavouriteIcon": "Mostra licona Preferiti", "settingsThumbnailShowFavouriteIcon": "Mostra licona Preferiti",
"settingsThumbnailShowTagIcon": "Mostra licona Etichetta", "settingsThumbnailShowTagIcon": "Mostra licona Etichetta",
"settingsThumbnailShowLocationIcon": "Mostra licona Posizione", "settingsThumbnailShowLocationIcon": "Mostra licona Posizione",
@ -477,13 +488,13 @@
"settingsThumbnailShowVideoDuration": "Mostra la durata del video", "settingsThumbnailShowVideoDuration": "Mostra la durata del video",
"settingsCollectionQuickActionsTile": "Azioni rapide", "settingsCollectionQuickActionsTile": "Azioni rapide",
"settingsCollectionQuickActionEditorTitle": "Azioni rapide", "settingsCollectionQuickActionEditorPageTitle": "Azioni rapide",
"settingsCollectionQuickActionTabBrowsing": "Navigazione", "settingsCollectionQuickActionTabBrowsing": "Navigazione",
"settingsCollectionQuickActionTabSelecting": "Selezione", "settingsCollectionQuickActionTabSelecting": "Selezione",
"settingsCollectionBrowsingQuickActionEditorBanner": "Tocca e tieni premuto per spostare i pulsanti e selezionare quali azioni vengono visualizzate durante la navigazione degli elementi", "settingsCollectionBrowsingQuickActionEditorBanner": "Tocca e tieni premuto per spostare i pulsanti e selezionare quali azioni vengono visualizzate durante la navigazione degli elementi",
"settingsCollectionSelectionQuickActionEditorBanner": "Tocca e tieni premuto per spostare i pulsanti e selezionare quali azioni vengono visualizzate quando si selezionano gli elementi", "settingsCollectionSelectionQuickActionEditorBanner": "Tocca e tieni premuto per spostare i pulsanti e selezionare quali azioni vengono visualizzate quando si selezionano gli elementi",
"settingsSectionViewer": "Visualizzazione", "settingsViewerSectionTitle": "Visualizzazione",
"settingsViewerGestureSideTapNext": "Tocca i bordi dello schermo per visualizzare l'elemento precedente/successivo", "settingsViewerGestureSideTapNext": "Tocca i bordi dello schermo per visualizzare l'elemento precedente/successivo",
"settingsViewerUseCutout": "Usa area di ritaglio", "settingsViewerUseCutout": "Usa area di ritaglio",
"settingsViewerMaximumBrightness": "Luminosità massima", "settingsViewerMaximumBrightness": "Luminosità massima",
@ -491,14 +502,14 @@
"settingsImageBackground": "Sfondo immagine", "settingsImageBackground": "Sfondo immagine",
"settingsViewerQuickActionsTile": "Azioni rapide", "settingsViewerQuickActionsTile": "Azioni rapide",
"settingsViewerQuickActionEditorTitle": "Azioni rapide", "settingsViewerQuickActionEditorPageTitle": "Azioni rapide",
"settingsViewerQuickActionEditorBanner": "Tocca e tieni premuto per spostare i pulsanti e selezionare quali azioni vengono mostrate durante la visualizione", "settingsViewerQuickActionEditorBanner": "Tocca e tieni premuto per spostare i pulsanti e selezionare quali azioni vengono mostrate durante la visualizione",
"settingsViewerQuickActionEditorDisplayedButtons": "Pulsanti visualizzati", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Pulsanti visualizzati",
"settingsViewerQuickActionEditorAvailableButtons": "Pulsanti disponibili", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Pulsanti disponibili",
"settingsViewerQuickActionEmpty": "Nessun pulsante", "settingsViewerQuickActionEmpty": "Nessun pulsante",
"settingsViewerOverlayTile": "Sovrapposizione", "settingsViewerOverlayTile": "Sovrapposizione",
"settingsViewerOverlayTitle": "Sovrapposizione", "settingsViewerOverlayPageTitle": "Sovrapposizione",
"settingsViewerShowOverlayOnOpening": "Mostra allapertura", "settingsViewerShowOverlayOnOpening": "Mostra allapertura",
"settingsViewerShowMinimap": "Mostra la minimappa", "settingsViewerShowMinimap": "Mostra la minimappa",
"settingsViewerShowInformation": "Mostra informazioni", "settingsViewerShowInformation": "Mostra informazioni",
@ -508,30 +519,30 @@
"settingsViewerEnableOverlayBlurEffect": "Effetto sfocatura", "settingsViewerEnableOverlayBlurEffect": "Effetto sfocatura",
"settingsViewerSlideshowTile": "Presentazione", "settingsViewerSlideshowTile": "Presentazione",
"settingsViewerSlideshowTitle": "Presentazione", "settingsViewerSlideshowPageTitle": "Presentazione",
"settingsSlideshowRepeat": "Ripeti", "settingsSlideshowRepeat": "Ripeti",
"settingsSlideshowShuffle": "Ordine casuale", "settingsSlideshowShuffle": "Ordine casuale",
"settingsSlideshowFillScreen": "Riempi schermo", "settingsSlideshowFillScreen": "Riempi schermo",
"settingsSlideshowTransitionTile": "Transizione", "settingsSlideshowTransitionTile": "Transizione",
"settingsSlideshowTransitionTitle": "Transizione", "settingsSlideshowTransitionDialogTitle": "Transizione",
"settingsSlideshowIntervalTile": "Intervallo", "settingsSlideshowIntervalTile": "Intervallo",
"settingsSlideshowIntervalTitle": "Intervallo", "settingsSlideshowIntervalDialogTitle": "Intervallo",
"settingsSlideshowVideoPlaybackTile": "Riproduzione video", "settingsSlideshowVideoPlaybackTile": "Riproduzione video",
"settingsSlideshowVideoPlaybackTitle": "Riproduzione video", "settingsSlideshowVideoPlaybackDialogTitle": "Riproduzione video",
"settingsVideoPageTitle": "Impostazioni video", "settingsVideoPageTitle": "Impostazioni video",
"settingsSectionVideo": "Video", "settingsVideoSectionTitle": "Video",
"settingsVideoShowVideos": "Mostra video", "settingsVideoShowVideos": "Mostra video",
"settingsVideoEnableHardwareAcceleration": "Accelerazione hardware", "settingsVideoEnableHardwareAcceleration": "Accelerazione hardware",
"settingsVideoEnableAutoPlay": "Riproduzione automatica", "settingsVideoEnableAutoPlay": "Riproduzione automatica",
"settingsVideoLoopModeTile": "Modalità loop", "settingsVideoLoopModeTile": "Modalità loop",
"settingsVideoLoopModeTitle": "Modalità loop", "settingsVideoLoopModeDialogTitle": "Modalità loop",
"settingsSubtitleThemeTile": "Sottotitoli", "settingsSubtitleThemeTile": "Sottotitoli",
"settingsSubtitleThemeTitle": "Sottotitoli", "settingsSubtitleThemePageTitle": "Sottotitoli",
"settingsSubtitleThemeSample": "Questo è un campione", "settingsSubtitleThemeSample": "Questo è un campione",
"settingsSubtitleThemeTextAlignmentTile": "Allineamento del testo", "settingsSubtitleThemeTextAlignmentTile": "Allineamento del testo",
"settingsSubtitleThemeTextAlignmentTitle": "Allineamento del testo", "settingsSubtitleThemeTextAlignmentDialogTitle": "Allineamento del testo",
"settingsSubtitleThemeTextSize": "Dimensione del testo", "settingsSubtitleThemeTextSize": "Dimensione del testo",
"settingsSubtitleThemeShowOutline": "Mostra contorno e ombra", "settingsSubtitleThemeShowOutline": "Mostra contorno e ombra",
"settingsSubtitleThemeTextColor": "Colore del testo", "settingsSubtitleThemeTextColor": "Colore del testo",
@ -543,13 +554,13 @@
"settingsSubtitleThemeTextAlignmentRight": "Destra", "settingsSubtitleThemeTextAlignmentRight": "Destra",
"settingsVideoControlsTile": "Controlli", "settingsVideoControlsTile": "Controlli",
"settingsVideoControlsTitle": "Controlli", "settingsVideoControlsPageTitle": "Controlli",
"settingsVideoButtonsTile": "Pulsanti", "settingsVideoButtonsTile": "Pulsanti",
"settingsVideoButtonsTitle": "Pulsanti", "settingsVideoButtonsDialogTitle": "Pulsanti",
"settingsVideoGestureDoubleTapTogglePlay": "Doppio tocco per play/pausa", "settingsVideoGestureDoubleTapTogglePlay": "Doppio tocco per play/pausa",
"settingsVideoGestureSideDoubleTapSeek": "Doppio tocco sui bordi dello schermo per cercare avanti/indietro", "settingsVideoGestureSideDoubleTapSeek": "Doppio tocco sui bordi dello schermo per cercare avanti/indietro",
"settingsSectionPrivacy": "Privacy", "settingsPrivacySectionTitle": "Privacy",
"settingsAllowInstalledAppAccess": "Consentire laccesso allinventario delle app", "settingsAllowInstalledAppAccess": "Consentire laccesso allinventario delle app",
"settingsAllowInstalledAppAccessSubtitle": "Utilizzato per migliorare la visualizzazione degli album", "settingsAllowInstalledAppAccessSubtitle": "Utilizzato per migliorare la visualizzazione degli album",
"settingsAllowErrorReporting": "Consenti segnalazione anonima degli errori", "settingsAllowErrorReporting": "Consenti segnalazione anonima degli errori",
@ -558,52 +569,56 @@
"settingsEnableBinSubtitle": "Conserva gli elementi cancellati per 30 giorni", "settingsEnableBinSubtitle": "Conserva gli elementi cancellati per 30 giorni",
"settingsHiddenItemsTile": "Elementi nascosti", "settingsHiddenItemsTile": "Elementi nascosti",
"settingsHiddenItemsTitle": "Elementi nascosti", "settingsHiddenItemsPageTitle": "Elementi nascosti",
"settingsHiddenFiltersTitle": "Filtri nascosti", "settingsHiddenItemsTabFilters": "Filtri nascosti",
"settingsHiddenFiltersBanner": "Le foto e i video che corrispondono ai filtri nascosti non appariranno nella tua collezione", "settingsHiddenFiltersBanner": "Le foto e i video che corrispondono ai filtri nascosti non appariranno nella tua collezione",
"settingsHiddenFiltersEmpty": "Nessun filtro nascosto", "settingsHiddenFiltersEmpty": "Nessun filtro nascosto",
"settingsHiddenPathsTitle": "Percorsi nascosti", "settingsHiddenItemsTabPaths": "Percorsi nascosti",
"settingsHiddenPathsBanner": "Le foto e i video in queste cartelle, o in qualsiasi loro sottocartella, non appariranno nella tua collezione", "settingsHiddenPathsBanner": "Le foto e i video in queste cartelle, o in qualsiasi loro sottocartella, non appariranno nella tua collezione",
"addPathTooltip": "Aggiungi percorso", "addPathTooltip": "Aggiungi percorso",
"settingsStorageAccessTile": "Accesso a tutti i file", "settingsStorageAccessTile": "Accesso a tutti i file",
"settingsStorageAccessTitle": "Accesso a tutti i file", "settingsStorageAccessPageTitle": "Accesso a tutti i file",
"settingsStorageAccessBanner": "Alcune cartelle richiedono una concessione di accesso esplicita per modificare i file al loro interno. Puoi rivedere qui le cartelle a cui hai dato accesso in precedenza", "settingsStorageAccessBanner": "Alcune cartelle richiedono una concessione di accesso esplicita per modificare i file al loro interno. Puoi rivedere qui le cartelle a cui hai dato accesso in precedenza",
"settingsStorageAccessEmpty": "Nessuna autorizzazione concessa", "settingsStorageAccessEmpty": "Nessuna autorizzazione concessa",
"settingsStorageAccessRevokeTooltip": "Rifiuta autorizzazione", "settingsStorageAccessRevokeTooltip": "Rifiuta autorizzazione",
"settingsSectionAccessibility": "Accessibilità", "settingsAccessibilitySectionTitle": "Accessibilità",
"settingsRemoveAnimationsTile": "Rimuovi animazioni", "settingsRemoveAnimationsTile": "Rimuovi animazioni",
"settingsRemoveAnimationsTitle": "Rimuovi animazioni", "settingsRemoveAnimationsDialogTitle": "Rimuovi animazioni",
"settingsTimeToTakeActionTile": "Tempo di reazione", "settingsTimeToTakeActionTile": "Tempo di reazione",
"settingsTimeToTakeActionTitle": "Tempo di reazione", "settingsTimeToTakeActionDialogTitle": "Tempo di reazione",
"settingsSectionDisplay": "Schermo", "settingsDisplaySectionTitle": "Schermo",
"settingsThemeBrightness": "Tema", "settingsThemeBrightnessTile": "Tema",
"settingsThemeBrightnessDialogTitle": "Tema",
"settingsThemeColorHighlights": "Colori evidenziati", "settingsThemeColorHighlights": "Colori evidenziati",
"settingsThemeEnableDynamicColor": "Colori dinamici", "settingsThemeEnableDynamicColor": "Colori dinamici",
"settingsDisplayRefreshRateModeTile": "Frequenza di aggiornamento dello schermo", "settingsDisplayRefreshRateModeTile": "Frequenza di aggiornamento dello schermo",
"settingsDisplayRefreshRateModeTitle": "Frequenza di aggiornamento", "settingsDisplayRefreshRateModeDialogTitle": "Frequenza di aggiornamento",
"settingsSectionLanguage": "Lingua e formati", "settingsLanguageSectionTitle": "Lingua e formati",
"settingsLanguage": "Lingua", "settingsLanguageTile": "Lingua",
"settingsLanguagePageTitle": "Lingua",
"settingsCoordinateFormatTile": "Formato coordinate", "settingsCoordinateFormatTile": "Formato coordinate",
"settingsCoordinateFormatTitle": "Formato coordinate", "settingsCoordinateFormatDialogTitle": "Formato coordinate",
"settingsUnitSystemTile": "Unità", "settingsUnitSystemTile": "Unità",
"settingsUnitSystemTitle": "Unità", "settingsUnitSystemDialogTitle": "Unità",
"settingsScreenSaverPageTitle": "Salvaschermo", "settingsScreenSaverPageTitle": "Salvaschermo",
"settingsWidgetPageTitle": "Cornice foto", "settingsWidgetPageTitle": "Cornice foto",
"settingsWidgetShowOutline": "Contorno", "settingsWidgetShowOutline": "Contorno",
"settingsCollectionTile": "Collezione",
"statsPageTitle": "Statistiche", "statsPageTitle": "Statistiche",
"statsWithGps": "{count, plural, =1{1 elemento con posizione} other{{count} elementi con posizione}}", "statsWithGps": "{count, plural, =1{1 elemento con posizione} other{{count} elementi con posizione}}",
"statsTopCountries": "Paesi più frequenti", "statsTopCountriesSectionTitle": "Paesi più frequenti",
"statsTopPlaces": "Luoghi più frequenti", "statsTopPlacesSectionTitle": "Luoghi più frequenti",
"statsTopTags": "Etichette più frequenti", "statsTopTagsSectionTitle": "Etichette più frequenti",
"viewerOpenPanoramaButtonLabel": "APRI PANORAMA", "viewerOpenPanoramaButtonLabel": "APRI PANORAMA",
"viewerSetWallpaperButtonLabel": "IMPOSTA SFONDO", "viewerSetWallpaperButtonLabel": "IMPOSTA SFONDO",
@ -614,6 +629,7 @@
"viewerInfoBackToViewerTooltip": "Torna alla visualizzazione", "viewerInfoBackToViewerTooltip": "Torna alla visualizzazione",
"viewerInfoUnknown": "sconosciuto", "viewerInfoUnknown": "sconosciuto",
"viewerInfoLabelDescription": "Descrizione",
"viewerInfoLabelTitle": "Titolo", "viewerInfoLabelTitle": "Titolo",
"viewerInfoLabelDate": "Data", "viewerInfoLabelDate": "Data",
"viewerInfoLabelResolution": "Risoluzione", "viewerInfoLabelResolution": "Risoluzione",
@ -625,7 +641,7 @@
"viewerInfoLabelCoordinates": "Coordinate", "viewerInfoLabelCoordinates": "Coordinate",
"viewerInfoLabelAddress": "Indirizzo", "viewerInfoLabelAddress": "Indirizzo",
"mapStyleTitle": "Stile Mappa", "mapStyleDialogTitle": "Stile Mappa",
"mapStyleTooltip": "Seleziona lo stile della mappa", "mapStyleTooltip": "Seleziona lo stile della mappa",
"mapZoomInTooltip": "Ingrandisci", "mapZoomInTooltip": "Ingrandisci",
"mapZoomOutTooltip": "Riduci", "mapZoomOutTooltip": "Riduci",

View file

@ -27,6 +27,7 @@
"actionRemove": "削除", "actionRemove": "削除",
"resetTooltip": "リセット", "resetTooltip": "リセット",
"saveTooltip": "保存", "saveTooltip": "保存",
"pickTooltip": "ピック",
"doubleBackExitMessage": "終了するには「戻る」をもう一度タップしてください。", "doubleBackExitMessage": "終了するには「戻る」をもう一度タップしてください。",
"doNotAskAgain": "今後このメッセージを表示しない", "doNotAskAgain": "今後このメッセージを表示しない",
@ -93,10 +94,10 @@
"filterBinLabel": "ごみ箱", "filterBinLabel": "ごみ箱",
"filterFavouriteLabel": "お気に入り", "filterFavouriteLabel": "お気に入り",
"filterLocationEmptyLabel": "位置情報なし", "filterNoLocationLabel": "位置情報なし",
"filterTagEmptyLabel": "タグ情報なし", "filterNoRatingLabel": "評価情報なし",
"filterNoTagLabel": "タグ情報なし",
"filterOnThisDayLabel": "過去のこの日", "filterOnThisDayLabel": "過去のこの日",
"filterRatingUnratedLabel": "評価情報なし",
"filterRatingRejectedLabel": "拒否", "filterRatingRejectedLabel": "拒否",
"filterTypeAnimatedLabel": "アニメーション", "filterTypeAnimatedLabel": "アニメーション",
"filterTypeMotionPhotoLabel": "モーションフォト", "filterTypeMotionPhotoLabel": "モーションフォト",
@ -177,16 +178,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "SD カード", "storageVolumeDescriptionFallbackNonPrimary": "SD カード",
"rootDirectoryDescription": "ルート ディレクトリ", "rootDirectoryDescription": "ルート ディレクトリ",
"otherDirectoryDescription": "“{name}” ディレクトリ", "otherDirectoryDescription": "“{name}” ディレクトリ",
"storageAccessDialogTitle": "ストレージ アクセス",
"storageAccessDialogMessage": "このアプリにアクセスを許可するために次の画面で {directory} の “{volume}” を選択してください。", "storageAccessDialogMessage": "このアプリにアクセスを許可するために次の画面で {directory} の “{volume}” を選択してください。",
"restrictedAccessDialogTitle": "アクセス制限",
"restrictedAccessDialogMessage": "このアプリは {directory} の “{volume}” にあるファイルを変更できません。\n\nプリインストールされているファイル マネージャまたはギャラリー アプリを使用して他のディレクトリに移動してください。", "restrictedAccessDialogMessage": "このアプリは {directory} の “{volume}” にあるファイルを変更できません。\n\nプリインストールされているファイル マネージャまたはギャラリー アプリを使用して他のディレクトリに移動してください。",
"notEnoughSpaceDialogTitle": "容量不足",
"notEnoughSpaceDialogMessage": "この操作には “{volume}” に {neededSize} の容量が必要ですが、 残り {freeSize} のみ利用可能です。", "notEnoughSpaceDialogMessage": "この操作には “{volume}” に {neededSize} の容量が必要ですが、 残り {freeSize} のみ利用可能です。",
"missingSystemFilePickerDialogTitle": "システム ファイル ピッカーが見つかりません",
"missingSystemFilePickerDialogMessage": "システム ファイル ピッカーが見つからないか、利用できません。利用可能にしてから再度お試しください。", "missingSystemFilePickerDialogMessage": "システム ファイル ピッカーが見つからないか、利用できません。利用可能にしてから再度お試しください。",
"unsupportedTypeDialogTitle": "対応していないタイプ",
"unsupportedTypeDialogMessage": "{count, plural, other{この操作は次のタイプのアイテムには対応していません: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, other{この操作は次のタイプのアイテムには対応していません: {types}.}}",
"nameConflictDialogSingleSourceMessage": "目的フォルダに同じ名前のファイルが存在しています。", "nameConflictDialogSingleSourceMessage": "目的フォルダに同じ名前のファイルが存在しています。",
@ -195,7 +191,6 @@
"addShortcutDialogLabel": "ショートカット ラベル", "addShortcutDialogLabel": "ショートカット ラベル",
"addShortcutButtonLabel": "追加", "addShortcutButtonLabel": "追加",
"noMatchingAppDialogTitle": "一致するアプリなし",
"noMatchingAppDialogMessage": "処理できるアプリが見つかりません。", "noMatchingAppDialogMessage": "処理できるアプリが見つかりません。",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{このアイテムをごみ箱に移動しますか?} other{{count} 件のアイテムをごみ箱に移動しますか?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{このアイテムをごみ箱に移動しますか?} other{{count} 件のアイテムをごみ箱に移動しますか?}}",
@ -224,7 +219,7 @@
"renameEntrySetPageTitle": "名前を変更", "renameEntrySetPageTitle": "名前を変更",
"renameEntrySetPagePatternFieldLabel": "名前付けのパターン", "renameEntrySetPagePatternFieldLabel": "名前付けのパターン",
"renameEntrySetPageInsertTooltip": "フィールドを挿入", "renameEntrySetPageInsertTooltip": "フィールドを挿入",
"renameEntrySetPagePreview": "プレビュー", "renameEntrySetPagePreviewSectionTitle": "プレビュー",
"renameProcessorCounter": "連番", "renameProcessorCounter": "連番",
"renameProcessorName": "名前", "renameProcessorName": "名前",
@ -285,9 +280,9 @@
"menuActionSlideshow": "スライドショー", "menuActionSlideshow": "スライドショー",
"menuActionStats": "統計", "menuActionStats": "統計",
"viewDialogTabSort": "並べ替え", "viewDialogSortSectionTitle": "並べ替え",
"viewDialogTabGroup": "グループ", "viewDialogGroupSectionTitle": "グループ",
"viewDialogTabLayout": "レイアウト", "viewDialogLayoutSectionTitle": "レイアウト",
"tileLayoutGrid": "グリッド表示", "tileLayoutGrid": "グリッド表示",
"tileLayoutList": "リスト表示", "tileLayoutList": "リスト表示",
@ -304,24 +299,24 @@
"aboutLinkLicense": "ライセンス", "aboutLinkLicense": "ライセンス",
"aboutLinkPolicy": "プライバシー ポリシー", "aboutLinkPolicy": "プライバシー ポリシー",
"aboutBug": "バグの報告", "aboutBugSectionTitle": "バグの報告",
"aboutBugSaveLogInstruction": "アプリのログをファイルに保存", "aboutBugSaveLogInstruction": "アプリのログをファイルに保存",
"aboutBugCopyInfoInstruction": "システム情報をコピー", "aboutBugCopyInfoInstruction": "システム情報をコピー",
"aboutBugCopyInfoButton": "コピー", "aboutBugCopyInfoButton": "コピー",
"aboutBugReportInstruction": "ログとシステム情報とともに GitHub で報告", "aboutBugReportInstruction": "ログとシステム情報とともに GitHub で報告",
"aboutBugReportButton": "報告", "aboutBugReportButton": "報告",
"aboutCredits": "クレジット", "aboutCreditsSectionTitle": "クレジット",
"aboutCreditsWorldAtlas1": "このアプリは TopoJSON ファイルを", "aboutCreditsWorldAtlas1": "このアプリは TopoJSON ファイルを",
"aboutCreditsWorldAtlas2": "ISC License の下使用しています。", "aboutCreditsWorldAtlas2": "ISC License の下使用しています。",
"aboutCreditsTranslators": "翻訳", "aboutTranslatorsSectionTitle": "翻訳",
"aboutLicenses": "オープンソース ライセンス", "aboutLicensesSectionTitle": "オープンソース ライセンス",
"aboutLicensesBanner": "このアプリは下記のオープンソース パッケージおよびライブラリを使用しています。", "aboutLicensesBanner": "このアプリは下記のオープンソース パッケージおよびライブラリを使用しています。",
"aboutLicensesAndroidLibraries": "Android ライブラリ", "aboutLicensesAndroidLibrariesSectionTitle": "Android ライブラリ",
"aboutLicensesFlutterPlugins": "Flutter プラグイン", "aboutLicensesFlutterPluginsSectionTitle": "Flutter プラグイン",
"aboutLicensesFlutterPackages": "Flutter パッケージ", "aboutLicensesFlutterPackagesSectionTitle": "Flutter パッケージ",
"aboutLicensesDartPackages": "Dart パッケージ", "aboutLicensesDartPackagesSectionTitle": "Dart パッケージ",
"aboutLicensesShowAllButtonLabel": "すべてのライセンスを表示", "aboutLicensesShowAllButtonLabel": "すべてのライセンスを表示",
"policyPageTitle": "プライバシー ポリシー", "policyPageTitle": "プライバシー ポリシー",
@ -341,11 +336,6 @@
"collectionSearchTitlesHintText": "タイトルを検索", "collectionSearchTitlesHintText": "タイトルを検索",
"collectionSortDate": "日付",
"collectionSortSize": "サイズ",
"collectionSortName": "アルバムとファイル名",
"collectionSortRating": "評価",
"collectionGroupAlbum": "アルバム別", "collectionGroupAlbum": "アルバム別",
"collectionGroupMonth": "月別", "collectionGroupMonth": "月別",
"collectionGroupDay": "日別", "collectionGroupDay": "日別",
@ -374,6 +364,8 @@
"collectionSelectSectionTooltip": "セクションを選択", "collectionSelectSectionTooltip": "セクションを選択",
"collectionDeselectSectionTooltip": "セクションの選択を解除", "collectionDeselectSectionTooltip": "セクションの選択を解除",
"drawerAboutButton": "アプリについて",
"drawerSettingsButton": "設定",
"drawerCollectionAll": "すべてのコレクション", "drawerCollectionAll": "すべてのコレクション",
"drawerCollectionFavourites": "お気に入り", "drawerCollectionFavourites": "お気に入り",
"drawerCollectionImages": "画像", "drawerCollectionImages": "画像",
@ -383,10 +375,16 @@
"drawerCollectionPanoramas": "パノラマ", "drawerCollectionPanoramas": "パノラマ",
"drawerCollectionRaws": "Raw 写真", "drawerCollectionRaws": "Raw 写真",
"drawerCollectionSphericalVideos": "360° 動画", "drawerCollectionSphericalVideos": "360° 動画",
"drawerAlbumPage": "アルバム",
"drawerCountryPage": "国",
"drawerTagPage": "タグ",
"chipSortDate": "日付", "sortByDate": "日付",
"chipSortName": "名前", "sortByName": "名前",
"chipSortCount": "アイテム件数", "sortByItemCount": "アイテム件数",
"sortBySize": "サイズ",
"sortByAlbumFileName": "アルバムとファイル名",
"sortByRating": "評価",
"albumGroupTier": "階層別", "albumGroupTier": "階層別",
"albumGroupVolume": "ストレージ ボリューム別", "albumGroupVolume": "ストレージ ボリューム別",
@ -418,13 +416,13 @@
"binPageTitle": "ごみ箱", "binPageTitle": "ごみ箱",
"searchCollectionFieldHint": "コレクションを検索", "searchCollectionFieldHint": "コレクションを検索",
"searchSectionRecent": "最近", "searchRecentSectionTitle": "最近",
"searchSectionDate": "日付", "searchDateSectionTitle": "日付",
"searchSectionAlbums": "アルバム", "searchAlbumsSectionTitle": "アルバム",
"searchSectionCountries": "国", "searchCountriesSectionTitle": "国",
"searchSectionPlaces": "場所", "searchPlacesSectionTitle": "場所",
"searchSectionTags": "タグ", "searchTagsSectionTitle": "タグ",
"searchSectionRating": "評価", "searchRatingSectionTitle": "評価",
"settingsPageTitle": "設定", "settingsPageTitle": "設定",
"settingsSystemDefault": "システム", "settingsSystemDefault": "システム",
@ -433,36 +431,39 @@
"settingsSearchFieldLabel": "検索設定", "settingsSearchFieldLabel": "検索設定",
"settingsSearchEmpty": "一致する設定なし", "settingsSearchEmpty": "一致する設定なし",
"settingsActionExport": "エクスポート", "settingsActionExport": "エクスポート",
"settingsActionExportDialogTitle": "エクスポート",
"settingsActionImport": "インポート", "settingsActionImport": "インポート",
"settingsActionImportDialogTitle": "インポート",
"appExportCovers": "カバー", "appExportCovers": "カバー",
"appExportFavourites": "お気に入り", "appExportFavourites": "お気に入り",
"appExportSettings": "設定", "appExportSettings": "設定",
"settingsSectionNavigation": "ナビゲーション", "settingsNavigationSectionTitle": "ナビゲーション",
"settingsHome": "ホーム", "settingsHomeTile": "ホーム",
"settingsHomeDialogTitle": "ホーム",
"settingsShowBottomNavigationBar": "下部のナビゲーションバーを表示", "settingsShowBottomNavigationBar": "下部のナビゲーションバーを表示",
"settingsKeepScreenOnTile": "画面をオンのままにする", "settingsKeepScreenOnTile": "画面をオンのままにする",
"settingsKeepScreenOnTitle": "画面をオンのままにする", "settingsKeepScreenOnDialogTitle": "画面をオンのままにする",
"settingsDoubleBackExit": "「戻る」を2回タップして終了", "settingsDoubleBackExit": "「戻る」を2回タップして終了",
"settingsConfirmationDialogTile": "確認メッセージ", "settingsConfirmationTile": "確認メッセージ",
"settingsConfirmationDialogTitle": "確認メッセージ", "settingsConfirmationDialogTitle": "確認メッセージ",
"settingsConfirmationDialogDeleteItems": "アイテムを完全に削除する前に確認", "settingsConfirmationBeforeDeleteItems": "アイテムを完全に削除する前に確認",
"settingsConfirmationDialogMoveToBinItems": "アイテムをごみ箱に移動する前に確認", "settingsConfirmationBeforeMoveToBinItems": "アイテムをごみ箱に移動する前に確認",
"settingsConfirmationDialogMoveUndatedItems": "メタデータ上に日付のないアイテムを移動する前に確認", "settingsConfirmationBeforeMoveUndatedItems": "メタデータ上に日付のないアイテムを移動する前に確認",
"settingsNavigationDrawerTile": "ナビゲーション メニュー", "settingsNavigationDrawerTile": "ナビゲーション メニュー",
"settingsNavigationDrawerEditorTitle": "ナビゲーション メニュー", "settingsNavigationDrawerEditorPageTitle": "ナビゲーション メニュー",
"settingsNavigationDrawerBanner": "メニュー項目を長押しして、移動および並べ替え", "settingsNavigationDrawerBanner": "メニュー項目を長押しして、移動および並べ替え",
"settingsNavigationDrawerTabTypes": "タイプ", "settingsNavigationDrawerTabTypes": "タイプ",
"settingsNavigationDrawerTabAlbums": "アルバム", "settingsNavigationDrawerTabAlbums": "アルバム",
"settingsNavigationDrawerTabPages": "ページ", "settingsNavigationDrawerTabPages": "ページ",
"settingsNavigationDrawerAddAlbum": "アルバムを追加", "settingsNavigationDrawerAddAlbum": "アルバムを追加",
"settingsSectionThumbnails": "サムネイル", "settingsThumbnailSectionTitle": "サムネイル",
"settingsThumbnailOverlayTile": "オーバーレイ", "settingsThumbnailOverlayTile": "オーバーレイ",
"settingsThumbnailOverlayTitle": "オーバーレイ", "settingsThumbnailOverlayPageTitle": "オーバーレイ",
"settingsThumbnailShowFavouriteIcon": "お気に入りアイコンを表示", "settingsThumbnailShowFavouriteIcon": "お気に入りアイコンを表示",
"settingsThumbnailShowTagIcon": "タグアイコンを表示", "settingsThumbnailShowTagIcon": "タグアイコンを表示",
"settingsThumbnailShowLocationIcon": "位置情報アイコンを表示", "settingsThumbnailShowLocationIcon": "位置情報アイコンを表示",
@ -472,27 +473,27 @@
"settingsThumbnailShowVideoDuration": "動画の再生時間を表示", "settingsThumbnailShowVideoDuration": "動画の再生時間を表示",
"settingsCollectionQuickActionsTile": "クイック アクション", "settingsCollectionQuickActionsTile": "クイック アクション",
"settingsCollectionQuickActionEditorTitle": "クイック アクション", "settingsCollectionQuickActionEditorPageTitle": "クイック アクション",
"settingsCollectionQuickActionTabBrowsing": "ブラウズ中", "settingsCollectionQuickActionTabBrowsing": "ブラウズ中",
"settingsCollectionQuickActionTabSelecting": "選択中", "settingsCollectionQuickActionTabSelecting": "選択中",
"settingsCollectionBrowsingQuickActionEditorBanner": "長押ししてボタンを移動しアイテムを閲覧中に表示されるアクションを選択します。", "settingsCollectionBrowsingQuickActionEditorBanner": "長押ししてボタンを移動しアイテムを閲覧中に表示されるアクションを選択します。",
"settingsCollectionSelectionQuickActionEditorBanner": "長押ししてボタンを移動しアイテムを選択中に表示されるアクションを選択します。", "settingsCollectionSelectionQuickActionEditorBanner": "長押ししてボタンを移動しアイテムを選択中に表示されるアクションを選択します。",
"settingsSectionViewer": "ビューアー", "settingsViewerSectionTitle": "ビューアー",
"settingsViewerUseCutout": "切り取り領域を使用", "settingsViewerUseCutout": "切り取り領域を使用",
"settingsViewerMaximumBrightness": "明るさ最大", "settingsViewerMaximumBrightness": "明るさ最大",
"settingsMotionPhotoAutoPlay": "モーションフォトを自動再生", "settingsMotionPhotoAutoPlay": "モーションフォトを自動再生",
"settingsImageBackground": "画像の背景", "settingsImageBackground": "画像の背景",
"settingsViewerQuickActionsTile": "クイックアクション", "settingsViewerQuickActionsTile": "クイックアクション",
"settingsViewerQuickActionEditorTitle": "クイックアクション", "settingsViewerQuickActionEditorPageTitle": "クイックアクション",
"settingsViewerQuickActionEditorBanner": "長押ししてボタンを移動しビューアーで表示されるアクションを選択します。", "settingsViewerQuickActionEditorBanner": "長押ししてボタンを移動しビューアーで表示されるアクションを選択します。",
"settingsViewerQuickActionEditorDisplayedButtons": "表示ボタン", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "表示ボタン",
"settingsViewerQuickActionEditorAvailableButtons": "利用可能なボタン", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "利用可能なボタン",
"settingsViewerQuickActionEmpty": "ボタンなし", "settingsViewerQuickActionEmpty": "ボタンなし",
"settingsViewerOverlayTile": "オーバーレイ", "settingsViewerOverlayTile": "オーバーレイ",
"settingsViewerOverlayTitle": "オーバーレイ", "settingsViewerOverlayPageTitle": "オーバーレイ",
"settingsViewerShowOverlayOnOpening": "起動時に表示", "settingsViewerShowOverlayOnOpening": "起動時に表示",
"settingsViewerShowMinimap": "小さな地図を表示", "settingsViewerShowMinimap": "小さな地図を表示",
"settingsViewerShowInformation": "情報を表示", "settingsViewerShowInformation": "情報を表示",
@ -502,30 +503,30 @@
"settingsViewerEnableOverlayBlurEffect": "ぼかし効果", "settingsViewerEnableOverlayBlurEffect": "ぼかし効果",
"settingsViewerSlideshowTile": "スライドショー", "settingsViewerSlideshowTile": "スライドショー",
"settingsViewerSlideshowTitle": "スライドショー", "settingsViewerSlideshowPageTitle": "スライドショー",
"settingsSlideshowRepeat": "繰り返し", "settingsSlideshowRepeat": "繰り返し",
"settingsSlideshowShuffle": "シャッフル", "settingsSlideshowShuffle": "シャッフル",
"settingsSlideshowFillScreen": "画面いっぱいに表示", "settingsSlideshowFillScreen": "画面いっぱいに表示",
"settingsSlideshowTransitionTile": "トランジション", "settingsSlideshowTransitionTile": "トランジション",
"settingsSlideshowTransitionTitle": "トランジション", "settingsSlideshowTransitionDialogTitle": "トランジション",
"settingsSlideshowIntervalTile": "間隔", "settingsSlideshowIntervalTile": "間隔",
"settingsSlideshowIntervalTitle": "間隔", "settingsSlideshowIntervalDialogTitle": "間隔",
"settingsSlideshowVideoPlaybackTile": "動画を再生", "settingsSlideshowVideoPlaybackTile": "動画を再生",
"settingsSlideshowVideoPlaybackTitle": "動画再生", "settingsSlideshowVideoPlaybackDialogTitle": "動画再生",
"settingsVideoPageTitle": "動画設定", "settingsVideoPageTitle": "動画設定",
"settingsSectionVideo": "動画", "settingsVideoSectionTitle": "動画",
"settingsVideoShowVideos": "動画を表示", "settingsVideoShowVideos": "動画を表示",
"settingsVideoEnableHardwareAcceleration": "ハードウェア アクセラレーション", "settingsVideoEnableHardwareAcceleration": "ハードウェア アクセラレーション",
"settingsVideoEnableAutoPlay": "自動再生", "settingsVideoEnableAutoPlay": "自動再生",
"settingsVideoLoopModeTile": "ループ モード", "settingsVideoLoopModeTile": "ループ モード",
"settingsVideoLoopModeTitle": "ループ モード", "settingsVideoLoopModeDialogTitle": "ループ モード",
"settingsSubtitleThemeTile": "字幕", "settingsSubtitleThemeTile": "字幕",
"settingsSubtitleThemeTitle": "字幕", "settingsSubtitleThemePageTitle": "字幕",
"settingsSubtitleThemeSample": "これはサンプルです。", "settingsSubtitleThemeSample": "これはサンプルです。",
"settingsSubtitleThemeTextAlignmentTile": "テキストの配置", "settingsSubtitleThemeTextAlignmentTile": "テキストの配置",
"settingsSubtitleThemeTextAlignmentTitle": "テキストの配置", "settingsSubtitleThemeTextAlignmentDialogTitle": "テキストの配置",
"settingsSubtitleThemeTextSize": "テキストのサイズ", "settingsSubtitleThemeTextSize": "テキストのサイズ",
"settingsSubtitleThemeShowOutline": "アウトラインと影を表示", "settingsSubtitleThemeShowOutline": "アウトラインと影を表示",
"settingsSubtitleThemeTextColor": "テキストの色", "settingsSubtitleThemeTextColor": "テキストの色",
@ -537,13 +538,13 @@
"settingsSubtitleThemeTextAlignmentRight": "右揃え", "settingsSubtitleThemeTextAlignmentRight": "右揃え",
"settingsVideoControlsTile": "操作", "settingsVideoControlsTile": "操作",
"settingsVideoControlsTitle": "操作", "settingsVideoControlsPageTitle": "操作",
"settingsVideoButtonsTile": "ボタン", "settingsVideoButtonsTile": "ボタン",
"settingsVideoButtonsTitle": "ボタン", "settingsVideoButtonsDialogTitle": "ボタン",
"settingsVideoGestureDoubleTapTogglePlay": "2回タップして再生/一時停止", "settingsVideoGestureDoubleTapTogglePlay": "2回タップして再生/一時停止",
"settingsVideoGestureSideDoubleTapSeek": "画面の角を2回タップして早送り/早戻し", "settingsVideoGestureSideDoubleTapSeek": "画面の角を2回タップして早送り/早戻し",
"settingsSectionPrivacy": "プライバシー", "settingsPrivacySectionTitle": "プライバシー",
"settingsAllowInstalledAppAccess": "アプリのインベントリへのアクセスを許可する", "settingsAllowInstalledAppAccess": "アプリのインベントリへのアクセスを許可する",
"settingsAllowInstalledAppAccessSubtitle": "アルバム表示の改善に使用されます", "settingsAllowInstalledAppAccessSubtitle": "アルバム表示の改善に使用されます",
"settingsAllowErrorReporting": "匿名でのエラー報告を許可する", "settingsAllowErrorReporting": "匿名でのエラー報告を許可する",
@ -552,52 +553,56 @@
"settingsEnableBinSubtitle": "削除したアイテムを30日間保持します", "settingsEnableBinSubtitle": "削除したアイテムを30日間保持します",
"settingsHiddenItemsTile": "非表示アイテム", "settingsHiddenItemsTile": "非表示アイテム",
"settingsHiddenItemsTitle": "非表示アイテム", "settingsHiddenItemsPageTitle": "非表示アイテム",
"settingsHiddenFiltersTitle": "非表示フィルター", "settingsHiddenItemsTabFilters": "非表示フィルター",
"settingsHiddenFiltersBanner": "非表示のフィルターに一致する写真と動画は、コレクションに表示されません。", "settingsHiddenFiltersBanner": "非表示のフィルターに一致する写真と動画は、コレクションに表示されません。",
"settingsHiddenFiltersEmpty": "非表示フィルターがありません", "settingsHiddenFiltersEmpty": "非表示フィルターがありません",
"settingsHiddenPathsTitle": "非表示パス", "settingsHiddenItemsTabPaths": "非表示パス",
"settingsHiddenPathsBanner": "これらのフォルダまたはそのサブフォルダにある写真と動画は、コレクションに表示されません。", "settingsHiddenPathsBanner": "これらのフォルダまたはそのサブフォルダにある写真と動画は、コレクションに表示されません。",
"addPathTooltip": "パスを追加", "addPathTooltip": "パスを追加",
"settingsStorageAccessTile": "ストレージへのアクセス", "settingsStorageAccessTile": "ストレージへのアクセス",
"settingsStorageAccessTitle": "ストレージへのアクセス", "settingsStorageAccessPageTitle": "ストレージへのアクセス",
"settingsStorageAccessBanner": "ディレクトリによっては、ファイルの編集のためにアクセス許可が必要です。ここには、これまでにアクセスを許可したディレクトリが表示されます。", "settingsStorageAccessBanner": "ディレクトリによっては、ファイルの編集のためにアクセス許可が必要です。ここには、これまでにアクセスを許可したディレクトリが表示されます。",
"settingsStorageAccessEmpty": "許可したアクセスはありません", "settingsStorageAccessEmpty": "許可したアクセスはありません",
"settingsStorageAccessRevokeTooltip": "許可を取り消し", "settingsStorageAccessRevokeTooltip": "許可を取り消し",
"settingsSectionAccessibility": "アクセシビリティ", "settingsAccessibilitySectionTitle": "アクセシビリティ",
"settingsRemoveAnimationsTile": "アニメーションの削除", "settingsRemoveAnimationsTile": "アニメーションの削除",
"settingsRemoveAnimationsTitle": "アニメーションの削除", "settingsRemoveAnimationsDialogTitle": "アニメーションの削除",
"settingsTimeToTakeActionTile": "操作までの時間", "settingsTimeToTakeActionTile": "操作までの時間",
"settingsTimeToTakeActionTitle": "操作までの時間", "settingsTimeToTakeActionDialogTitle": "操作までの時間",
"settingsSectionDisplay": "ディスプレイ", "settingsDisplaySectionTitle": "ディスプレイ",
"settingsThemeBrightness": "テーマ", "settingsThemeBrightnessTile": "テーマ",
"settingsThemeBrightnessDialogTitle": "テーマ",
"settingsThemeColorHighlights": "カラー強調表示", "settingsThemeColorHighlights": "カラー強調表示",
"settingsThemeEnableDynamicColor": "ダイナミックカラー", "settingsThemeEnableDynamicColor": "ダイナミックカラー",
"settingsDisplayRefreshRateModeTile": "ディスプレイ リフレッシュ レート", "settingsDisplayRefreshRateModeTile": "ディスプレイ リフレッシュ レート",
"settingsDisplayRefreshRateModeTitle": "リフレッシュ レート", "settingsDisplayRefreshRateModeDialogTitle": "リフレッシュ レート",
"settingsSectionLanguage": "言語と形式", "settingsLanguageSectionTitle": "言語と形式",
"settingsLanguage": "言語", "settingsLanguageTile": "言語",
"settingsLanguagePageTitle": "言語",
"settingsCoordinateFormatTile": "座標形式", "settingsCoordinateFormatTile": "座標形式",
"settingsCoordinateFormatTitle": "座標形式", "settingsCoordinateFormatDialogTitle": "座標形式",
"settingsUnitSystemTile": "単位", "settingsUnitSystemTile": "単位",
"settingsUnitSystemTitle": "単位", "settingsUnitSystemDialogTitle": "単位",
"settingsScreenSaverPageTitle": "スクリーンセーバー", "settingsScreenSaverPageTitle": "スクリーンセーバー",
"settingsWidgetPageTitle": "フォトフレーム", "settingsWidgetPageTitle": "フォトフレーム",
"settingsWidgetShowOutline": "枠", "settingsWidgetShowOutline": "枠",
"settingsCollectionTile": "コレクション",
"statsPageTitle": "統計", "statsPageTitle": "統計",
"statsWithGps": "{count, plural, other{位置情報のあるアイテム {count} 件}}", "statsWithGps": "{count, plural, other{位置情報のあるアイテム {count} 件}}",
"statsTopCountries": "上位の国", "statsTopCountriesSectionTitle": "上位の国",
"statsTopPlaces": "上位の場所", "statsTopPlacesSectionTitle": "上位の場所",
"statsTopTags": "上位のタグ", "statsTopTagsSectionTitle": "上位のタグ",
"viewerOpenPanoramaButtonLabel": "パノラマを開く", "viewerOpenPanoramaButtonLabel": "パノラマを開く",
"viewerSetWallpaperButtonLabel": "壁紙設定", "viewerSetWallpaperButtonLabel": "壁紙設定",
@ -619,7 +624,7 @@
"viewerInfoLabelCoordinates": "座標", "viewerInfoLabelCoordinates": "座標",
"viewerInfoLabelAddress": "アドレス", "viewerInfoLabelAddress": "アドレス",
"mapStyleTitle": "地図のスタイル", "mapStyleDialogTitle": "地図のスタイル",
"mapStyleTooltip": "地図のスタイルを選択", "mapStyleTooltip": "地図のスタイルを選択",
"mapZoomInTooltip": "ズームイン", "mapZoomInTooltip": "ズームイン",
"mapZoomOutTooltip": "ズームアウト", "mapZoomOutTooltip": "ズームアウト",

View file

@ -27,6 +27,7 @@
"actionRemove": "제거", "actionRemove": "제거",
"resetTooltip": "복원", "resetTooltip": "복원",
"saveTooltip": "저장", "saveTooltip": "저장",
"pickTooltip": "선택",
"doubleBackExitMessage": "종료하려면 한번 더 누르세요.", "doubleBackExitMessage": "종료하려면 한번 더 누르세요.",
"doNotAskAgain": "다시 묻지 않기", "doNotAskAgain": "다시 묻지 않기",
@ -87,18 +88,20 @@
"entryInfoActionEditDate": "날짜 및 시간 수정", "entryInfoActionEditDate": "날짜 및 시간 수정",
"entryInfoActionEditLocation": "위치 수정", "entryInfoActionEditLocation": "위치 수정",
"entryInfoActionEditDescription": "설명 수정", "entryInfoActionEditTitleDescription": "제목 및 설명 수정",
"entryInfoActionEditRating": "별점 수정", "entryInfoActionEditRating": "별점 수정",
"entryInfoActionEditTags": "태그 수정", "entryInfoActionEditTags": "태그 수정",
"entryInfoActionRemoveMetadata": "메타데이터 삭제", "entryInfoActionRemoveMetadata": "메타데이터 삭제",
"filterBinLabel": "휴지통", "filterBinLabel": "휴지통",
"filterFavouriteLabel": "즐겨찾기", "filterFavouriteLabel": "즐겨찾기",
"filterLocationEmptyLabel": "장소 없음", "filterNoDateLabel": "날짜 없음",
"filterTagEmptyLabel": "태그 없음", "filterNoLocationLabel": "장소 없음",
"filterNoRatingLabel": "별점 없음",
"filterNoTagLabel": "태그 없음",
"filterNoTitleLabel": "제목 없음",
"filterOnThisDayLabel": "이 날", "filterOnThisDayLabel": "이 날",
"filterRecentlyAddedLabel": "최근 추가된", "filterRecentlyAddedLabel": "최근 추가된",
"filterRatingUnratedLabel": "별점 없음",
"filterRatingRejectedLabel": "거부됨", "filterRatingRejectedLabel": "거부됨",
"filterTypeAnimatedLabel": "애니메이션", "filterTypeAnimatedLabel": "애니메이션",
"filterTypeMotionPhotoLabel": "모션 사진", "filterTypeMotionPhotoLabel": "모션 사진",
@ -179,16 +182,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "SD 카드", "storageVolumeDescriptionFallbackNonPrimary": "SD 카드",
"rootDirectoryDescription": "루트 폴더", "rootDirectoryDescription": "루트 폴더",
"otherDirectoryDescription": "“{name}” 폴더", "otherDirectoryDescription": "“{name}” 폴더",
"storageAccessDialogTitle": "저장공간 접근",
"storageAccessDialogMessage": "파일에 접근하도록 다음 화면에서 “{volume}”의 {directory}를 선택하세요.", "storageAccessDialogMessage": "파일에 접근하도록 다음 화면에서 “{volume}”의 {directory}를 선택하세요.",
"restrictedAccessDialogTitle": "접근 제한",
"restrictedAccessDialogMessage": "“{volume}”의 {directory}에 있는 파일의 접근이 제한됩니다.\n\n기본으로 설치된 갤러리나 파일 관리 앱을 사용해서 다른 폴더로 파일을 이동하세요.", "restrictedAccessDialogMessage": "“{volume}”의 {directory}에 있는 파일의 접근이 제한됩니다.\n\n기본으로 설치된 갤러리나 파일 관리 앱을 사용해서 다른 폴더로 파일을 이동하세요.",
"notEnoughSpaceDialogTitle": "저장공간 부족",
"notEnoughSpaceDialogMessage": "“{volume}”에 필요 공간은 {neededSize}인데 사용 가능한 용량은 {freeSize}만 남아있습니다.", "notEnoughSpaceDialogMessage": "“{volume}”에 필요 공간은 {neededSize}인데 사용 가능한 용량은 {freeSize}만 남아있습니다.",
"missingSystemFilePickerDialogTitle": "기본 파일 선택기 없음",
"missingSystemFilePickerDialogMessage": "기본 파일 선택기가 없거나 비활성화딥니다. 파일 선택기를 켜고 다시 시도하세요.", "missingSystemFilePickerDialogMessage": "기본 파일 선택기가 없거나 비활성화딥니다. 파일 선택기를 켜고 다시 시도하세요.",
"unsupportedTypeDialogTitle": "미지원 형식",
"unsupportedTypeDialogMessage": "{count, plural, other{이 작업은 다음 항목의 형식을 지원하지 않습니다: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, other{이 작업은 다음 항목의 형식을 지원하지 않습니다: {types}.}}",
"nameConflictDialogSingleSourceMessage": "이동할 폴더에 이름이 같은 파일이 있습니다.", "nameConflictDialogSingleSourceMessage": "이동할 폴더에 이름이 같은 파일이 있습니다.",
@ -197,7 +195,6 @@
"addShortcutDialogLabel": "바로가기 라벨", "addShortcutDialogLabel": "바로가기 라벨",
"addShortcutButtonLabel": "추가", "addShortcutButtonLabel": "추가",
"noMatchingAppDialogTitle": "처리할 앱 없음",
"noMatchingAppDialogMessage": "이 작업을 처리할 수 있는 앱이 없습니다.", "noMatchingAppDialogMessage": "이 작업을 처리할 수 있는 앱이 없습니다.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{이 항목을 휴지통으로 이동하시겠습니까?} other{항목 {count}개를 휴지통으로 이동하시겠습니까?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{이 항목을 휴지통으로 이동하시겠습니까?} other{항목 {count}개를 휴지통으로 이동하시겠습니까?}}",
@ -226,7 +223,7 @@
"renameEntrySetPageTitle": "이름 변경", "renameEntrySetPageTitle": "이름 변경",
"renameEntrySetPagePatternFieldLabel": "이름 양식", "renameEntrySetPagePatternFieldLabel": "이름 양식",
"renameEntrySetPageInsertTooltip": "필드 추가", "renameEntrySetPageInsertTooltip": "필드 추가",
"renameEntrySetPagePreview": "미리보기", "renameEntrySetPagePreviewSectionTitle": "미리보기",
"renameProcessorCounter": "숫자 증가", "renameProcessorCounter": "숫자 증가",
"renameProcessorName": "이름", "renameProcessorName": "이름",
@ -259,8 +256,6 @@
"locationPickerUseThisLocationButton": "이 위치 사용", "locationPickerUseThisLocationButton": "이 위치 사용",
"editEntryDescriptionDialogTitle": "설명",
"editEntryRatingDialogTitle": "별점", "editEntryRatingDialogTitle": "별점",
"removeEntryMetadataDialogTitle": "메타데이터 삭제", "removeEntryMetadataDialogTitle": "메타데이터 삭제",
@ -289,9 +284,10 @@
"menuActionSlideshow": "슬라이드쇼", "menuActionSlideshow": "슬라이드쇼",
"menuActionStats": "통계", "menuActionStats": "통계",
"viewDialogTabSort": "정렬", "viewDialogSortSectionTitle": "정렬",
"viewDialogTabGroup": "묶음", "viewDialogGroupSectionTitle": "묶음",
"viewDialogTabLayout": "배치", "viewDialogLayoutSectionTitle": "배치",
"viewDialogReverseSortOrder": "순서를 뒤바꾸기",
"tileLayoutGrid": "바둑판", "tileLayoutGrid": "바둑판",
"tileLayoutList": "목록", "tileLayoutList": "목록",
@ -308,24 +304,24 @@
"aboutLinkLicense": "라이선스", "aboutLinkLicense": "라이선스",
"aboutLinkPolicy": "개인정보 보호정책", "aboutLinkPolicy": "개인정보 보호정책",
"aboutBug": "버그 보고", "aboutBugSectionTitle": "버그 보고",
"aboutBugSaveLogInstruction": "앱 로그를 파일에 저장하기", "aboutBugSaveLogInstruction": "앱 로그를 파일에 저장하기",
"aboutBugCopyInfoInstruction": "시스템 정보를 복사하기", "aboutBugCopyInfoInstruction": "시스템 정보를 복사하기",
"aboutBugCopyInfoButton": "복사", "aboutBugCopyInfoButton": "복사",
"aboutBugReportInstruction": "로그와 시스템 정보를 첨부하여 깃허브에서 이슈를 제출하기", "aboutBugReportInstruction": "로그와 시스템 정보를 첨부하여 깃허브에서 이슈를 제출하기",
"aboutBugReportButton": "제출", "aboutBugReportButton": "제출",
"aboutCredits": "크레딧", "aboutCreditsSectionTitle": "크레딧",
"aboutCreditsWorldAtlas1": "이 앱은", "aboutCreditsWorldAtlas1": "이 앱은",
"aboutCreditsWorldAtlas2": "의 TopoJSON 파일(ISC 라이선스)을 이용합니다.", "aboutCreditsWorldAtlas2": "의 TopoJSON 파일(ISC 라이선스)을 이용합니다.",
"aboutCreditsTranslators": "번역가", "aboutTranslatorsSectionTitle": "번역가",
"aboutLicenses": "오픈 소스 라이선스", "aboutLicensesSectionTitle": "오픈 소스 라이선스",
"aboutLicensesBanner": "이 앱은 다음의 오픈 소스 패키지와 라이브러리를 이용합니다.", "aboutLicensesBanner": "이 앱은 다음의 오픈 소스 패키지와 라이브러리를 이용합니다.",
"aboutLicensesAndroidLibraries": "안드로이드 라이브러리", "aboutLicensesAndroidLibrariesSectionTitle": "안드로이드 라이브러리",
"aboutLicensesFlutterPlugins": "플러터 플러그인", "aboutLicensesFlutterPluginsSectionTitle": "플러터 플러그인",
"aboutLicensesFlutterPackages": "플러터 패키지", "aboutLicensesFlutterPackagesSectionTitle": "플러터 패키지",
"aboutLicensesDartPackages": "다트 패키지", "aboutLicensesDartPackagesSectionTitle": "다트 패키지",
"aboutLicensesShowAllButtonLabel": "라이선스 모두 보기", "aboutLicensesShowAllButtonLabel": "라이선스 모두 보기",
"policyPageTitle": "개인정보 보호정책", "policyPageTitle": "개인정보 보호정책",
@ -345,11 +341,6 @@
"collectionSearchTitlesHintText": "제목 검색", "collectionSearchTitlesHintText": "제목 검색",
"collectionSortDate": "날짜",
"collectionSortSize": "크기",
"collectionSortName": "이름",
"collectionSortRating": "별점",
"collectionGroupAlbum": "앨범별로", "collectionGroupAlbum": "앨범별로",
"collectionGroupMonth": "월별로", "collectionGroupMonth": "월별로",
"collectionGroupDay": "날짜별로", "collectionGroupDay": "날짜별로",
@ -378,6 +369,8 @@
"collectionSelectSectionTooltip": "묶음 선택", "collectionSelectSectionTooltip": "묶음 선택",
"collectionDeselectSectionTooltip": "묶음 선택 해제", "collectionDeselectSectionTooltip": "묶음 선택 해제",
"drawerAboutButton": "앱 정보",
"drawerSettingsButton": "설정",
"drawerCollectionAll": "모든 미디어", "drawerCollectionAll": "모든 미디어",
"drawerCollectionFavourites": "즐겨찾기", "drawerCollectionFavourites": "즐겨찾기",
"drawerCollectionImages": "사진", "drawerCollectionImages": "사진",
@ -387,10 +380,25 @@
"drawerCollectionPanoramas": "파노라마", "drawerCollectionPanoramas": "파노라마",
"drawerCollectionRaws": "Raw 이미지", "drawerCollectionRaws": "Raw 이미지",
"drawerCollectionSphericalVideos": "360° 동영상", "drawerCollectionSphericalVideos": "360° 동영상",
"drawerAlbumPage": "앨범",
"drawerCountryPage": "국가",
"drawerTagPage": "태그",
"chipSortDate": "날짜", "sortByDate": "날짜",
"chipSortName": "이름", "sortByName": "이름",
"chipSortCount": "항목수", "sortByItemCount": "항목수",
"sortBySize": "크기",
"sortByAlbumFileName": "이름",
"sortByRating": "별점",
"sortOrderNewestFirst": "최근 날짜순",
"sortOrderOldestFirst": "오래된 날짜순",
"sortOrderAtoZ": "A~Z",
"sortOrderZtoA": "Z~A",
"sortOrderHighestFirst": "높은 별점순",
"sortOrderLowestFirst": "낮은 별점순",
"sortOrderLargestFirst": "큰 파일순",
"sortOrderSmallestFirst": "작은 파일순",
"albumGroupTier": "단계별로", "albumGroupTier": "단계별로",
"albumGroupVolume": "저장공간별로", "albumGroupVolume": "저장공간별로",
@ -422,13 +430,14 @@
"binPageTitle": "휴지통", "binPageTitle": "휴지통",
"searchCollectionFieldHint": "미디어 검색", "searchCollectionFieldHint": "미디어 검색",
"searchSectionRecent": "최근 검색기록", "searchRecentSectionTitle": "최근 검색기록",
"searchSectionDate": "날짜", "searchDateSectionTitle": "날짜",
"searchSectionAlbums": "앨범", "searchAlbumsSectionTitle": "앨범",
"searchSectionCountries": "국가", "searchCountriesSectionTitle": "국가",
"searchSectionPlaces": "장소", "searchPlacesSectionTitle": "장소",
"searchSectionTags": "태그", "searchTagsSectionTitle": "태그",
"searchSectionRating": "별점", "searchRatingSectionTitle": "별점",
"searchMetadataSectionTitle": "메타데이터",
"settingsPageTitle": "설정", "settingsPageTitle": "설정",
"settingsSystemDefault": "시스템", "settingsSystemDefault": "시스템",
@ -437,37 +446,40 @@
"settingsSearchFieldLabel": "설정 검색", "settingsSearchFieldLabel": "설정 검색",
"settingsSearchEmpty": "결과가 없습니다", "settingsSearchEmpty": "결과가 없습니다",
"settingsActionExport": "내보내기", "settingsActionExport": "내보내기",
"settingsActionExportDialogTitle": "내보내기",
"settingsActionImport": "가져오기", "settingsActionImport": "가져오기",
"settingsActionImportDialogTitle": "가져오기",
"appExportCovers": "대표 이미지", "appExportCovers": "대표 이미지",
"appExportFavourites": "즐겨찾기", "appExportFavourites": "즐겨찾기",
"appExportSettings": "설정", "appExportSettings": "설정",
"settingsSectionNavigation": "탐색", "settingsNavigationSectionTitle": "탐색",
"settingsHome": "홈", "settingsHomeTile": "홈",
"settingsHomeDialogTitle": "홈",
"settingsShowBottomNavigationBar": "하단 탐색 모음 표시", "settingsShowBottomNavigationBar": "하단 탐색 모음 표시",
"settingsKeepScreenOnTile": "화면 자동 꺼짐 방지", "settingsKeepScreenOnTile": "화면 자동 꺼짐 방지",
"settingsKeepScreenOnTitle": "화면 자동 꺼짐 방지", "settingsKeepScreenOnDialogTitle": "화면 자동 꺼짐 방지",
"settingsDoubleBackExit": "뒤로가기 두번 눌러 앱 종료하기", "settingsDoubleBackExit": "뒤로가기 두번 눌러 앱 종료하기",
"settingsConfirmationDialogTile": "확정 대화상자", "settingsConfirmationTile": "확정 대화상자",
"settingsConfirmationDialogTitle": "확정 대화상자", "settingsConfirmationDialogTitle": "확정 대화상자",
"settingsConfirmationDialogDeleteItems": "항목을 완전히 삭제 시", "settingsConfirmationBeforeDeleteItems": "항목을 완전히 삭제 시",
"settingsConfirmationDialogMoveToBinItems": "항목을 휴지통으로 이동 시", "settingsConfirmationBeforeMoveToBinItems": "항목을 휴지통으로 이동 시",
"settingsConfirmationDialogMoveUndatedItems": "날짜가 지정되지 않은 항목을 이동 시", "settingsConfirmationBeforeMoveUndatedItems": "날짜가 지정되지 않은 항목을 이동 시",
"settingsConfirmationAfterMoveToBinItems": "항목을 휴지통으로 이동 후", "settingsConfirmationAfterMoveToBinItems": "항목을 휴지통으로 이동 후",
"settingsNavigationDrawerTile": "탐색 메뉴", "settingsNavigationDrawerTile": "탐색 메뉴",
"settingsNavigationDrawerEditorTitle": "탐색 메뉴", "settingsNavigationDrawerEditorPageTitle": "탐색 메뉴",
"settingsNavigationDrawerBanner": "항목을 길게 누른 후 이동하여 탐색 메뉴에 표시될 항목의 순서를 수정하세요.", "settingsNavigationDrawerBanner": "항목을 길게 누른 후 이동하여 탐색 메뉴에 표시될 항목의 순서를 수정하세요.",
"settingsNavigationDrawerTabTypes": "유형", "settingsNavigationDrawerTabTypes": "유형",
"settingsNavigationDrawerTabAlbums": "앨범", "settingsNavigationDrawerTabAlbums": "앨범",
"settingsNavigationDrawerTabPages": "페이지", "settingsNavigationDrawerTabPages": "페이지",
"settingsNavigationDrawerAddAlbum": "앨범 추가", "settingsNavigationDrawerAddAlbum": "앨범 추가",
"settingsSectionThumbnails": "섬네일", "settingsThumbnailSectionTitle": "섬네일",
"settingsThumbnailOverlayTile": "오버레이", "settingsThumbnailOverlayTile": "오버레이",
"settingsThumbnailOverlayTitle": "오버레이", "settingsThumbnailOverlayPageTitle": "오버레이",
"settingsThumbnailShowFavouriteIcon": "즐겨찾기 아이콘 표시", "settingsThumbnailShowFavouriteIcon": "즐겨찾기 아이콘 표시",
"settingsThumbnailShowTagIcon": "태그 아이콘 표시", "settingsThumbnailShowTagIcon": "태그 아이콘 표시",
"settingsThumbnailShowLocationIcon": "위치 아이콘 표시", "settingsThumbnailShowLocationIcon": "위치 아이콘 표시",
@ -477,13 +489,13 @@
"settingsThumbnailShowVideoDuration": "동영상 길이 표시", "settingsThumbnailShowVideoDuration": "동영상 길이 표시",
"settingsCollectionQuickActionsTile": "빠른 작업", "settingsCollectionQuickActionsTile": "빠른 작업",
"settingsCollectionQuickActionEditorTitle": "빠른 작업", "settingsCollectionQuickActionEditorPageTitle": "빠른 작업",
"settingsCollectionQuickActionTabBrowsing": "탐색 시", "settingsCollectionQuickActionTabBrowsing": "탐색 시",
"settingsCollectionQuickActionTabSelecting": "선택 시", "settingsCollectionQuickActionTabSelecting": "선택 시",
"settingsCollectionBrowsingQuickActionEditorBanner": "버튼을 길게 누른 후 이동하여 항목 탐색할 때 표시될 버튼을 선택하세요.", "settingsCollectionBrowsingQuickActionEditorBanner": "버튼을 길게 누른 후 이동하여 항목 탐색할 때 표시될 버튼을 선택하세요.",
"settingsCollectionSelectionQuickActionEditorBanner": "버튼을 길게 누른 후 이동하여 항목 선택할 때 표시될 버튼을 선택하세요.", "settingsCollectionSelectionQuickActionEditorBanner": "버튼을 길게 누른 후 이동하여 항목 선택할 때 표시될 버튼을 선택하세요.",
"settingsSectionViewer": "뷰어", "settingsViewerSectionTitle": "뷰어",
"settingsViewerGestureSideTapNext": "화면 측면에서 탭해서 이전/다음 항목 보기", "settingsViewerGestureSideTapNext": "화면 측면에서 탭해서 이전/다음 항목 보기",
"settingsViewerUseCutout": "컷아웃 영역 사용", "settingsViewerUseCutout": "컷아웃 영역 사용",
"settingsViewerMaximumBrightness": "최대 밝기", "settingsViewerMaximumBrightness": "최대 밝기",
@ -491,14 +503,14 @@
"settingsImageBackground": "이미지 배경", "settingsImageBackground": "이미지 배경",
"settingsViewerQuickActionsTile": "빠른 작업", "settingsViewerQuickActionsTile": "빠른 작업",
"settingsViewerQuickActionEditorTitle": "빠른 작업", "settingsViewerQuickActionEditorPageTitle": "빠른 작업",
"settingsViewerQuickActionEditorBanner": "버튼을 길게 누른 후 이동하여 뷰어에 표시될 버튼을 선택하세요.", "settingsViewerQuickActionEditorBanner": "버튼을 길게 누른 후 이동하여 뷰어에 표시될 버튼을 선택하세요.",
"settingsViewerQuickActionEditorDisplayedButtons": "표시될 버튼", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "표시될 버튼",
"settingsViewerQuickActionEditorAvailableButtons": "추가 가능한 버튼", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "추가 가능한 버튼",
"settingsViewerQuickActionEmpty": "버튼이 없습니다", "settingsViewerQuickActionEmpty": "버튼이 없습니다",
"settingsViewerOverlayTile": "오버레이", "settingsViewerOverlayTile": "오버레이",
"settingsViewerOverlayTitle": "오버레이", "settingsViewerOverlayPageTitle": "오버레이",
"settingsViewerShowOverlayOnOpening": "열릴 때 표시", "settingsViewerShowOverlayOnOpening": "열릴 때 표시",
"settingsViewerShowMinimap": "미니맵 표시", "settingsViewerShowMinimap": "미니맵 표시",
"settingsViewerShowInformation": "상세 정보 표시", "settingsViewerShowInformation": "상세 정보 표시",
@ -508,30 +520,30 @@
"settingsViewerEnableOverlayBlurEffect": "흐림 효과", "settingsViewerEnableOverlayBlurEffect": "흐림 효과",
"settingsViewerSlideshowTile": "슬라이드쇼", "settingsViewerSlideshowTile": "슬라이드쇼",
"settingsViewerSlideshowTitle": "슬라이드쇼", "settingsViewerSlideshowPageTitle": "슬라이드쇼",
"settingsSlideshowRepeat": "반복", "settingsSlideshowRepeat": "반복",
"settingsSlideshowShuffle": "순서섞기", "settingsSlideshowShuffle": "순서섞기",
"settingsSlideshowFillScreen": "화면 채우기", "settingsSlideshowFillScreen": "화면 채우기",
"settingsSlideshowTransitionTile": "전환 효과", "settingsSlideshowTransitionTile": "전환 효과",
"settingsSlideshowTransitionTitle": "전환 효과", "settingsSlideshowTransitionDialogTitle": "전환 효과",
"settingsSlideshowIntervalTile": "교체 주기", "settingsSlideshowIntervalTile": "교체 주기",
"settingsSlideshowIntervalTitle": "교체 주기", "settingsSlideshowIntervalDialogTitle": "교체 주기",
"settingsSlideshowVideoPlaybackTile": "동영상 재생", "settingsSlideshowVideoPlaybackTile": "동영상 재생",
"settingsSlideshowVideoPlaybackTitle": "동영상 재생", "settingsSlideshowVideoPlaybackDialogTitle": "동영상 재생",
"settingsVideoPageTitle": "동영상 설정", "settingsVideoPageTitle": "동영상 설정",
"settingsSectionVideo": "동영상", "settingsVideoSectionTitle": "동영상",
"settingsVideoShowVideos": "미디어에 동영상 표시", "settingsVideoShowVideos": "미디어에 동영상 표시",
"settingsVideoEnableHardwareAcceleration": "하드웨어 가속", "settingsVideoEnableHardwareAcceleration": "하드웨어 가속",
"settingsVideoEnableAutoPlay": "자동 재생", "settingsVideoEnableAutoPlay": "자동 재생",
"settingsVideoLoopModeTile": "반복 모드", "settingsVideoLoopModeTile": "반복 모드",
"settingsVideoLoopModeTitle": "반복 모드", "settingsVideoLoopModeDialogTitle": "반복 모드",
"settingsSubtitleThemeTile": "자막", "settingsSubtitleThemeTile": "자막",
"settingsSubtitleThemeTitle": "자막", "settingsSubtitleThemePageTitle": "자막",
"settingsSubtitleThemeSample": "샘플입니다.", "settingsSubtitleThemeSample": "샘플입니다.",
"settingsSubtitleThemeTextAlignmentTile": "정렬", "settingsSubtitleThemeTextAlignmentTile": "정렬",
"settingsSubtitleThemeTextAlignmentTitle": "정렬", "settingsSubtitleThemeTextAlignmentDialogTitle": "정렬",
"settingsSubtitleThemeTextSize": "글자 크기", "settingsSubtitleThemeTextSize": "글자 크기",
"settingsSubtitleThemeShowOutline": "윤곽 및 그림자 표시", "settingsSubtitleThemeShowOutline": "윤곽 및 그림자 표시",
"settingsSubtitleThemeTextColor": "글자 색상", "settingsSubtitleThemeTextColor": "글자 색상",
@ -543,13 +555,13 @@
"settingsSubtitleThemeTextAlignmentRight": "오른쪽", "settingsSubtitleThemeTextAlignmentRight": "오른쪽",
"settingsVideoControlsTile": "제어", "settingsVideoControlsTile": "제어",
"settingsVideoControlsTitle": "제어", "settingsVideoControlsPageTitle": "제어",
"settingsVideoButtonsTile": "버튼", "settingsVideoButtonsTile": "버튼",
"settingsVideoButtonsTitle": "버튼", "settingsVideoButtonsDialogTitle": "버튼",
"settingsVideoGestureDoubleTapTogglePlay": "두 번 탭해서 재생이나 일시정지하기", "settingsVideoGestureDoubleTapTogglePlay": "두 번 탭해서 재생이나 일시정지하기",
"settingsVideoGestureSideDoubleTapSeek": "화면 측면에서 두 번 탭해서 앞뒤로 가기", "settingsVideoGestureSideDoubleTapSeek": "화면 측면에서 두 번 탭해서 앞뒤로 가기",
"settingsSectionPrivacy": "개인정보 보호", "settingsPrivacySectionTitle": "개인정보 보호",
"settingsAllowInstalledAppAccess": "설치된 앱의 목록 접근 허용", "settingsAllowInstalledAppAccess": "설치된 앱의 목록 접근 허용",
"settingsAllowInstalledAppAccessSubtitle": "앨범 표시 개선을 위해", "settingsAllowInstalledAppAccessSubtitle": "앨범 표시 개선을 위해",
"settingsAllowErrorReporting": "오류 보고서 보내기", "settingsAllowErrorReporting": "오류 보고서 보내기",
@ -558,52 +570,56 @@
"settingsEnableBinSubtitle": "삭제한 항목을 30일 동안 보관하기", "settingsEnableBinSubtitle": "삭제한 항목을 30일 동안 보관하기",
"settingsHiddenItemsTile": "숨겨진 항목", "settingsHiddenItemsTile": "숨겨진 항목",
"settingsHiddenItemsTitle": "숨겨진 항목", "settingsHiddenItemsPageTitle": "숨겨진 항목",
"settingsHiddenFiltersTitle": "숨겨진 필터", "settingsHiddenItemsTabFilters": "숨겨진 필터",
"settingsHiddenFiltersBanner": "이 필터에 맞는 사진과 동영상이 숨겨지고 있으며 이 앱에서 보여지지 않을 것입니다.", "settingsHiddenFiltersBanner": "이 필터에 맞는 사진과 동영상이 숨겨지고 있으며 이 앱에서 보여지지 않을 것입니다.",
"settingsHiddenFiltersEmpty": "숨겨진 필터가 없습니다", "settingsHiddenFiltersEmpty": "숨겨진 필터가 없습니다",
"settingsHiddenPathsTitle": "숨겨진 경로", "settingsHiddenItemsTabPaths": "숨겨진 경로",
"settingsHiddenPathsBanner": "이 경로에 있는 사진과 동영상이 숨겨지고 있으며 이 앱에서 보여지지 않을 것입니다.", "settingsHiddenPathsBanner": "이 경로에 있는 사진과 동영상이 숨겨지고 있으며 이 앱에서 보여지지 않을 것입니다.",
"addPathTooltip": "경로 추가", "addPathTooltip": "경로 추가",
"settingsStorageAccessTile": "저장공간 접근", "settingsStorageAccessTile": "저장공간 접근",
"settingsStorageAccessTitle": "저장공간 접근", "settingsStorageAccessPageTitle": "저장공간 접근",
"settingsStorageAccessBanner": "어떤 폴더는 사용자의 허용을 받아야만 앱이 파일에 접근이 가능합니다. 이 화면에 허용을 받은 폴더를 확인할 수 있으며 원하지 않으면 취소할 수 있습니다.", "settingsStorageAccessBanner": "어떤 폴더는 사용자의 허용을 받아야만 앱이 파일에 접근이 가능합니다. 이 화면에 허용을 받은 폴더를 확인할 수 있으며 원하지 않으면 취소할 수 있습니다.",
"settingsStorageAccessEmpty": "접근 허용이 없습니다", "settingsStorageAccessEmpty": "접근 허용이 없습니다",
"settingsStorageAccessRevokeTooltip": "취소", "settingsStorageAccessRevokeTooltip": "취소",
"settingsSectionAccessibility": "접근성", "settingsAccessibilitySectionTitle": "접근성",
"settingsRemoveAnimationsTile": "애니메이션 삭제", "settingsRemoveAnimationsTile": "애니메이션 삭제",
"settingsRemoveAnimationsTitle": "애니메이션 삭제", "settingsRemoveAnimationsDialogTitle": "애니메이션 삭제",
"settingsTimeToTakeActionTile": "액션 취하기 전 대기 시간", "settingsTimeToTakeActionTile": "액션 취하기 전 대기 시간",
"settingsTimeToTakeActionTitle": "액션 취하기 전 대기 시간", "settingsTimeToTakeActionDialogTitle": "액션 취하기 전 대기 시간",
"settingsSectionDisplay": "디스플레이", "settingsDisplaySectionTitle": "디스플레이",
"settingsThemeBrightness": "테마", "settingsThemeBrightnessTile": "테마",
"settingsThemeBrightnessDialogTitle": "테마",
"settingsThemeColorHighlights": "색 강조", "settingsThemeColorHighlights": "색 강조",
"settingsThemeEnableDynamicColor": "동적 색상", "settingsThemeEnableDynamicColor": "동적 색상",
"settingsDisplayRefreshRateModeTile": "화면 재생률", "settingsDisplayRefreshRateModeTile": "화면 재생률",
"settingsDisplayRefreshRateModeTitle": "화면 재생률", "settingsDisplayRefreshRateModeDialogTitle": "화면 재생률",
"settingsSectionLanguage": "언어 및 표시 형식", "settingsLanguageSectionTitle": "언어 및 표시 형식",
"settingsLanguage": "언어", "settingsLanguageTile": "언어",
"settingsLanguagePageTitle": "언어",
"settingsCoordinateFormatTile": "좌표 표현", "settingsCoordinateFormatTile": "좌표 표현",
"settingsCoordinateFormatTitle": "좌표 표현", "settingsCoordinateFormatDialogTitle": "좌표 표현",
"settingsUnitSystemTile": "단위법", "settingsUnitSystemTile": "단위법",
"settingsUnitSystemTitle": "단위법", "settingsUnitSystemDialogTitle": "단위법",
"settingsScreenSaverPageTitle": "화면보호기", "settingsScreenSaverPageTitle": "화면보호기",
"settingsWidgetPageTitle": "사진 액자", "settingsWidgetPageTitle": "사진 액자",
"settingsWidgetShowOutline": "윤곽", "settingsWidgetShowOutline": "윤곽",
"settingsCollectionTile": "미디어",
"statsPageTitle": "통계", "statsPageTitle": "통계",
"statsWithGps": "{count, plural, other{{count}개 위치가 있음}}", "statsWithGps": "{count, plural, other{{count}개 위치가 있음}}",
"statsTopCountries": "국가 랭킹", "statsTopCountriesSectionTitle": "국가 랭킹",
"statsTopPlaces": "장소 랭킹", "statsTopPlacesSectionTitle": "장소 랭킹",
"statsTopTags": "태그 랭킹", "statsTopTagsSectionTitle": "태그 랭킹",
"viewerOpenPanoramaButtonLabel": "파노라마 열기", "viewerOpenPanoramaButtonLabel": "파노라마 열기",
"viewerSetWallpaperButtonLabel": "설정", "viewerSetWallpaperButtonLabel": "설정",
@ -614,6 +630,7 @@
"viewerInfoBackToViewerTooltip": "뷰어로", "viewerInfoBackToViewerTooltip": "뷰어로",
"viewerInfoUnknown": "알 수 없음", "viewerInfoUnknown": "알 수 없음",
"viewerInfoLabelDescription": "설명",
"viewerInfoLabelTitle": "제목", "viewerInfoLabelTitle": "제목",
"viewerInfoLabelDate": "날짜", "viewerInfoLabelDate": "날짜",
"viewerInfoLabelResolution": "해상도", "viewerInfoLabelResolution": "해상도",
@ -625,7 +642,7 @@
"viewerInfoLabelCoordinates": "좌표", "viewerInfoLabelCoordinates": "좌표",
"viewerInfoLabelAddress": "주소", "viewerInfoLabelAddress": "주소",
"mapStyleTitle": "지도 유형", "mapStyleDialogTitle": "지도 유형",
"mapStyleTooltip": "지도 유형 선택", "mapStyleTooltip": "지도 유형 선택",
"mapZoomInTooltip": "확대", "mapZoomInTooltip": "확대",
"mapZoomOutTooltip": "축소", "mapZoomOutTooltip": "축소",

View file

@ -27,6 +27,7 @@
"actionRemove": "Verwijderen", "actionRemove": "Verwijderen",
"resetTooltip": "Resetten", "resetTooltip": "Resetten",
"saveTooltip": "Opslaan", "saveTooltip": "Opslaan",
"pickTooltip": "Kies",
"doubleBackExitMessage": "Tap nogmaals “Terug” om te sluiten.", "doubleBackExitMessage": "Tap nogmaals “Terug” om te sluiten.",
"doNotAskAgain": "Niet opnieuw vragen", "doNotAskAgain": "Niet opnieuw vragen",
@ -85,20 +86,22 @@
"slideshowActionResume": "Hervatten", "slideshowActionResume": "Hervatten",
"slideshowActionShowInCollection": "Tonen in Collectie", "slideshowActionShowInCollection": "Tonen in Collectie",
"entryInfoActionEditDate": "Bewerk Datum & Tijd", "entryInfoActionEditDate": "Bewerk datum & tijd",
"entryInfoActionEditLocation": "Bewerk Locatie", "entryInfoActionEditLocation": "Bewerk locatie",
"entryInfoActionEditDescription": "Omschrijving wijzigen", "entryInfoActionEditTitleDescription": "Wijzig titel & omschrijving",
"entryInfoActionEditRating": "Bewerk waardering", "entryInfoActionEditRating": "Bewerk waardering",
"entryInfoActionEditTags": "Bewerk labels", "entryInfoActionEditTags": "Bewerk labels",
"entryInfoActionRemoveMetadata": "Verwijder metadata", "entryInfoActionRemoveMetadata": "Verwijder metadata",
"filterBinLabel": "Prullenbak", "filterBinLabel": "Prullenbak",
"filterFavouriteLabel": "Favorieten", "filterFavouriteLabel": "Favorieten",
"filterLocationEmptyLabel": "Geen locatie", "filterNoDateLabel": "Geen datum",
"filterTagEmptyLabel": "Geen label", "filterNoLocationLabel": "Geen locatie",
"filterNoRatingLabel": "Geen rating",
"filterNoTagLabel": "Geen label",
"filterNoTitleLabel": "Geen titel",
"filterOnThisDayLabel": "Op deze dag", "filterOnThisDayLabel": "Op deze dag",
"filterRecentlyAddedLabel": "Recent toegevoegd", "filterRecentlyAddedLabel": "Recent toegevoegd",
"filterRatingUnratedLabel": "Geen rating",
"filterRatingRejectedLabel": "Afgekeurd", "filterRatingRejectedLabel": "Afgekeurd",
"filterTypeAnimatedLabel": "Geanimeerd", "filterTypeAnimatedLabel": "Geanimeerd",
"filterTypeMotionPhotoLabel": "Bewegende Foto", "filterTypeMotionPhotoLabel": "Bewegende Foto",
@ -179,16 +182,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "SD kaart", "storageVolumeDescriptionFallbackNonPrimary": "SD kaart",
"rootDirectoryDescription": "root map", "rootDirectoryDescription": "root map",
"otherDirectoryDescription": "“{name}” map", "otherDirectoryDescription": "“{name}” map",
"storageAccessDialogTitle": "Toegang tot opslag",
"storageAccessDialogMessage": "Selecteer de {directory} van “{volume}”, in het volgende scherm om deze app er toegang toe te geven.", "storageAccessDialogMessage": "Selecteer de {directory} van “{volume}”, in het volgende scherm om deze app er toegang toe te geven.",
"restrictedAccessDialogTitle": "Beperkte toegang",
"restrictedAccessDialogMessage": "Deze applicatie mag geen bestanden wijzigen in de {directory} van “{volume}”,.\n\n Gebruik een vooraf geïnstalleerde filemanager of galerij-app om de items naar een andere map te verplaatsen.", "restrictedAccessDialogMessage": "Deze applicatie mag geen bestanden wijzigen in de {directory} van “{volume}”,.\n\n Gebruik een vooraf geïnstalleerde filemanager of galerij-app om de items naar een andere map te verplaatsen.",
"notEnoughSpaceDialogTitle": "Te weinig vrije opslagruimte",
"notEnoughSpaceDialogMessage": "Deze bewerking heeft {neededSize} vrije ruimte op “{volume}”, nodig om te voltooien, maar er is nog slechts {freeSize} over.", "notEnoughSpaceDialogMessage": "Deze bewerking heeft {neededSize} vrije ruimte op “{volume}”, nodig om te voltooien, maar er is nog slechts {freeSize} over.",
"missingSystemFilePickerDialogTitle": "Ontbrekende systeembestandkiezer",
"missingSystemFilePickerDialogMessage": "De systeembestandskiezer ontbreekt of is uitgeschakeld. Schakel het in en probeer het opnieuw.", "missingSystemFilePickerDialogMessage": "De systeembestandskiezer ontbreekt of is uitgeschakeld. Schakel het in en probeer het opnieuw.",
"unsupportedTypeDialogTitle": "Niet-ondersteunde Bestandstypen",
"unsupportedTypeDialogMessage": "{count, plural, other{Deze bewerking wordt niet ondersteund voor items van het volgende bestandstype: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, other{Deze bewerking wordt niet ondersteund voor items van het volgende bestandstype: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Sommige bestanden in de doelmap hebben dezelfde naam.", "nameConflictDialogSingleSourceMessage": "Sommige bestanden in de doelmap hebben dezelfde naam.",
@ -197,7 +195,6 @@
"addShortcutDialogLabel": "Label snelkoppeling", "addShortcutDialogLabel": "Label snelkoppeling",
"addShortcutButtonLabel": "TOEVOEGEN", "addShortcutButtonLabel": "TOEVOEGEN",
"noMatchingAppDialogTitle": "Geen overeenkomende applicatie",
"noMatchingAppDialogMessage": "Er zijn geen apps die dit ondersteunen.", "noMatchingAppDialogMessage": "Er zijn geen apps die dit ondersteunen.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Dit item naar de prullenbak verplaatsen??} other{Verplaats deze {count} items naar de prullenbak?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Dit item naar de prullenbak verplaatsen??} other{Verplaats deze {count} items naar de prullenbak?}}",
@ -226,7 +223,7 @@
"renameEntrySetPageTitle": "Hernoemen", "renameEntrySetPageTitle": "Hernoemen",
"renameEntrySetPagePatternFieldLabel": "Naamgevingspatroon", "renameEntrySetPagePatternFieldLabel": "Naamgevingspatroon",
"renameEntrySetPageInsertTooltip": "Veld invoegen", "renameEntrySetPageInsertTooltip": "Veld invoegen",
"renameEntrySetPagePreview": "Voorbeeld", "renameEntrySetPagePreviewSectionTitle": "Voorbeeld",
"renameProcessorCounter": "Teller", "renameProcessorCounter": "Teller",
"renameProcessorName": "Naam", "renameProcessorName": "Naam",
@ -259,8 +256,6 @@
"locationPickerUseThisLocationButton": "Gebruik deze locatie", "locationPickerUseThisLocationButton": "Gebruik deze locatie",
"editEntryDescriptionDialogTitle": "Omschrijving",
"editEntryRatingDialogTitle": "Beoordeling", "editEntryRatingDialogTitle": "Beoordeling",
"removeEntryMetadataDialogTitle": "Verwijderen metadata", "removeEntryMetadataDialogTitle": "Verwijderen metadata",
@ -289,9 +284,10 @@
"menuActionSlideshow": "Diavoorstelling", "menuActionSlideshow": "Diavoorstelling",
"menuActionStats": "Statistieken", "menuActionStats": "Statistieken",
"viewDialogTabSort": "Sorteer", "viewDialogSortSectionTitle": "Sorteer",
"viewDialogTabGroup": "Groeperen", "viewDialogGroupSectionTitle": "Groeperen",
"viewDialogTabLayout": "Layout", "viewDialogLayoutSectionTitle": "Layout",
"viewDialogReverseSortOrder": "Draai sorteerrichting om",
"tileLayoutGrid": "Raster", "tileLayoutGrid": "Raster",
"tileLayoutList": "Lijst", "tileLayoutList": "Lijst",
@ -308,24 +304,24 @@
"aboutLinkLicense": "Licentie", "aboutLinkLicense": "Licentie",
"aboutLinkPolicy": "Privacy Policy", "aboutLinkPolicy": "Privacy Policy",
"aboutBug": "Bug Reporteren", "aboutBugSectionTitle": "Bug Reporteren",
"aboutBugSaveLogInstruction": "Sla applicatielogs op in een bestand", "aboutBugSaveLogInstruction": "Sla applicatielogs op in een bestand",
"aboutBugCopyInfoInstruction": "Kopieer systeem informatie", "aboutBugCopyInfoInstruction": "Kopieer systeem informatie",
"aboutBugCopyInfoButton": "Kopieer", "aboutBugCopyInfoButton": "Kopieer",
"aboutBugReportInstruction": "Reporteer op GitHub met de logs en systeeminformatie", "aboutBugReportInstruction": "Reporteer op GitHub met de logs en systeeminformatie",
"aboutBugReportButton": "Reporteer", "aboutBugReportButton": "Reporteer",
"aboutCredits": "Credits", "aboutCreditsSectionTitle": "Credits",
"aboutCreditsWorldAtlas1": "Deze applicatie gebruikt een TopoJSON-bestand van", "aboutCreditsWorldAtlas1": "Deze applicatie gebruikt een TopoJSON-bestand van",
"aboutCreditsWorldAtlas2": "Gebruik makend van de ISC License.", "aboutCreditsWorldAtlas2": "Gebruik makend van de ISC License.",
"aboutCreditsTranslators": "Vdertalers", "aboutTranslatorsSectionTitle": "Vdertalers",
"aboutLicenses": "Open-Source Licenties", "aboutLicensesSectionTitle": "Open-Source Licenties",
"aboutLicensesBanner": "Deze app maakt gebruik van de volgende open-sourcepakketten en bibliotheken.", "aboutLicensesBanner": "Deze app maakt gebruik van de volgende open-sourcepakketten en bibliotheken.",
"aboutLicensesAndroidLibraries": "Android bibliotheken", "aboutLicensesAndroidLibrariesSectionTitle": "Android bibliotheken",
"aboutLicensesFlutterPlugins": "Flutter Plugins", "aboutLicensesFlutterPluginsSectionTitle": "Flutter Plugins",
"aboutLicensesFlutterPackages": "Flutter Packages", "aboutLicensesFlutterPackagesSectionTitle": "Flutter Packages",
"aboutLicensesDartPackages": "Dart Packages", "aboutLicensesDartPackagesSectionTitle": "Dart Packages",
"aboutLicensesShowAllButtonLabel": "Laat alle licenties zien", "aboutLicensesShowAllButtonLabel": "Laat alle licenties zien",
"policyPageTitle": "Privacy Policy", "policyPageTitle": "Privacy Policy",
@ -345,11 +341,6 @@
"collectionSearchTitlesHintText": "Zoek op titel", "collectionSearchTitlesHintText": "Zoek op titel",
"collectionSortDate": "Op datum",
"collectionSortSize": "Op grootte",
"collectionSortName": "Op album- en bestandsnaam",
"collectionSortRating": "Op rating",
"collectionGroupAlbum": "Op Albumnaam", "collectionGroupAlbum": "Op Albumnaam",
"collectionGroupMonth": "Op maand", "collectionGroupMonth": "Op maand",
"collectionGroupDay": "Op dag", "collectionGroupDay": "Op dag",
@ -378,6 +369,8 @@
"collectionSelectSectionTooltip": "Selecteer sectie", "collectionSelectSectionTooltip": "Selecteer sectie",
"collectionDeselectSectionTooltip": "Deselecteer sectie", "collectionDeselectSectionTooltip": "Deselecteer sectie",
"drawerAboutButton": "Over",
"drawerSettingsButton": "Instellingen",
"drawerCollectionAll": "Alle verzamelingen", "drawerCollectionAll": "Alle verzamelingen",
"drawerCollectionFavourites": "Favourieten", "drawerCollectionFavourites": "Favourieten",
"drawerCollectionImages": "Afbeeldingen", "drawerCollectionImages": "Afbeeldingen",
@ -387,10 +380,25 @@
"drawerCollectionPanoramas": "Panoramas", "drawerCollectionPanoramas": "Panoramas",
"drawerCollectionRaws": "Raw fotos", "drawerCollectionRaws": "Raw fotos",
"drawerCollectionSphericalVideos": "360° videos", "drawerCollectionSphericalVideos": "360° videos",
"drawerAlbumPage": "Albums",
"drawerCountryPage": "Landen",
"drawerTagPage": "Labels",
"chipSortDate": "Op datum", "sortByDate": "Op datum",
"chipSortName": "Op naam", "sortByName": "Op naam",
"chipSortCount": "Op aantal items", "sortByItemCount": "Op aantal items",
"sortBySize": "Op grootte",
"sortByAlbumFileName": "Op album- en bestandsnaam",
"sortByRating": "Op rating",
"sortOrderNewestFirst": "Nieuwste eerst",
"sortOrderOldestFirst": "Oudste eerst",
"sortOrderAtoZ": "A tot Z",
"sortOrderZtoA": "Z tot A",
"sortOrderHighestFirst": "Hoogste eerst",
"sortOrderLowestFirst": "Laagste eerst",
"sortOrderLargestFirst": "Grootste eerst",
"sortOrderSmallestFirst": "Kleinste eerst",
"albumGroupTier": "Op rang", "albumGroupTier": "Op rang",
"albumGroupVolume": "Op opslagvolume", "albumGroupVolume": "Op opslagvolume",
@ -422,13 +430,14 @@
"binPageTitle": "Prullenbak", "binPageTitle": "Prullenbak",
"searchCollectionFieldHint": "Doorzoek collectie", "searchCollectionFieldHint": "Doorzoek collectie",
"searchSectionRecent": "Recent", "searchRecentSectionTitle": "Recent",
"searchSectionDate": "Datum", "searchDateSectionTitle": "Datum",
"searchSectionAlbums": "Albums", "searchAlbumsSectionTitle": "Albums",
"searchSectionCountries": "Landen", "searchCountriesSectionTitle": "Landen",
"searchSectionPlaces": "Plaatsen", "searchPlacesSectionTitle": "Plaatsen",
"searchSectionTags": "Labels", "searchTagsSectionTitle": "Labels",
"searchSectionRating": "Beoordeling", "searchRatingSectionTitle": "Beoordeling",
"searchMetadataSectionTitle": "Metadata",
"settingsPageTitle": "Instellingen", "settingsPageTitle": "Instellingen",
"settingsSystemDefault": "Systeem", "settingsSystemDefault": "Systeem",
@ -437,37 +446,40 @@
"settingsSearchFieldLabel": "Instellingen doorzoeken", "settingsSearchFieldLabel": "Instellingen doorzoeken",
"settingsSearchEmpty": "Geen instellingen gevonden", "settingsSearchEmpty": "Geen instellingen gevonden",
"settingsActionExport": "Exporteer", "settingsActionExport": "Exporteer",
"settingsActionExportDialogTitle": "Exporteer",
"settingsActionImport": "Importeer", "settingsActionImport": "Importeer",
"settingsActionImportDialogTitle": "Importeer",
"appExportCovers": "Omslagen", "appExportCovers": "Omslagen",
"appExportFavourites": "Favorieten", "appExportFavourites": "Favorieten",
"appExportSettings": "Instellingen", "appExportSettings": "Instellingen",
"settingsSectionNavigation": "Navigatie", "settingsNavigationSectionTitle": "Navigatie",
"settingsHome": "Startscherm", "settingsHomeTile": "Startscherm",
"settingsHomeDialogTitle": "Startscherm",
"settingsShowBottomNavigationBar": "Laat onderste navigatiebalk zien", "settingsShowBottomNavigationBar": "Laat onderste navigatiebalk zien",
"settingsKeepScreenOnTile": "Houd het scherm aan", "settingsKeepScreenOnTile": "Houd het scherm aan",
"settingsKeepScreenOnTitle": "Houd het scherm aan", "settingsKeepScreenOnDialogTitle": "Houd het scherm aan",
"settingsDoubleBackExit": "Tik twee keer op “terug” om af te sluiten", "settingsDoubleBackExit": "Tik twee keer op “terug” om af te sluiten",
"settingsConfirmationDialogTile": "Bevestigingsscherm", "settingsConfirmationTile": "Bevestigingsscherm",
"settingsConfirmationDialogTitle": "Bevestigingsschermen", "settingsConfirmationDialogTitle": "Bevestigingsschermen",
"settingsConfirmationDialogDeleteItems": "Bevestig voordat je items voor altijd verwijdert", "settingsConfirmationBeforeDeleteItems": "Bevestig voordat je items voor altijd verwijdert",
"settingsConfirmationDialogMoveToBinItems": "Bevestig voordat u items naar de prullenbak verplaatst", "settingsConfirmationBeforeMoveToBinItems": "Bevestig voordat u items naar de prullenbak verplaatst",
"settingsConfirmationDialogMoveUndatedItems": "Bevestigvoordat u ongedateerde items verplaatst", "settingsConfirmationBeforeMoveUndatedItems": "Bevestigvoordat u ongedateerde items verplaatst",
"settingsConfirmationAfterMoveToBinItems": "Toon bevestigingsbericht na het verplaatsen van items naar de prullenbak", "settingsConfirmationAfterMoveToBinItems": "Toon bevestigingsbericht na het verplaatsen van items naar de prullenbak",
"settingsNavigationDrawerTile": "Navigatiemenu", "settingsNavigationDrawerTile": "Navigatiemenu",
"settingsNavigationDrawerEditorTitle": "Navigatiemenu", "settingsNavigationDrawerEditorPageTitle": "Navigatiemenu",
"settingsNavigationDrawerBanner": "Houd ingedrukt om menu-items te verplaatsen en opnieuw te ordenen.", "settingsNavigationDrawerBanner": "Houd ingedrukt om menu-items te verplaatsen en opnieuw te ordenen.",
"settingsNavigationDrawerTabTypes": "Typen", "settingsNavigationDrawerTabTypes": "Typen",
"settingsNavigationDrawerTabAlbums": "Albums", "settingsNavigationDrawerTabAlbums": "Albums",
"settingsNavigationDrawerTabPages": "Paginas", "settingsNavigationDrawerTabPages": "Paginas",
"settingsNavigationDrawerAddAlbum": "Album toevoegen", "settingsNavigationDrawerAddAlbum": "Album toevoegen",
"settingsSectionThumbnails": "Miniaturen", "settingsThumbnailSectionTitle": "Miniaturen",
"settingsThumbnailOverlayTile": "Overlay", "settingsThumbnailOverlayTile": "Overlay",
"settingsThumbnailOverlayTitle": "Overlay", "settingsThumbnailOverlayPageTitle": "Overlay",
"settingsThumbnailShowFavouriteIcon": "Favorieten icoon zichtbaar", "settingsThumbnailShowFavouriteIcon": "Favorieten icoon zichtbaar",
"settingsThumbnailShowTagIcon": "Label icoon zichtbaar", "settingsThumbnailShowTagIcon": "Label icoon zichtbaar",
"settingsThumbnailShowLocationIcon": "Locatie icoon zichtbaar", "settingsThumbnailShowLocationIcon": "Locatie icoon zichtbaar",
@ -477,13 +489,13 @@
"settingsThumbnailShowVideoDuration": "Videoduur zichtbaar", "settingsThumbnailShowVideoDuration": "Videoduur zichtbaar",
"settingsCollectionQuickActionsTile": "Snelle bewerkingen", "settingsCollectionQuickActionsTile": "Snelle bewerkingen",
"settingsCollectionQuickActionEditorTitle": "Snelle bewerkingen", "settingsCollectionQuickActionEditorPageTitle": "Snelle bewerkingen",
"settingsCollectionQuickActionTabBrowsing": "Blader", "settingsCollectionQuickActionTabBrowsing": "Blader",
"settingsCollectionQuickActionTabSelecting": "Selecteren", "settingsCollectionQuickActionTabSelecting": "Selecteren",
"settingsCollectionBrowsingQuickActionEditorBanner": "Houd ingedrukt om knoppen te verplaatsen en te selecteren welke acties worden weergegeven bij het bladeren door items.", "settingsCollectionBrowsingQuickActionEditorBanner": "Houd ingedrukt om knoppen te verplaatsen en te selecteren welke acties worden weergegeven bij het bladeren door items.",
"settingsCollectionSelectionQuickActionEditorBanner": "Houd ingedrukt om knoppen te verplaatsen en te selecteren welke acties worden weergegeven bij het selecteren van items.", "settingsCollectionSelectionQuickActionEditorBanner": "Houd ingedrukt om knoppen te verplaatsen en te selecteren welke acties worden weergegeven bij het selecteren van items.",
"settingsSectionViewer": "Voorbeeld", "settingsViewerSectionTitle": "Voorbeeld",
"settingsViewerGestureSideTapNext": "Druk op het scherm om het vorige/volgende item weer te geven", "settingsViewerGestureSideTapNext": "Druk op het scherm om het vorige/volgende item weer te geven",
"settingsViewerUseCutout": "Uitgesneden gebied gebruiken", "settingsViewerUseCutout": "Uitgesneden gebied gebruiken",
"settingsViewerMaximumBrightness": "Maximale helderheid", "settingsViewerMaximumBrightness": "Maximale helderheid",
@ -491,14 +503,14 @@
"settingsImageBackground": "Afbeeldingsachtergrond", "settingsImageBackground": "Afbeeldingsachtergrond",
"settingsViewerQuickActionsTile": "Snelle bewerkingen", "settingsViewerQuickActionsTile": "Snelle bewerkingen",
"settingsViewerQuickActionEditorTitle": "Snelle bewerkingen", "settingsViewerQuickActionEditorPageTitle": "Snelle bewerkingen",
"settingsViewerQuickActionEditorBanner": "Houd ingedrukt om knoppen te verplaatsen en te selecteren welke acties in de viewer worden weergegeven.", "settingsViewerQuickActionEditorBanner": "Houd ingedrukt om knoppen te verplaatsen en te selecteren welke acties in de viewer worden weergegeven.",
"settingsViewerQuickActionEditorDisplayedButtons": "Zichtbare knoppen", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Zichtbare knoppen",
"settingsViewerQuickActionEditorAvailableButtons": "Beschikbare knoppen", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Beschikbare knoppen",
"settingsViewerQuickActionEmpty": "Geen knoppen", "settingsViewerQuickActionEmpty": "Geen knoppen",
"settingsViewerOverlayTile": "Overlay", "settingsViewerOverlayTile": "Overlay",
"settingsViewerOverlayTitle": "Overlay", "settingsViewerOverlayPageTitle": "Overlay",
"settingsViewerShowOverlayOnOpening": "Zichtbaar bij openen", "settingsViewerShowOverlayOnOpening": "Zichtbaar bij openen",
"settingsViewerShowMinimap": "Laat kleine kaart zien", "settingsViewerShowMinimap": "Laat kleine kaart zien",
"settingsViewerShowInformation": "Laat informatie zien", "settingsViewerShowInformation": "Laat informatie zien",
@ -508,30 +520,30 @@
"settingsViewerEnableOverlayBlurEffect": "Vervagingseffect", "settingsViewerEnableOverlayBlurEffect": "Vervagingseffect",
"settingsViewerSlideshowTile": "Diavoorstelling", "settingsViewerSlideshowTile": "Diavoorstelling",
"settingsViewerSlideshowTitle": "Diavoorstelling", "settingsViewerSlideshowPageTitle": "Diavoorstelling",
"settingsSlideshowRepeat": "Herhalen", "settingsSlideshowRepeat": "Herhalen",
"settingsSlideshowShuffle": "Shuffle", "settingsSlideshowShuffle": "Shuffle",
"settingsSlideshowFillScreen": "Volledig scherm", "settingsSlideshowFillScreen": "Volledig scherm",
"settingsSlideshowTransitionTile": "Overgang", "settingsSlideshowTransitionTile": "Overgang",
"settingsSlideshowTransitionTitle": "Overgang", "settingsSlideshowTransitionDialogTitle": "Overgang",
"settingsSlideshowIntervalTile": "Interval", "settingsSlideshowIntervalTile": "Interval",
"settingsSlideshowIntervalTitle": "Interval", "settingsSlideshowIntervalDialogTitle": "Interval",
"settingsSlideshowVideoPlaybackTile": "Video afspelen", "settingsSlideshowVideoPlaybackTile": "Video afspelen",
"settingsSlideshowVideoPlaybackTitle": "Video afspelen", "settingsSlideshowVideoPlaybackDialogTitle": "Video afspelen",
"settingsVideoPageTitle": "Video Instellingen", "settingsVideoPageTitle": "Video Instellingen",
"settingsSectionVideo": "Video", "settingsVideoSectionTitle": "Video",
"settingsVideoShowVideos": "Videos", "settingsVideoShowVideos": "Videos",
"settingsVideoEnableHardwareAcceleration": "Hardware acceleratie", "settingsVideoEnableHardwareAcceleration": "Hardware acceleratie",
"settingsVideoEnableAutoPlay": "Automatisch afspelen", "settingsVideoEnableAutoPlay": "Automatisch afspelen",
"settingsVideoLoopModeTile": "Herhaald afspelen", "settingsVideoLoopModeTile": "Herhaald afspelen",
"settingsVideoLoopModeTitle": "Herhaald afspelen", "settingsVideoLoopModeDialogTitle": "Herhaald afspelen",
"settingsSubtitleThemeTile": "Ondertiteling", "settingsSubtitleThemeTile": "Ondertiteling",
"settingsSubtitleThemeTitle": "Ondertiteling", "settingsSubtitleThemePageTitle": "Ondertiteling",
"settingsSubtitleThemeSample": "Dit is een voorbeeld", "settingsSubtitleThemeSample": "Dit is een voorbeeld",
"settingsSubtitleThemeTextAlignmentTile": "Tekst uitlijnen", "settingsSubtitleThemeTextAlignmentTile": "Tekst uitlijnen",
"settingsSubtitleThemeTextAlignmentTitle": "Tekst uitlijnen", "settingsSubtitleThemeTextAlignmentDialogTitle": "Tekst uitlijnen",
"settingsSubtitleThemeTextSize": "Tekstgroote", "settingsSubtitleThemeTextSize": "Tekstgroote",
"settingsSubtitleThemeShowOutline": "Laat omtrek en schaduw zien", "settingsSubtitleThemeShowOutline": "Laat omtrek en schaduw zien",
"settingsSubtitleThemeTextColor": "Tekstkleur", "settingsSubtitleThemeTextColor": "Tekstkleur",
@ -543,13 +555,13 @@
"settingsSubtitleThemeTextAlignmentRight": "Rechts", "settingsSubtitleThemeTextAlignmentRight": "Rechts",
"settingsVideoControlsTile": "Bediening", "settingsVideoControlsTile": "Bediening",
"settingsVideoControlsTitle": "Bediening", "settingsVideoControlsPageTitle": "Bediening",
"settingsVideoButtonsTile": "Knoppen", "settingsVideoButtonsTile": "Knoppen",
"settingsVideoButtonsTitle": "Knoppen", "settingsVideoButtonsDialogTitle": "Knoppen",
"settingsVideoGestureDoubleTapTogglePlay": "Dubbeltik om te spelen/pauzeren", "settingsVideoGestureDoubleTapTogglePlay": "Dubbeltik om te spelen/pauzeren",
"settingsVideoGestureSideDoubleTapSeek": "Dubbeltik op schermranden om achteruit/vooruit te zoeken", "settingsVideoGestureSideDoubleTapSeek": "Dubbeltik op schermranden om achteruit/vooruit te zoeken",
"settingsSectionPrivacy": "Privacy", "settingsPrivacySectionTitle": "Privacy",
"settingsAllowInstalledAppAccess": "Toegang tot app-inventaris toestaan", "settingsAllowInstalledAppAccess": "Toegang tot app-inventaris toestaan",
"settingsAllowInstalledAppAccessSubtitle": "Gebruikt om de albumweergave te verbeteren", "settingsAllowInstalledAppAccessSubtitle": "Gebruikt om de albumweergave te verbeteren",
"settingsAllowErrorReporting": "Anonieme foutrapportage toestaan", "settingsAllowErrorReporting": "Anonieme foutrapportage toestaan",
@ -558,52 +570,56 @@
"settingsEnableBinSubtitle": "Bewaar verwijderde items 30 dagen", "settingsEnableBinSubtitle": "Bewaar verwijderde items 30 dagen",
"settingsHiddenItemsTile": "Verborgen items", "settingsHiddenItemsTile": "Verborgen items",
"settingsHiddenItemsTitle": "Verborgen Items", "settingsHiddenItemsPageTitle": "Verborgen Items",
"settingsHiddenFiltersTitle": "Verborgen Filters", "settingsHiddenItemsTabFilters": "Verborgen Filters",
"settingsHiddenFiltersBanner": "Fotos en videos die overeenkomen met verborgen filters, worden niet weergegeven in uw verzameling.", "settingsHiddenFiltersBanner": "Fotos en videos die overeenkomen met verborgen filters, worden niet weergegeven in uw verzameling.",
"settingsHiddenFiltersEmpty": "Geen verborgen filters", "settingsHiddenFiltersEmpty": "Geen verborgen filters",
"settingsHiddenPathsTitle": "Verborgen paden", "settingsHiddenItemsTabPaths": "Verborgen paden",
"settingsHiddenPathsBanner": "Fotos en videos in deze mappen, of een van hun submappen, verschijnen niet in uw verzameling.", "settingsHiddenPathsBanner": "Fotos en videos in deze mappen, of een van hun submappen, verschijnen niet in uw verzameling.",
"addPathTooltip": "Pad toevoegen", "addPathTooltip": "Pad toevoegen",
"settingsStorageAccessTile": "Toegang tot opslag", "settingsStorageAccessTile": "Toegang tot opslag",
"settingsStorageAccessTitle": "Toegang tot opslag", "settingsStorageAccessPageTitle": "Toegang tot opslag",
"settingsStorageAccessBanner": "Sommige mappen vereisen een expliciete toegangstoekenning om bestanden erin te wijzigen. U kunt hier directorys bekijken waartoe u eerder toegang heeft verleend.", "settingsStorageAccessBanner": "Sommige mappen vereisen een expliciete toegangstoekenning om bestanden erin te wijzigen. U kunt hier directorys bekijken waartoe u eerder toegang heeft verleend.",
"settingsStorageAccessEmpty": "Geen toegang verleend", "settingsStorageAccessEmpty": "Geen toegang verleend",
"settingsStorageAccessRevokeTooltip": "Herroepen", "settingsStorageAccessRevokeTooltip": "Herroepen",
"settingsSectionAccessibility": "Toegankelijkheid", "settingsAccessibilitySectionTitle": "Toegankelijkheid",
"settingsRemoveAnimationsTile": "Animaties verwijderen", "settingsRemoveAnimationsTile": "Animaties verwijderen",
"settingsRemoveAnimationsTitle": "Animaties verwijderen", "settingsRemoveAnimationsDialogTitle": "Animaties verwijderen",
"settingsTimeToTakeActionTile": "Tijd om actie te ondernemen", "settingsTimeToTakeActionTile": "Tijd om actie te ondernemen",
"settingsTimeToTakeActionTitle": "Tijd om actie te ondernemen", "settingsTimeToTakeActionDialogTitle": "Tijd om actie te ondernemen",
"settingsSectionDisplay": "Scherm", "settingsDisplaySectionTitle": "Scherm",
"settingsThemeBrightness": "Thema", "settingsThemeBrightnessTile": "Thema",
"settingsThemeBrightnessDialogTitle": "Thema",
"settingsThemeColorHighlights": "Kleur highlights", "settingsThemeColorHighlights": "Kleur highlights",
"settingsThemeEnableDynamicColor": "Dynamische kleur", "settingsThemeEnableDynamicColor": "Dynamische kleur",
"settingsDisplayRefreshRateModeTile": "Vernieuwingsfrequentie weergeven", "settingsDisplayRefreshRateModeTile": "Vernieuwingsfrequentie weergeven",
"settingsDisplayRefreshRateModeTitle": "Vernieuwingsfrequentie", "settingsDisplayRefreshRateModeDialogTitle": "Vernieuwingsfrequentie",
"settingsSectionLanguage": "Taal & landinstellingen", "settingsLanguageSectionTitle": "Taal & landinstellingen",
"settingsLanguage": "Taal", "settingsLanguageTile": "Taal",
"settingsCoordinateFormatTile": "Coördineer formaat", "settingsLanguagePageTitle": "Taal",
"settingsCoordinateFormatTitle": "Coördineer formaat", "settingsCoordinateFormatTile": "Coördinaten format",
"settingsCoordinateFormatDialogTitle": "Coördinaten format",
"settingsUnitSystemTile": "Eenheden", "settingsUnitSystemTile": "Eenheden",
"settingsUnitSystemTitle": "Eenheden", "settingsUnitSystemDialogTitle": "Eenheden",
"settingsScreenSaverPageTitle": "Schermbeveiliging", "settingsScreenSaverPageTitle": "Schermbeveiliging",
"settingsWidgetPageTitle": "Foto Lijstje", "settingsWidgetPageTitle": "Foto Lijstje",
"settingsWidgetShowOutline": "Contour", "settingsWidgetShowOutline": "Contour",
"settingsCollectionTile": "Verzameling",
"statsPageTitle": "Stats", "statsPageTitle": "Stats",
"statsWithGps": "{count, plural, =1{1 item met locatie} other{{count} items met locatie}}", "statsWithGps": "{count, plural, =1{1 item met locatie} other{{count} items met locatie}}",
"statsTopCountries": "Top Landen", "statsTopCountriesSectionTitle": "Top Landen",
"statsTopPlaces": "Top Plaatsen", "statsTopPlacesSectionTitle": "Top Plaatsen",
"statsTopTags": "Top Labels", "statsTopTagsSectionTitle": "Top Labels",
"viewerOpenPanoramaButtonLabel": "OPEN PANORAMA", "viewerOpenPanoramaButtonLabel": "OPEN PANORAMA",
"viewerSetWallpaperButtonLabel": "ALS ACHTERGROND INSTELLEN", "viewerSetWallpaperButtonLabel": "ALS ACHTERGROND INSTELLEN",
@ -614,6 +630,7 @@
"viewerInfoBackToViewerTooltip": "Terug naar viewer", "viewerInfoBackToViewerTooltip": "Terug naar viewer",
"viewerInfoUnknown": "onbekendd", "viewerInfoUnknown": "onbekendd",
"viewerInfoLabelDescription": "Omschrijving",
"viewerInfoLabelTitle": "Titel", "viewerInfoLabelTitle": "Titel",
"viewerInfoLabelDate": "Datum", "viewerInfoLabelDate": "Datum",
"viewerInfoLabelResolution": "Resolutie", "viewerInfoLabelResolution": "Resolutie",
@ -625,7 +642,7 @@
"viewerInfoLabelCoordinates": "Coördinaten", "viewerInfoLabelCoordinates": "Coördinaten",
"viewerInfoLabelAddress": "Adres", "viewerInfoLabelAddress": "Adres",
"mapStyleTitle": "Kaartstijl", "mapStyleDialogTitle": "Kaartstijl",
"mapStyleTooltip": "Selecteer kaart stijl", "mapStyleTooltip": "Selecteer kaart stijl",
"mapZoomInTooltip": "Inzoomen", "mapZoomInTooltip": "Inzoomen",
"mapZoomOutTooltip": "Uitzoomen", "mapZoomOutTooltip": "Uitzoomen",

View file

@ -27,6 +27,7 @@
"actionRemove": "Remover", "actionRemove": "Remover",
"resetTooltip": "Resetar", "resetTooltip": "Resetar",
"saveTooltip": "Salve", "saveTooltip": "Salve",
"pickTooltip": "Escolher",
"doubleBackExitMessage": "Toque em “voltar” novamente para sair.", "doubleBackExitMessage": "Toque em “voltar” novamente para sair.",
"doNotAskAgain": "Não pergunte novamente", "doNotAskAgain": "Não pergunte novamente",
@ -87,18 +88,17 @@
"entryInfoActionEditDate": "Editar data e hora", "entryInfoActionEditDate": "Editar data e hora",
"entryInfoActionEditLocation": "Editar localização", "entryInfoActionEditLocation": "Editar localização",
"entryInfoActionEditDescription": "Editar descrição",
"entryInfoActionEditRating": "Editar classificação", "entryInfoActionEditRating": "Editar classificação",
"entryInfoActionEditTags": "Editar etiquetas", "entryInfoActionEditTags": "Editar etiquetas",
"entryInfoActionRemoveMetadata": "Remover metadados", "entryInfoActionRemoveMetadata": "Remover metadados",
"filterBinLabel": "Lixeira", "filterBinLabel": "Lixeira",
"filterFavouriteLabel": "Favorito", "filterFavouriteLabel": "Favorito",
"filterLocationEmptyLabel": "Não localizado", "filterNoLocationLabel": "Não localizado",
"filterTagEmptyLabel": "Sem etiqueta", "filterNoRatingLabel": "Sem classificação",
"filterNoTagLabel": "Sem etiqueta",
"filterOnThisDayLabel": "Neste dia", "filterOnThisDayLabel": "Neste dia",
"filterRecentlyAddedLabel": "Adicionado recentemente", "filterRecentlyAddedLabel": "Adicionado recentemente",
"filterRatingUnratedLabel": "Sem classificação",
"filterRatingRejectedLabel": "Rejeitado", "filterRatingRejectedLabel": "Rejeitado",
"filterTypeAnimatedLabel": "Animado", "filterTypeAnimatedLabel": "Animado",
"filterTypeMotionPhotoLabel": "Foto em movimento", "filterTypeMotionPhotoLabel": "Foto em movimento",
@ -179,16 +179,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "cartão SD", "storageVolumeDescriptionFallbackNonPrimary": "cartão SD",
"rootDirectoryDescription": "diretório raiz", "rootDirectoryDescription": "diretório raiz",
"otherDirectoryDescription": "diretório “{name}”", "otherDirectoryDescription": "diretório “{name}”",
"storageAccessDialogTitle": "Acesso de armazenamento",
"storageAccessDialogMessage": "Selecione o {directory} de “{volume}” na próxima tela para dar acesso a este aplicativo.", "storageAccessDialogMessage": "Selecione o {directory} de “{volume}” na próxima tela para dar acesso a este aplicativo.",
"restrictedAccessDialogTitle": "Acesso restrito",
"restrictedAccessDialogMessage": "Este aplicativo não tem permissão para modificar arquivos no {directory} de “{volume}”.\n\nUse um gerenciador de arquivos ou aplicativo de galeria pré-instalado para mover os itens para outro diretório.", "restrictedAccessDialogMessage": "Este aplicativo não tem permissão para modificar arquivos no {directory} de “{volume}”.\n\nUse um gerenciador de arquivos ou aplicativo de galeria pré-instalado para mover os itens para outro diretório.",
"notEnoughSpaceDialogTitle": "Espaço insuficiente",
"notEnoughSpaceDialogMessage": "Esta operação precisa {neededSize} de espaço livre em “{volume}” para completar, mas só {freeSize} restantes.", "notEnoughSpaceDialogMessage": "Esta operação precisa {neededSize} de espaço livre em “{volume}” para completar, mas só {freeSize} restantes.",
"missingSystemFilePickerDialogTitle": "Seletor de arquivos do sistema ausente",
"missingSystemFilePickerDialogMessage": "O seletor de arquivos do sistema está ausente ou desabilitado. Por favor, habilite e tente novamente.", "missingSystemFilePickerDialogMessage": "O seletor de arquivos do sistema está ausente ou desabilitado. Por favor, habilite e tente novamente.",
"unsupportedTypeDialogTitle": "Tipos não suportados",
"unsupportedTypeDialogMessage": "{count, plural, =1{Esta operação não é suportada para itens do seguinte tipo: {types}.} other{Esta operação não é suportada para itens dos seguintes tipos: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, =1{Esta operação não é suportada para itens do seguinte tipo: {types}.} other{Esta operação não é suportada para itens dos seguintes tipos: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Alguns arquivos na pasta de destino têm o mesmo nome.", "nameConflictDialogSingleSourceMessage": "Alguns arquivos na pasta de destino têm o mesmo nome.",
@ -197,7 +192,6 @@
"addShortcutDialogLabel": "Rótulo de atalho", "addShortcutDialogLabel": "Rótulo de atalho",
"addShortcutButtonLabel": "ADICIONAR", "addShortcutButtonLabel": "ADICIONAR",
"noMatchingAppDialogTitle": "Nenhum aplicativo correspondente",
"noMatchingAppDialogMessage": "Não há aplicativos que possam lidar com isso.", "noMatchingAppDialogMessage": "Não há aplicativos que possam lidar com isso.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Mover esse item para a lixeira?} other{Mova estes {count} itens para a lixeira?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Mover esse item para a lixeira?} other{Mova estes {count} itens para a lixeira?}}",
@ -226,7 +220,7 @@
"renameEntrySetPageTitle": "Renomear", "renameEntrySetPageTitle": "Renomear",
"renameEntrySetPagePatternFieldLabel": "Padrão de nomeação", "renameEntrySetPagePatternFieldLabel": "Padrão de nomeação",
"renameEntrySetPageInsertTooltip": "Inserir campo", "renameEntrySetPageInsertTooltip": "Inserir campo",
"renameEntrySetPagePreview": "Visualizar", "renameEntrySetPagePreviewSectionTitle": "Visualizar",
"renameProcessorCounter": "Contador", "renameProcessorCounter": "Contador",
"renameProcessorName": "Nome", "renameProcessorName": "Nome",
@ -259,8 +253,6 @@
"locationPickerUseThisLocationButton": "Usar essa localização", "locationPickerUseThisLocationButton": "Usar essa localização",
"editEntryDescriptionDialogTitle": "Descrição",
"editEntryRatingDialogTitle": "Avaliação", "editEntryRatingDialogTitle": "Avaliação",
"removeEntryMetadataDialogTitle": "Remoção de metadados", "removeEntryMetadataDialogTitle": "Remoção de metadados",
@ -289,9 +281,9 @@
"menuActionSlideshow": "Apresentação de slides", "menuActionSlideshow": "Apresentação de slides",
"menuActionStats": "Estatísticas", "menuActionStats": "Estatísticas",
"viewDialogTabSort": "Organizar", "viewDialogSortSectionTitle": "Organizar",
"viewDialogTabGroup": "Grupo", "viewDialogGroupSectionTitle": "Grupo",
"viewDialogTabLayout": "Layout", "viewDialogLayoutSectionTitle": "Layout",
"tileLayoutGrid": "Grid", "tileLayoutGrid": "Grid",
"tileLayoutList": "Lista", "tileLayoutList": "Lista",
@ -308,24 +300,24 @@
"aboutLinkLicense": "Licença", "aboutLinkLicense": "Licença",
"aboutLinkPolicy": "Política de Privacidade", "aboutLinkPolicy": "Política de Privacidade",
"aboutBug": "Relatório de erro", "aboutBugSectionTitle": "Relatório de erro",
"aboutBugSaveLogInstruction": "Salvar registros de aplicativos em um arquivo", "aboutBugSaveLogInstruction": "Salvar registros de aplicativos em um arquivo",
"aboutBugCopyInfoInstruction": "Copiar informações do sistema", "aboutBugCopyInfoInstruction": "Copiar informações do sistema",
"aboutBugCopyInfoButton": "Copiar", "aboutBugCopyInfoButton": "Copiar",
"aboutBugReportInstruction": "Relatório no GitHub com os logs e informações do sistema", "aboutBugReportInstruction": "Relatório no GitHub com os logs e informações do sistema",
"aboutBugReportButton": "Relatório", "aboutBugReportButton": "Relatório",
"aboutCredits": "Créditos", "aboutCreditsSectionTitle": "Créditos",
"aboutCreditsWorldAtlas1": "Este aplicativo usa um arquivo de TopoJSON", "aboutCreditsWorldAtlas1": "Este aplicativo usa um arquivo de TopoJSON",
"aboutCreditsWorldAtlas2": "sob licença ISC.", "aboutCreditsWorldAtlas2": "sob licença ISC.",
"aboutCreditsTranslators": "Tradutores", "aboutTranslatorsSectionTitle": "Tradutores",
"aboutLicenses": "Licenças de código aberto", "aboutLicensesSectionTitle": "Licenças de código aberto",
"aboutLicensesBanner": "Este aplicativo usa os seguintes pacotes e bibliotecas de código aberto.", "aboutLicensesBanner": "Este aplicativo usa os seguintes pacotes e bibliotecas de código aberto.",
"aboutLicensesAndroidLibraries": "Bibliotecas Android", "aboutLicensesAndroidLibrariesSectionTitle": "Bibliotecas Android",
"aboutLicensesFlutterPlugins": "Plug-ins Flutter", "aboutLicensesFlutterPluginsSectionTitle": "Plug-ins Flutter",
"aboutLicensesFlutterPackages": "Pacotes Flutter", "aboutLicensesFlutterPackagesSectionTitle": "Pacotes Flutter",
"aboutLicensesDartPackages": "Pacotes Dart", "aboutLicensesDartPackagesSectionTitle": "Pacotes Dart",
"aboutLicensesShowAllButtonLabel": "Mostrar todas as licenças", "aboutLicensesShowAllButtonLabel": "Mostrar todas as licenças",
"policyPageTitle": "Política de Privacidade", "policyPageTitle": "Política de Privacidade",
@ -345,11 +337,6 @@
"collectionSearchTitlesHintText": "Pesquisar títulos", "collectionSearchTitlesHintText": "Pesquisar títulos",
"collectionSortDate": "Por data",
"collectionSortSize": "Por tamanho",
"collectionSortName": "Por álbum e nome de arquivo",
"collectionSortRating": "Por classificação",
"collectionGroupAlbum": "Por álbum", "collectionGroupAlbum": "Por álbum",
"collectionGroupMonth": "Por mês", "collectionGroupMonth": "Por mês",
"collectionGroupDay": "Por dia", "collectionGroupDay": "Por dia",
@ -378,6 +365,8 @@
"collectionSelectSectionTooltip": "Selecionar seção", "collectionSelectSectionTooltip": "Selecionar seção",
"collectionDeselectSectionTooltip": "Desmarcar seção", "collectionDeselectSectionTooltip": "Desmarcar seção",
"drawerAboutButton": "Sobre",
"drawerSettingsButton": "Configurações",
"drawerCollectionAll": "Toda a coleção", "drawerCollectionAll": "Toda a coleção",
"drawerCollectionFavourites": "Favoritos", "drawerCollectionFavourites": "Favoritos",
"drawerCollectionImages": "Imagens", "drawerCollectionImages": "Imagens",
@ -387,10 +376,16 @@
"drawerCollectionPanoramas": "Panoramas", "drawerCollectionPanoramas": "Panoramas",
"drawerCollectionRaws": "Fotos Raw", "drawerCollectionRaws": "Fotos Raw",
"drawerCollectionSphericalVideos": "360° Videos", "drawerCollectionSphericalVideos": "360° Videos",
"drawerAlbumPage": "Álbuns",
"drawerCountryPage": "Países",
"drawerTagPage": "Etiquetas",
"chipSortDate": "Por data", "sortByDate": "Por data",
"chipSortName": "Por nome", "sortByName": "Por nome",
"chipSortCount": "Por contagem de itens", "sortByItemCount": "Por contagem de itens",
"sortBySize": "Por tamanho",
"sortByAlbumFileName": "Por álbum e nome de arquivo",
"sortByRating": "Por classificação",
"albumGroupTier": "Por nível", "albumGroupTier": "Por nível",
"albumGroupVolume": "Por volume de armazenamento", "albumGroupVolume": "Por volume de armazenamento",
@ -422,13 +417,13 @@
"binPageTitle": "Lixeira", "binPageTitle": "Lixeira",
"searchCollectionFieldHint": "Pesquisar coleção", "searchCollectionFieldHint": "Pesquisar coleção",
"searchSectionRecent": "Recente", "searchRecentSectionTitle": "Recente",
"searchSectionDate": "Data", "searchDateSectionTitle": "Data",
"searchSectionAlbums": "Álbuns", "searchAlbumsSectionTitle": "Álbuns",
"searchSectionCountries": "Países", "searchCountriesSectionTitle": "Países",
"searchSectionPlaces": "Locais", "searchPlacesSectionTitle": "Locais",
"searchSectionTags": "Etiquetas", "searchTagsSectionTitle": "Etiquetas",
"searchSectionRating": "Classificações", "searchRatingSectionTitle": "Classificações",
"settingsPageTitle": "Configurações", "settingsPageTitle": "Configurações",
"settingsSystemDefault": "Sistema", "settingsSystemDefault": "Sistema",
@ -437,37 +432,40 @@
"settingsSearchFieldLabel": "Pesquisar configuração", "settingsSearchFieldLabel": "Pesquisar configuração",
"settingsSearchEmpty": "Nenhuma configuração correspondente", "settingsSearchEmpty": "Nenhuma configuração correspondente",
"settingsActionExport": "Exportar", "settingsActionExport": "Exportar",
"settingsActionExportDialogTitle": "Exportar",
"settingsActionImport": "Importar", "settingsActionImport": "Importar",
"settingsActionImportDialogTitle": "Importar",
"appExportCovers": "Capas", "appExportCovers": "Capas",
"appExportFavourites": "Favoritos", "appExportFavourites": "Favoritos",
"appExportSettings": "Configurações", "appExportSettings": "Configurações",
"settingsSectionNavigation": "Navegação", "settingsNavigationSectionTitle": "Navegação",
"settingsHome": "Início", "settingsHomeTile": "Início",
"settingsHomeDialogTitle": "Início",
"settingsShowBottomNavigationBar": "Mostrar barra de navegação inferior", "settingsShowBottomNavigationBar": "Mostrar barra de navegação inferior",
"settingsKeepScreenOnTile": "Manter a tela ligada", "settingsKeepScreenOnTile": "Manter a tela ligada",
"settingsKeepScreenOnTitle": "Manter a tela ligada", "settingsKeepScreenOnDialogTitle": "Manter a tela ligada",
"settingsDoubleBackExit": "Toque em “voltar” duas vezes para sair", "settingsDoubleBackExit": "Toque em “voltar” duas vezes para sair",
"settingsConfirmationDialogTile": "Caixas de diálogo de confirmação", "settingsConfirmationTile": "Caixas de diálogo de confirmação",
"settingsConfirmationDialogTitle": "Caixas de diálogo de confirmação", "settingsConfirmationDialogTitle": "Caixas de diálogo de confirmação",
"settingsConfirmationDialogDeleteItems": "Pergunte antes de excluir itens para sempre", "settingsConfirmationBeforeDeleteItems": "Pergunte antes de excluir itens para sempre",
"settingsConfirmationDialogMoveToBinItems": "Pergunte antes de mover itens para a lixeira", "settingsConfirmationBeforeMoveToBinItems": "Pergunte antes de mover itens para a lixeira",
"settingsConfirmationDialogMoveUndatedItems": "Pergunte antes de mover itens sem data de metadados", "settingsConfirmationBeforeMoveUndatedItems": "Pergunte antes de mover itens sem data de metadados",
"settingsConfirmationAfterMoveToBinItems": "Mostrar mensagem depois de mover itens para a lixeira", "settingsConfirmationAfterMoveToBinItems": "Mostrar mensagem depois de mover itens para a lixeira",
"settingsNavigationDrawerTile": "Menu de navegação", "settingsNavigationDrawerTile": "Menu de navegação",
"settingsNavigationDrawerEditorTitle": "Menu de navegação", "settingsNavigationDrawerEditorPageTitle": "Menu de navegação",
"settingsNavigationDrawerBanner": "Toque e segure para mover e reordenar os itens do menu.", "settingsNavigationDrawerBanner": "Toque e segure para mover e reordenar os itens do menu.",
"settingsNavigationDrawerTabTypes": "Tipos", "settingsNavigationDrawerTabTypes": "Tipos",
"settingsNavigationDrawerTabAlbums": "Álbuns", "settingsNavigationDrawerTabAlbums": "Álbuns",
"settingsNavigationDrawerTabPages": "Páginas", "settingsNavigationDrawerTabPages": "Páginas",
"settingsNavigationDrawerAddAlbum": "Adicionar álbum", "settingsNavigationDrawerAddAlbum": "Adicionar álbum",
"settingsSectionThumbnails": "Miniaturas", "settingsThumbnailSectionTitle": "Miniaturas",
"settingsThumbnailOverlayTile": "Sobreposição", "settingsThumbnailOverlayTile": "Sobreposição",
"settingsThumbnailOverlayTitle": "Sobreposição", "settingsThumbnailOverlayPageTitle": "Sobreposição",
"settingsThumbnailShowFavouriteIcon": "Mostrar ícone favorito", "settingsThumbnailShowFavouriteIcon": "Mostrar ícone favorito",
"settingsThumbnailShowTagIcon": "Mostrar ícone de etiqueta", "settingsThumbnailShowTagIcon": "Mostrar ícone de etiqueta",
"settingsThumbnailShowLocationIcon": "Mostrar ícone de localização", "settingsThumbnailShowLocationIcon": "Mostrar ícone de localização",
@ -477,13 +475,13 @@
"settingsThumbnailShowVideoDuration": "Mostrar duração do vídeo", "settingsThumbnailShowVideoDuration": "Mostrar duração do vídeo",
"settingsCollectionQuickActionsTile": "Ações rápidas", "settingsCollectionQuickActionsTile": "Ações rápidas",
"settingsCollectionQuickActionEditorTitle": "Ações rápidas", "settingsCollectionQuickActionEditorPageTitle": "Ações rápidas",
"settingsCollectionQuickActionTabBrowsing": "Navegando", "settingsCollectionQuickActionTabBrowsing": "Navegando",
"settingsCollectionQuickActionTabSelecting": "Selecionando", "settingsCollectionQuickActionTabSelecting": "Selecionando",
"settingsCollectionBrowsingQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas ao navegar pelos itens.", "settingsCollectionBrowsingQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas ao navegar pelos itens.",
"settingsCollectionSelectionQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas ao selecionar itens.", "settingsCollectionSelectionQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas ao selecionar itens.",
"settingsSectionViewer": "Visualizador", "settingsViewerSectionTitle": "Visualizador",
"settingsViewerGestureSideTapNext": "Toque nas bordas da tela para mostrar anterior/seguinte", "settingsViewerGestureSideTapNext": "Toque nas bordas da tela para mostrar anterior/seguinte",
"settingsViewerUseCutout": "Usar área de recorte", "settingsViewerUseCutout": "Usar área de recorte",
"settingsViewerMaximumBrightness": "Brilho máximo", "settingsViewerMaximumBrightness": "Brilho máximo",
@ -491,14 +489,14 @@
"settingsImageBackground": "Plano de fundo da imagem", "settingsImageBackground": "Plano de fundo da imagem",
"settingsViewerQuickActionsTile": "Ações rápidas", "settingsViewerQuickActionsTile": "Ações rápidas",
"settingsViewerQuickActionEditorTitle": "Ações rápidas", "settingsViewerQuickActionEditorPageTitle": "Ações rápidas",
"settingsViewerQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas no visualizador.", "settingsViewerQuickActionEditorBanner": "Toque e segure para mover os botões e selecionar quais ações são exibidas no visualizador.",
"settingsViewerQuickActionEditorDisplayedButtons": "Botões exibidos", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Botões exibidos",
"settingsViewerQuickActionEditorAvailableButtons": "Botões disponíveis", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Botões disponíveis",
"settingsViewerQuickActionEmpty": "Sem botões", "settingsViewerQuickActionEmpty": "Sem botões",
"settingsViewerOverlayTile": "Sobreposição", "settingsViewerOverlayTile": "Sobreposição",
"settingsViewerOverlayTitle": "Sobreposição", "settingsViewerOverlayPageTitle": "Sobreposição",
"settingsViewerShowOverlayOnOpening": "Mostrar na abertura", "settingsViewerShowOverlayOnOpening": "Mostrar na abertura",
"settingsViewerShowMinimap": "Mostrar minimapa", "settingsViewerShowMinimap": "Mostrar minimapa",
"settingsViewerShowInformation": "Mostrar informações", "settingsViewerShowInformation": "Mostrar informações",
@ -508,30 +506,30 @@
"settingsViewerEnableOverlayBlurEffect": "Efeito de desfoque", "settingsViewerEnableOverlayBlurEffect": "Efeito de desfoque",
"settingsViewerSlideshowTile": "Apresentação de slides", "settingsViewerSlideshowTile": "Apresentação de slides",
"settingsViewerSlideshowTitle": "Apresentação de slides", "settingsViewerSlideshowPageTitle": "Apresentação de slides",
"settingsSlideshowRepeat": "Repetir", "settingsSlideshowRepeat": "Repetir",
"settingsSlideshowShuffle": "Embaralhar", "settingsSlideshowShuffle": "Embaralhar",
"settingsSlideshowFillScreen": "Preencher tela", "settingsSlideshowFillScreen": "Preencher tela",
"settingsSlideshowTransitionTile": "Transição", "settingsSlideshowTransitionTile": "Transição",
"settingsSlideshowTransitionTitle": "Transição", "settingsSlideshowTransitionDialogTitle": "Transição",
"settingsSlideshowIntervalTile": "Intervalo", "settingsSlideshowIntervalTile": "Intervalo",
"settingsSlideshowIntervalTitle": "Intervalo", "settingsSlideshowIntervalDialogTitle": "Intervalo",
"settingsSlideshowVideoPlaybackTile": "Reprodução de vídeo", "settingsSlideshowVideoPlaybackTile": "Reprodução de vídeo",
"settingsSlideshowVideoPlaybackTitle": "Reprodução de vídeo", "settingsSlideshowVideoPlaybackDialogTitle": "Reprodução de vídeo",
"settingsVideoPageTitle": "Configurações de vídeo", "settingsVideoPageTitle": "Configurações de vídeo",
"settingsSectionVideo": "Vídeo", "settingsVideoSectionTitle": "Vídeo",
"settingsVideoShowVideos": "Mostrar vídeos", "settingsVideoShowVideos": "Mostrar vídeos",
"settingsVideoEnableHardwareAcceleration": "Aceleraçao do hardware", "settingsVideoEnableHardwareAcceleration": "Aceleraçao do hardware",
"settingsVideoEnableAutoPlay": "Reprodução automática", "settingsVideoEnableAutoPlay": "Reprodução automática",
"settingsVideoLoopModeTile": "Modo de loop", "settingsVideoLoopModeTile": "Modo de loop",
"settingsVideoLoopModeTitle": "Modo de loop", "settingsVideoLoopModeDialogTitle": "Modo de loop",
"settingsSubtitleThemeTile": "Legendas", "settingsSubtitleThemeTile": "Legendas",
"settingsSubtitleThemeTitle": "Legendas", "settingsSubtitleThemePageTitle": "Legendas",
"settingsSubtitleThemeSample": "Esta é uma amostra.", "settingsSubtitleThemeSample": "Esta é uma amostra.",
"settingsSubtitleThemeTextAlignmentTile": "Alinhamento de texto", "settingsSubtitleThemeTextAlignmentTile": "Alinhamento de texto",
"settingsSubtitleThemeTextAlignmentTitle": "Alinhamento de Texto", "settingsSubtitleThemeTextAlignmentDialogTitle": "Alinhamento de Texto",
"settingsSubtitleThemeTextSize": "Tamanho do texto", "settingsSubtitleThemeTextSize": "Tamanho do texto",
"settingsSubtitleThemeShowOutline": "Mostrar contorno e sombra", "settingsSubtitleThemeShowOutline": "Mostrar contorno e sombra",
"settingsSubtitleThemeTextColor": "Cor do texto", "settingsSubtitleThemeTextColor": "Cor do texto",
@ -543,13 +541,13 @@
"settingsSubtitleThemeTextAlignmentRight": "Direita", "settingsSubtitleThemeTextAlignmentRight": "Direita",
"settingsVideoControlsTile": "Controles", "settingsVideoControlsTile": "Controles",
"settingsVideoControlsTitle": "Controles", "settingsVideoControlsPageTitle": "Controles",
"settingsVideoButtonsTile": "Botões", "settingsVideoButtonsTile": "Botões",
"settingsVideoButtonsTitle": "Botões", "settingsVideoButtonsDialogTitle": "Botões",
"settingsVideoGestureDoubleTapTogglePlay": "Toque duas vezes para reproduzir/pausar", "settingsVideoGestureDoubleTapTogglePlay": "Toque duas vezes para reproduzir/pausar",
"settingsVideoGestureSideDoubleTapSeek": "Toque duas vezes nas bordas da tela buscar para trás/para frente", "settingsVideoGestureSideDoubleTapSeek": "Toque duas vezes nas bordas da tela buscar para trás/para frente",
"settingsSectionPrivacy": "Privacidade", "settingsPrivacySectionTitle": "Privacidade",
"settingsAllowInstalledAppAccess": "Permitir acesso ao inventário de aplicativos", "settingsAllowInstalledAppAccess": "Permitir acesso ao inventário de aplicativos",
"settingsAllowInstalledAppAccessSubtitle": "Usado para melhorar a exibição do álbum", "settingsAllowInstalledAppAccessSubtitle": "Usado para melhorar a exibição do álbum",
"settingsAllowErrorReporting": "Permitir relatórios de erros anônimos", "settingsAllowErrorReporting": "Permitir relatórios de erros anônimos",
@ -558,52 +556,56 @@
"settingsEnableBinSubtitle": "Manter itens excluídos por 30 dias", "settingsEnableBinSubtitle": "Manter itens excluídos por 30 dias",
"settingsHiddenItemsTile": "Itens ocultos", "settingsHiddenItemsTile": "Itens ocultos",
"settingsHiddenItemsTitle": "Itens ocultos", "settingsHiddenItemsPageTitle": "Itens ocultos",
"settingsHiddenFiltersTitle": "Filtros ocultos", "settingsHiddenItemsTabFilters": "Filtros ocultos",
"settingsHiddenFiltersBanner": "Fotos e vídeos que correspondem a filtros ocultos não aparecerão em sua coleção.", "settingsHiddenFiltersBanner": "Fotos e vídeos que correspondem a filtros ocultos não aparecerão em sua coleção.",
"settingsHiddenFiltersEmpty": "Sem filtros ocultos", "settingsHiddenFiltersEmpty": "Sem filtros ocultos",
"settingsHiddenPathsTitle": "Caminhos Ocultos", "settingsHiddenItemsTabPaths": "Caminhos Ocultos",
"settingsHiddenPathsBanner": "Fotos e vídeos nessas pastas, ou em qualquer uma de suas subpastas, não aparecerão em sua coleção.", "settingsHiddenPathsBanner": "Fotos e vídeos nessas pastas, ou em qualquer uma de suas subpastas, não aparecerão em sua coleção.",
"addPathTooltip": "Adicionar caminho", "addPathTooltip": "Adicionar caminho",
"settingsStorageAccessTile": "Acesso ao armazenamento", "settingsStorageAccessTile": "Acesso ao armazenamento",
"settingsStorageAccessTitle": "Acesso ao armazenamento", "settingsStorageAccessPageTitle": "Acesso ao armazenamento",
"settingsStorageAccessBanner": "Alguns diretórios exigem uma concessão de acesso explícito para modificar arquivos neles. Você pode revisar aqui os diretórios aos quais você deu acesso anteriormente.", "settingsStorageAccessBanner": "Alguns diretórios exigem uma concessão de acesso explícito para modificar arquivos neles. Você pode revisar aqui os diretórios aos quais você deu acesso anteriormente.",
"settingsStorageAccessEmpty": "Sem concessões de acesso", "settingsStorageAccessEmpty": "Sem concessões de acesso",
"settingsStorageAccessRevokeTooltip": "Revogar", "settingsStorageAccessRevokeTooltip": "Revogar",
"settingsSectionAccessibility": "Acessibilidade", "settingsAccessibilitySectionTitle": "Acessibilidade",
"settingsRemoveAnimationsTile": "Remover animações", "settingsRemoveAnimationsTile": "Remover animações",
"settingsRemoveAnimationsTitle": "Remover Animações", "settingsRemoveAnimationsDialogTitle": "Remover Animações",
"settingsTimeToTakeActionTile": "Tempo para executar uma ação", "settingsTimeToTakeActionTile": "Tempo para executar uma ação",
"settingsTimeToTakeActionTitle": "Tempo para executar uma ação", "settingsTimeToTakeActionDialogTitle": "Tempo para executar uma ação",
"settingsSectionDisplay": "Tela", "settingsDisplaySectionTitle": "Tela",
"settingsThemeBrightness": "Tema", "settingsThemeBrightnessTile": "Tema",
"settingsThemeBrightnessDialogTitle": "Tema",
"settingsThemeColorHighlights": "Destaques de cores", "settingsThemeColorHighlights": "Destaques de cores",
"settingsThemeEnableDynamicColor": "Cor dinâmica", "settingsThemeEnableDynamicColor": "Cor dinâmica",
"settingsDisplayRefreshRateModeTile": "Taxa de atualização de exibição", "settingsDisplayRefreshRateModeTile": "Taxa de atualização de exibição",
"settingsDisplayRefreshRateModeTitle": "Taxa de atualização", "settingsDisplayRefreshRateModeDialogTitle": "Taxa de atualização",
"settingsSectionLanguage": "Idioma e Formatos", "settingsLanguageSectionTitle": "Idioma e Formatos",
"settingsLanguage": "Língua", "settingsLanguageTile": "Língua",
"settingsLanguagePageTitle": "Língua",
"settingsCoordinateFormatTile": "Formato de coordenadas", "settingsCoordinateFormatTile": "Formato de coordenadas",
"settingsCoordinateFormatTitle": "Formato de coordenadas", "settingsCoordinateFormatDialogTitle": "Formato de coordenadas",
"settingsUnitSystemTile": "Unidades", "settingsUnitSystemTile": "Unidades",
"settingsUnitSystemTitle": "Unidades", "settingsUnitSystemDialogTitle": "Unidades",
"settingsScreenSaverPageTitle": "Protetor de tela", "settingsScreenSaverPageTitle": "Protetor de tela",
"settingsWidgetPageTitle": "Porta-retratos", "settingsWidgetPageTitle": "Porta-retratos",
"settingsWidgetShowOutline": "Contorno", "settingsWidgetShowOutline": "Contorno",
"settingsCollectionTile": "Coleção",
"statsPageTitle": "Estatísticas", "statsPageTitle": "Estatísticas",
"statsWithGps": "{count, plural, =1{1 item com localização} other{{count} itens com localização}}", "statsWithGps": "{count, plural, =1{1 item com localização} other{{count} itens com localização}}",
"statsTopCountries": "Principais Países", "statsTopCountriesSectionTitle": "Principais Países",
"statsTopPlaces": "Principais Lugares", "statsTopPlacesSectionTitle": "Principais Lugares",
"statsTopTags": "Principais Etiquetas", "statsTopTagsSectionTitle": "Principais Etiquetas",
"viewerOpenPanoramaButtonLabel": "ABRIR PANORAMA", "viewerOpenPanoramaButtonLabel": "ABRIR PANORAMA",
"viewerSetWallpaperButtonLabel": "DEFINIR PAPEL DE PAREDE", "viewerSetWallpaperButtonLabel": "DEFINIR PAPEL DE PAREDE",
@ -614,6 +616,7 @@
"viewerInfoBackToViewerTooltip": "Voltar ao visualizador", "viewerInfoBackToViewerTooltip": "Voltar ao visualizador",
"viewerInfoUnknown": "desconhecido", "viewerInfoUnknown": "desconhecido",
"viewerInfoLabelDescription": "Descrição",
"viewerInfoLabelTitle": "Título", "viewerInfoLabelTitle": "Título",
"viewerInfoLabelDate": "Data", "viewerInfoLabelDate": "Data",
"viewerInfoLabelResolution": "Resolução", "viewerInfoLabelResolution": "Resolução",
@ -625,7 +628,7 @@
"viewerInfoLabelCoordinates": "Coordenadas", "viewerInfoLabelCoordinates": "Coordenadas",
"viewerInfoLabelAddress": "Endereço", "viewerInfoLabelAddress": "Endereço",
"mapStyleTitle": "Estilo do mapa", "mapStyleDialogTitle": "Estilo do mapa",
"mapStyleTooltip": "Selecione o estilo do mapa", "mapStyleTooltip": "Selecione o estilo do mapa",
"mapZoomInTooltip": "Mais zoom", "mapZoomInTooltip": "Mais zoom",
"mapZoomOutTooltip": "Reduzir o zoom", "mapZoomOutTooltip": "Reduzir o zoom",

View file

@ -27,6 +27,7 @@
"actionRemove": "Удалить", "actionRemove": "Удалить",
"resetTooltip": "Сбросить", "resetTooltip": "Сбросить",
"saveTooltip": "Сохранить", "saveTooltip": "Сохранить",
"pickTooltip": "Выбрать",
"doubleBackExitMessage": "Нажмите «Назад» еще раз, чтобы выйти.", "doubleBackExitMessage": "Нажмите «Назад» еще раз, чтобы выйти.",
"doNotAskAgain": "Больше не спрашивать", "doNotAskAgain": "Больше не спрашивать",
@ -87,15 +88,20 @@
"entryInfoActionEditDate": "Изменить дату и время", "entryInfoActionEditDate": "Изменить дату и время",
"entryInfoActionEditLocation": "Изменить местоположение", "entryInfoActionEditLocation": "Изменить местоположение",
"entryInfoActionEditTitleDescription": "Изменить название & описание",
"entryInfoActionEditRating": "Изменить рейтинг", "entryInfoActionEditRating": "Изменить рейтинг",
"entryInfoActionEditTags": "Изменить теги", "entryInfoActionEditTags": "Изменить теги",
"entryInfoActionRemoveMetadata": "Удалить метаданные", "entryInfoActionRemoveMetadata": "Удалить метаданные",
"filterBinLabel": "Корзина", "filterBinLabel": "Корзина",
"filterFavouriteLabel": "Избранное", "filterFavouriteLabel": "Избранное",
"filterLocationEmptyLabel": "Без местоположения", "filterNoDateLabel": "Без даты",
"filterTagEmptyLabel": "Без тегов", "filterNoLocationLabel": "Без местоположения",
"filterRatingUnratedLabel": "Без рейтинга", "filterNoRatingLabel": "Без рейтинга",
"filterNoTagLabel": "Без тегов",
"filterNoTitleLabel": "Без названия",
"filterOnThisDayLabel": "В этот день",
"filterRecentlyAddedLabel": "Недавно добавленные",
"filterRatingRejectedLabel": "Отклонённое", "filterRatingRejectedLabel": "Отклонённое",
"filterTypeAnimatedLabel": "GIF", "filterTypeAnimatedLabel": "GIF",
"filterTypeMotionPhotoLabel": "Живое фото", "filterTypeMotionPhotoLabel": "Живое фото",
@ -176,16 +182,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "SD-карта", "storageVolumeDescriptionFallbackNonPrimary": "SD-карта",
"rootDirectoryDescription": "корневой каталог", "rootDirectoryDescription": "корневой каталог",
"otherDirectoryDescription": "каталог «{name}»", "otherDirectoryDescription": "каталог «{name}»",
"storageAccessDialogTitle": "Доступ к хранилищу",
"storageAccessDialogMessage": "Пожалуйста, выберите {directory} на накопителе «{volume}» на следующем экране, чтобы предоставить этому приложению доступ к нему.", "storageAccessDialogMessage": "Пожалуйста, выберите {directory} на накопителе «{volume}» на следующем экране, чтобы предоставить этому приложению доступ к нему.",
"restrictedAccessDialogTitle": "Ограниченный доступ",
"restrictedAccessDialogMessage": "Этому приложению не разрешается изменять файлы в каталоге {directory} накопителя «{volume}».\n\nПожалуйста, используйте предустановленный файловый менеджер или галерею, чтобы переместить объекты в другой каталог.", "restrictedAccessDialogMessage": "Этому приложению не разрешается изменять файлы в каталоге {directory} накопителя «{volume}».\n\nПожалуйста, используйте предустановленный файловый менеджер или галерею, чтобы переместить объекты в другой каталог.",
"notEnoughSpaceDialogTitle": "Недостаточно свободного места.",
"notEnoughSpaceDialogMessage": "Для завершения этой операции требуется {neededSize} свободного места на «{volume}», но осталось только {freeSize}.", "notEnoughSpaceDialogMessage": "Для завершения этой операции требуется {neededSize} свободного места на «{volume}», но осталось только {freeSize}.",
"missingSystemFilePickerDialogTitle": "Отсутствует системное приложение выбора файлов",
"missingSystemFilePickerDialogMessage": "Системное приложение выбора файлов отсутствует или отключено. Пожалуйста, включите его и повторите попытку.", "missingSystemFilePickerDialogMessage": "Системное приложение выбора файлов отсутствует или отключено. Пожалуйста, включите его и повторите попытку.",
"unsupportedTypeDialogTitle": "Неподдерживаемые форматы",
"unsupportedTypeDialogMessage": "{count, plural, =1{Эта операция не поддерживается для объектов следующего формата: {types}.} other{Эта операция не поддерживается для объектов следующих форматов: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, =1{Эта операция не поддерживается для объектов следующего формата: {types}.} other{Эта операция не поддерживается для объектов следующих форматов: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Некоторые файлы в папке назначения имеют одно и то же имя.", "nameConflictDialogSingleSourceMessage": "Некоторые файлы в папке назначения имеют одно и то же имя.",
@ -194,7 +195,6 @@
"addShortcutDialogLabel": "Название ярлыка", "addShortcutDialogLabel": "Название ярлыка",
"addShortcutButtonLabel": "СОЗДАТЬ", "addShortcutButtonLabel": "СОЗДАТЬ",
"noMatchingAppDialogTitle": "Нет подходящего приложения",
"noMatchingAppDialogMessage": "Нет приложений, которые могли бы с этим справиться.", "noMatchingAppDialogMessage": "Нет приложений, которые могли бы с этим справиться.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Переместить этот объект в корзину?} few{Переместить эти {count} объекта в корзину?} other{Переместить эти {count} объектов в корзину?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Переместить этот объект в корзину?} few{Переместить эти {count} объекта в корзину?} other{Переместить эти {count} объектов в корзину?}}",
@ -223,7 +223,7 @@
"renameEntrySetPageTitle": "Переименовать", "renameEntrySetPageTitle": "Переименовать",
"renameEntrySetPagePatternFieldLabel": "Образец наименования", "renameEntrySetPagePatternFieldLabel": "Образец наименования",
"renameEntrySetPageInsertTooltip": "Вставить поле", "renameEntrySetPageInsertTooltip": "Вставить поле",
"renameEntrySetPagePreview": "Предпросмотр", "renameEntrySetPagePreviewSectionTitle": "Предпросмотр",
"renameProcessorCounter": "Счётчик", "renameProcessorCounter": "Счётчик",
"renameProcessorName": "Название", "renameProcessorName": "Название",
@ -284,9 +284,10 @@
"menuActionSlideshow": "Слайд-шоу", "menuActionSlideshow": "Слайд-шоу",
"menuActionStats": "Статистика", "menuActionStats": "Статистика",
"viewDialogTabSort": "Сортировка", "viewDialogSortSectionTitle": "Сортировка",
"viewDialogTabGroup": "Группировка", "viewDialogGroupSectionTitle": "Группировка",
"viewDialogTabLayout": "Макет", "viewDialogLayoutSectionTitle": "Макет",
"viewDialogReverseSortOrder": "Обратный порядок сортировки",
"tileLayoutGrid": "Сетка", "tileLayoutGrid": "Сетка",
"tileLayoutList": "Список", "tileLayoutList": "Список",
@ -303,24 +304,24 @@
"aboutLinkLicense": "Лицензия", "aboutLinkLicense": "Лицензия",
"aboutLinkPolicy": "Политика конфиденциальности", "aboutLinkPolicy": "Политика конфиденциальности",
"aboutBug": "Отчет об ошибке", "aboutBugSectionTitle": "Отчет об ошибке",
"aboutBugSaveLogInstruction": "Сохраните логи приложения в файл", "aboutBugSaveLogInstruction": "Сохраните логи приложения в файл",
"aboutBugCopyInfoInstruction": "Скопируйте системную информацию", "aboutBugCopyInfoInstruction": "Скопируйте системную информацию",
"aboutBugCopyInfoButton": "Скопировать", "aboutBugCopyInfoButton": "Скопировать",
"aboutBugReportInstruction": "Отправьте отчёт об ошибке на GitHub вместе с логами и системной информацией", "aboutBugReportInstruction": "Отправьте отчёт об ошибке на GitHub вместе с логами и системной информацией",
"aboutBugReportButton": "Отправить", "aboutBugReportButton": "Отправить",
"aboutCredits": "Благодарности", "aboutCreditsSectionTitle": "Благодарности",
"aboutCreditsWorldAtlas1": "Это приложение использует файл TopoJSON из", "aboutCreditsWorldAtlas1": "Это приложение использует файл TopoJSON из",
"aboutCreditsWorldAtlas2": "под лицензией ISC.", "aboutCreditsWorldAtlas2": "под лицензией ISC.",
"aboutCreditsTranslators": "Переводчики", "aboutTranslatorsSectionTitle": "Переводчики",
"aboutLicenses": "Лицензии с открытым исходным кодом", "aboutLicensesSectionTitle": "Лицензии с открытым исходным кодом",
"aboutLicensesBanner": "Это приложение использует следующие пакеты и библиотеки с открытым исходным кодом.", "aboutLicensesBanner": "Это приложение использует следующие пакеты и библиотеки с открытым исходным кодом.",
"aboutLicensesAndroidLibraries": "Библиотеки Android", "aboutLicensesAndroidLibrariesSectionTitle": "Библиотеки Android",
"aboutLicensesFlutterPlugins": "Плагины Flutter", "aboutLicensesFlutterPluginsSectionTitle": "Плагины Flutter",
"aboutLicensesFlutterPackages": "Пакеты Flutter", "aboutLicensesFlutterPackagesSectionTitle": "Пакеты Flutter",
"aboutLicensesDartPackages": "Пакеты Dart", "aboutLicensesDartPackagesSectionTitle": "Пакеты Dart",
"aboutLicensesShowAllButtonLabel": "Показать все лицензии", "aboutLicensesShowAllButtonLabel": "Показать все лицензии",
"policyPageTitle": "Политика конфиденциальности", "policyPageTitle": "Политика конфиденциальности",
@ -340,11 +341,6 @@
"collectionSearchTitlesHintText": "Поиск заголовков", "collectionSearchTitlesHintText": "Поиск заголовков",
"collectionSortDate": "По дате",
"collectionSortSize": "По размеру",
"collectionSortName": "По имени альбома и файла",
"collectionSortRating": "По рейтингу",
"collectionGroupAlbum": "По альбому", "collectionGroupAlbum": "По альбому",
"collectionGroupMonth": "По месяцу", "collectionGroupMonth": "По месяцу",
"collectionGroupDay": "По дню", "collectionGroupDay": "По дню",
@ -373,6 +369,8 @@
"collectionSelectSectionTooltip": "Выбрать раздел", "collectionSelectSectionTooltip": "Выбрать раздел",
"collectionDeselectSectionTooltip": "Снять выбор с раздела", "collectionDeselectSectionTooltip": "Снять выбор с раздела",
"drawerAboutButton": "О нас",
"drawerSettingsButton": "Настройки",
"drawerCollectionAll": "Вся коллекция", "drawerCollectionAll": "Вся коллекция",
"drawerCollectionFavourites": "Избранное", "drawerCollectionFavourites": "Избранное",
"drawerCollectionImages": "Изображения", "drawerCollectionImages": "Изображения",
@ -382,10 +380,25 @@
"drawerCollectionPanoramas": "Панорамы", "drawerCollectionPanoramas": "Панорамы",
"drawerCollectionRaws": "RAW", "drawerCollectionRaws": "RAW",
"drawerCollectionSphericalVideos": "360° видео", "drawerCollectionSphericalVideos": "360° видео",
"drawerAlbumPage": "Альбомы",
"drawerCountryPage": "Страны",
"drawerTagPage": "Теги",
"chipSortDate": "По дате", "sortByDate": "По дате",
"chipSortName": "По названию", "sortByName": "По названию",
"chipSortCount": "По количеству объектов", "sortByItemCount": "По количеству объектов",
"sortBySize": "По размеру",
"sortByAlbumFileName": "По имени альбома и файла",
"sortByRating": "По рейтингу",
"sortOrderNewestFirst": "Сначала новые",
"sortOrderOldestFirst": "Сначала старые",
"sortOrderAtoZ": "От А до Я",
"sortOrderZtoA": "От Я до А",
"sortOrderHighestFirst": "Сначала с высоким",
"sortOrderLowestFirst": "Сначала с низким",
"sortOrderLargestFirst": "Сначала большие",
"sortOrderSmallestFirst": "Сначала маленькие",
"albumGroupTier": "По уровню", "albumGroupTier": "По уровню",
"albumGroupVolume": "По накопителю", "albumGroupVolume": "По накопителю",
@ -417,13 +430,14 @@
"binPageTitle": "Корзина", "binPageTitle": "Корзина",
"searchCollectionFieldHint": "Поиск по коллекции", "searchCollectionFieldHint": "Поиск по коллекции",
"searchSectionRecent": "Недавние", "searchRecentSectionTitle": "Недавние",
"searchSectionDate": "Дата", "searchDateSectionTitle": "Дата",
"searchSectionAlbums": "Альбомы", "searchAlbumsSectionTitle": "Альбомы",
"searchSectionCountries": "Страны", "searchCountriesSectionTitle": "Страны",
"searchSectionPlaces": "Локации", "searchPlacesSectionTitle": "Локации",
"searchSectionTags": "Теги", "searchTagsSectionTitle": "Теги",
"searchSectionRating": "Рейтинги", "searchRatingSectionTitle": "Рейтинги",
"searchMetadataSectionTitle": "Метаданные",
"settingsPageTitle": "Настройки", "settingsPageTitle": "Настройки",
"settingsSystemDefault": "Система", "settingsSystemDefault": "Система",
@ -432,36 +446,40 @@
"settingsSearchFieldLabel": "Поиск настроек", "settingsSearchFieldLabel": "Поиск настроек",
"settingsSearchEmpty": "Нет соответствующих настроек", "settingsSearchEmpty": "Нет соответствующих настроек",
"settingsActionExport": "Экспорт", "settingsActionExport": "Экспорт",
"settingsActionExportDialogTitle": "Экспорт",
"settingsActionImport": "Импорт", "settingsActionImport": "Импорт",
"settingsActionImportDialogTitle": "Импорт",
"appExportCovers": "Обложки", "appExportCovers": "Обложки",
"appExportFavourites": "Избранное", "appExportFavourites": "Избранное",
"appExportSettings": "Настройки", "appExportSettings": "Настройки",
"settingsSectionNavigation": "Навигация", "settingsNavigationSectionTitle": "Навигация",
"settingsHome": "Домашний каталог", "settingsHomeTile": "Домашний каталог",
"settingsHomeDialogTitle": "Домашний каталог",
"settingsShowBottomNavigationBar": "Показать нижнюю панель навигации", "settingsShowBottomNavigationBar": "Показать нижнюю панель навигации",
"settingsKeepScreenOnTile": "Держать экран включенным", "settingsKeepScreenOnTile": "Держать экран включенным",
"settingsKeepScreenOnTitle": "Держать экран включенным", "settingsKeepScreenOnDialogTitle": "Держать экран включенным",
"settingsDoubleBackExit": "Дважды нажмите «Назад», чтобы выйти", "settingsDoubleBackExit": "Дважды нажмите «Назад», чтобы выйти",
"settingsConfirmationDialogTile": "Диалоги подтверждения", "settingsConfirmationTile": "Диалоги подтверждения",
"settingsConfirmationDialogTitle": "Диалоги подтверждения", "settingsConfirmationDialogTitle": "Диалоги подтверждения",
"settingsConfirmationDialogDeleteItems": "Спросить, прежде чем удалять объекты навсегда", "settingsConfirmationBeforeDeleteItems": "Спросить, прежде чем удалять объекты навсегда",
"settingsConfirmationDialogMoveToBinItems": "Спросить, прежде чем перемещать объекты в корзину", "settingsConfirmationBeforeMoveToBinItems": "Спросить, прежде чем перемещать объекты в корзину",
"settingsConfirmationDialogMoveUndatedItems": "Спросить, прежде чем перемещать объекты без даты в метаданных", "settingsConfirmationBeforeMoveUndatedItems": "Спросить, прежде чем перемещать объекты без даты в метаданных",
"settingsConfirmationAfterMoveToBinItems": "Показывать сообщение после перемещения в корзину",
"settingsNavigationDrawerTile": "Навигационное меню", "settingsNavigationDrawerTile": "Навигационное меню",
"settingsNavigationDrawerEditorTitle": "Навигационное меню", "settingsNavigationDrawerEditorPageTitle": "Навигационное меню",
"settingsNavigationDrawerBanner": "Нажмите и удерживайте, чтобы переместить и изменить порядок пунктов меню.", "settingsNavigationDrawerBanner": "Нажмите и удерживайте, чтобы переместить и изменить порядок пунктов меню.",
"settingsNavigationDrawerTabTypes": "Типы", "settingsNavigationDrawerTabTypes": "Типы",
"settingsNavigationDrawerTabAlbums": "Альбомы", "settingsNavigationDrawerTabAlbums": "Альбомы",
"settingsNavigationDrawerTabPages": "Страницы", "settingsNavigationDrawerTabPages": "Страницы",
"settingsNavigationDrawerAddAlbum": "Добавить альбом", "settingsNavigationDrawerAddAlbum": "Добавить альбом",
"settingsSectionThumbnails": "Эскизы", "settingsThumbnailSectionTitle": "Эскизы",
"settingsThumbnailOverlayTile": "Наложение", "settingsThumbnailOverlayTile": "Наложение",
"settingsThumbnailOverlayTitle": "Наложение", "settingsThumbnailOverlayPageTitle": "Наложение",
"settingsThumbnailShowFavouriteIcon": "Показать значок избранного", "settingsThumbnailShowFavouriteIcon": "Показать значок избранного",
"settingsThumbnailShowTagIcon": "Показать значок тега", "settingsThumbnailShowTagIcon": "Показать значок тега",
"settingsThumbnailShowLocationIcon": "Показать значок местоположения", "settingsThumbnailShowLocationIcon": "Показать значок местоположения",
@ -471,27 +489,28 @@
"settingsThumbnailShowVideoDuration": "Показать продолжительность видео", "settingsThumbnailShowVideoDuration": "Показать продолжительность видео",
"settingsCollectionQuickActionsTile": "Быстрые действия", "settingsCollectionQuickActionsTile": "Быстрые действия",
"settingsCollectionQuickActionEditorTitle": "Быстрые действия", "settingsCollectionQuickActionEditorPageTitle": "Быстрые действия",
"settingsCollectionQuickActionTabBrowsing": "Просмотр", "settingsCollectionQuickActionTabBrowsing": "Просмотр",
"settingsCollectionQuickActionTabSelecting": "Выбор", "settingsCollectionQuickActionTabSelecting": "Выбор",
"settingsCollectionBrowsingQuickActionEditorBanner": "Нажмите и удерживайте для перемещения кнопок и выбора действий, отображаемых при просмотре объектов.", "settingsCollectionBrowsingQuickActionEditorBanner": "Нажмите и удерживайте для перемещения кнопок и выбора действий, отображаемых при просмотре объектов.",
"settingsCollectionSelectionQuickActionEditorBanner": "Нажмите и удерживайте, чтобы переместить кнопки и выбрать, какие действия будут отображаться при выборе элементов.", "settingsCollectionSelectionQuickActionEditorBanner": "Нажмите и удерживайте, чтобы переместить кнопки и выбрать, какие действия будут отображаться при выборе элементов.",
"settingsSectionViewer": "Просмотрщик", "settingsViewerSectionTitle": "Просмотрщик",
"settingsViewerGestureSideTapNext": "Нажатие на край экрана для перехода назад/вперед",
"settingsViewerUseCutout": "Использовать область выреза", "settingsViewerUseCutout": "Использовать область выреза",
"settingsViewerMaximumBrightness": "Максимальная яркость", "settingsViewerMaximumBrightness": "Максимальная яркость",
"settingsMotionPhotoAutoPlay": "Автовоспроизведение «живых фото»", "settingsMotionPhotoAutoPlay": "Автовоспроизведение «живых фото»",
"settingsImageBackground": "Фон изображения", "settingsImageBackground": "Фон изображения",
"settingsViewerQuickActionsTile": "Быстрые действия", "settingsViewerQuickActionsTile": "Быстрые действия",
"settingsViewerQuickActionEditorTitle": "Быстрые действия", "settingsViewerQuickActionEditorPageTitle": "Быстрые действия",
"settingsViewerQuickActionEditorBanner": "Нажмите и удерживайте для перемещения кнопок и выбора действий, отображаемых в просмотрщике.", "settingsViewerQuickActionEditorBanner": "Нажмите и удерживайте для перемещения кнопок и выбора действий, отображаемых в просмотрщике.",
"settingsViewerQuickActionEditorDisplayedButtons": "Отображаемые кнопки", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Отображаемые кнопки",
"settingsViewerQuickActionEditorAvailableButtons": "Доступные кнопки", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Доступные кнопки",
"settingsViewerQuickActionEmpty": "Нет кнопок", "settingsViewerQuickActionEmpty": "Нет кнопок",
"settingsViewerOverlayTile": "Наложение", "settingsViewerOverlayTile": "Наложение",
"settingsViewerOverlayTitle": "Наложение", "settingsViewerOverlayPageTitle": "Наложение",
"settingsViewerShowOverlayOnOpening": "Показать наложение при открытии", "settingsViewerShowOverlayOnOpening": "Показать наложение при открытии",
"settingsViewerShowMinimap": "Показать миникарту", "settingsViewerShowMinimap": "Показать миникарту",
"settingsViewerShowInformation": "Показать информацию", "settingsViewerShowInformation": "Показать информацию",
@ -501,29 +520,30 @@
"settingsViewerEnableOverlayBlurEffect": "Наложение эффекта размытия", "settingsViewerEnableOverlayBlurEffect": "Наложение эффекта размытия",
"settingsViewerSlideshowTile": "Слайд-шоу", "settingsViewerSlideshowTile": "Слайд-шоу",
"settingsViewerSlideshowTitle": "Слайд-шоу", "settingsViewerSlideshowPageTitle": "Слайд-шоу",
"settingsSlideshowRepeat": "Повтор", "settingsSlideshowRepeat": "Повтор",
"settingsSlideshowShuffle": "Вперемешку", "settingsSlideshowShuffle": "Вперемешку",
"settingsSlideshowFillScreen": "Полный экран",
"settingsSlideshowTransitionTile": "Эффект перехода", "settingsSlideshowTransitionTile": "Эффект перехода",
"settingsSlideshowTransitionTitle": "Эффект Перехода", "settingsSlideshowTransitionDialogTitle": "Эффект Перехода",
"settingsSlideshowIntervalTile": "Интервал", "settingsSlideshowIntervalTile": "Интервал",
"settingsSlideshowIntervalTitle": "Интервал", "settingsSlideshowIntervalDialogTitle": "Интервал",
"settingsSlideshowVideoPlaybackTile": "Проигрывание видео", "settingsSlideshowVideoPlaybackTile": "Проигрывание видео",
"settingsSlideshowVideoPlaybackTitle": "Проигрывание Видео", "settingsSlideshowVideoPlaybackDialogTitle": "Проигрывание Видео",
"settingsVideoPageTitle": "Настройки видео", "settingsVideoPageTitle": "Настройки видео",
"settingsSectionVideo": "Видео", "settingsVideoSectionTitle": "Видео",
"settingsVideoShowVideos": "Показать видео", "settingsVideoShowVideos": "Показать видео",
"settingsVideoEnableHardwareAcceleration": "Аппаратное ускорение", "settingsVideoEnableHardwareAcceleration": "Аппаратное ускорение",
"settingsVideoEnableAutoPlay": "Автозапуск воспроизведения", "settingsVideoEnableAutoPlay": "Автозапуск воспроизведения",
"settingsVideoLoopModeTile": "Циклический режим", "settingsVideoLoopModeTile": "Циклический режим",
"settingsVideoLoopModeTitle": "Цикличный режим", "settingsVideoLoopModeDialogTitle": "Цикличный режим",
"settingsSubtitleThemeTile": "Субтитры", "settingsSubtitleThemeTile": "Субтитры",
"settingsSubtitleThemeTitle": "Субтитры", "settingsSubtitleThemePageTitle": "Субтитры",
"settingsSubtitleThemeSample": "Образец.", "settingsSubtitleThemeSample": "Образец.",
"settingsSubtitleThemeTextAlignmentTile": "Выравнивание текста", "settingsSubtitleThemeTextAlignmentTile": "Выравнивание текста",
"settingsSubtitleThemeTextAlignmentTitle": "Выравнивание текста", "settingsSubtitleThemeTextAlignmentDialogTitle": "Выравнивание текста",
"settingsSubtitleThemeTextSize": "Размер текста", "settingsSubtitleThemeTextSize": "Размер текста",
"settingsSubtitleThemeShowOutline": "Показать контур и тень", "settingsSubtitleThemeShowOutline": "Показать контур и тень",
"settingsSubtitleThemeTextColor": "Цвет текста", "settingsSubtitleThemeTextColor": "Цвет текста",
@ -535,13 +555,13 @@
"settingsSubtitleThemeTextAlignmentRight": "По правой стороне", "settingsSubtitleThemeTextAlignmentRight": "По правой стороне",
"settingsVideoControlsTile": "Элементы управления", "settingsVideoControlsTile": "Элементы управления",
"settingsVideoControlsTitle": "Элементы управления", "settingsVideoControlsPageTitle": "Элементы управления",
"settingsVideoButtonsTile": "Кнопки", "settingsVideoButtonsTile": "Кнопки",
"settingsVideoButtonsTitle": "Кнопки", "settingsVideoButtonsDialogTitle": "Кнопки",
"settingsVideoGestureDoubleTapTogglePlay": "Двойное нажатие для воспроизведения/паузы", "settingsVideoGestureDoubleTapTogglePlay": "Двойное нажатие для воспроизведения/паузы",
"settingsVideoGestureSideDoubleTapSeek": "Двойное нажатие на края экрана для перехода назад/вперёд", "settingsVideoGestureSideDoubleTapSeek": "Двойное нажатие на края экрана для перехода назад/вперёд",
"settingsSectionPrivacy": "Конфиденциальность", "settingsPrivacySectionTitle": "Конфиденциальность",
"settingsAllowInstalledAppAccess": "Разрешить доступ к библиотеке приложения", "settingsAllowInstalledAppAccess": "Разрешить доступ к библиотеке приложения",
"settingsAllowInstalledAppAccessSubtitle": "Используется для улучшения отображения альбомов", "settingsAllowInstalledAppAccessSubtitle": "Используется для улучшения отображения альбомов",
"settingsAllowErrorReporting": "Разрешить анонимную отправку логов", "settingsAllowErrorReporting": "Разрешить анонимную отправку логов",
@ -550,49 +570,56 @@
"settingsEnableBinSubtitle": "Хранить удалённые объекты в течение 30 дней", "settingsEnableBinSubtitle": "Хранить удалённые объекты в течение 30 дней",
"settingsHiddenItemsTile": "Скрытые объекты", "settingsHiddenItemsTile": "Скрытые объекты",
"settingsHiddenItemsTitle": "Скрытые объекты", "settingsHiddenItemsPageTitle": "Скрытые объекты",
"settingsHiddenFiltersTitle": "Скрытые фильтры", "settingsHiddenItemsTabFilters": "Скрытые фильтры",
"settingsHiddenFiltersBanner": "Фотографии и видео, соответствующие скрытым фильтрам, не появятся в вашей коллекции.", "settingsHiddenFiltersBanner": "Фотографии и видео, соответствующие скрытым фильтрам, не появятся в вашей коллекции.",
"settingsHiddenFiltersEmpty": "Нет скрытых фильтров", "settingsHiddenFiltersEmpty": "Нет скрытых фильтров",
"settingsHiddenPathsTitle": "Скрытые каталоги", "settingsHiddenItemsTabPaths": "Скрытые каталоги",
"settingsHiddenPathsBanner": "Фотографии и видео в этих каталогах или любых их вложенных каталогах не будут отображаться в вашей коллекции.", "settingsHiddenPathsBanner": "Фотографии и видео в этих каталогах или любых их вложенных каталогах не будут отображаться в вашей коллекции.",
"addPathTooltip": "Добавить каталог", "addPathTooltip": "Добавить каталог",
"settingsStorageAccessTile": "Доступ к хранилищу", "settingsStorageAccessTile": "Доступ к хранилищу",
"settingsStorageAccessTitle": "Доступ к хранилищу", "settingsStorageAccessPageTitle": "Доступ к хранилищу",
"settingsStorageAccessBanner": "Некоторые каталоги требуют обязательного предоставления доступа для изменения файлов в них. Вы можете просмотреть здесь каталоги, к которым вы ранее предоставили доступ.", "settingsStorageAccessBanner": "Некоторые каталоги требуют обязательного предоставления доступа для изменения файлов в них. Вы можете просмотреть здесь каталоги, к которым вы ранее предоставили доступ.",
"settingsStorageAccessEmpty": "Нет прав доступа", "settingsStorageAccessEmpty": "Нет прав доступа",
"settingsStorageAccessRevokeTooltip": "Отменить", "settingsStorageAccessRevokeTooltip": "Отменить",
"settingsSectionAccessibility": "Специальные возможности", "settingsAccessibilitySectionTitle": "Специальные возможности",
"settingsRemoveAnimationsTile": "Удалить анимацию", "settingsRemoveAnimationsTile": "Удалить анимацию",
"settingsRemoveAnimationsTitle": "Удалить анимацию", "settingsRemoveAnimationsDialogTitle": "Удалить анимацию",
"settingsTimeToTakeActionTile": "Время на выполнение действия", "settingsTimeToTakeActionTile": "Время на выполнение действия",
"settingsTimeToTakeActionTitle": "Время на выполнение действия", "settingsTimeToTakeActionDialogTitle": "Время на выполнение действия",
"settingsSectionDisplay": "Отображение", "settingsDisplaySectionTitle": "Отображение",
"settingsThemeBrightness": "Тема", "settingsThemeBrightnessTile": "Тема",
"settingsThemeBrightnessDialogTitle": "Тема",
"settingsThemeColorHighlights": "Цветовые акценты", "settingsThemeColorHighlights": "Цветовые акценты",
"settingsThemeEnableDynamicColor": "Динамический цвет", "settingsThemeEnableDynamicColor": "Динамический цвет",
"settingsDisplayRefreshRateModeTile": "Частота обновления экрана", "settingsDisplayRefreshRateModeTile": "Частота обновления экрана",
"settingsDisplayRefreshRateModeTitle": "Частота обновления", "settingsDisplayRefreshRateModeDialogTitle": "Частота обновления",
"settingsSectionLanguage": "Язык и форматы", "settingsLanguageSectionTitle": "Язык и форматы",
"settingsLanguage": "Язык", "settingsLanguageTile": "Язык",
"settingsLanguagePageTitle": "Язык",
"settingsCoordinateFormatTile": "Формат координат", "settingsCoordinateFormatTile": "Формат координат",
"settingsCoordinateFormatTitle": "Формат координат", "settingsCoordinateFormatDialogTitle": "Формат координат",
"settingsUnitSystemTile": "Единицы измерения", "settingsUnitSystemTile": "Единицы измерения",
"settingsUnitSystemTitle": "Единицы измерения", "settingsUnitSystemDialogTitle": "Единицы измерения",
"settingsScreenSaverPageTitle": "Скринсейвер",
"settingsWidgetPageTitle": "Фоторамка", "settingsWidgetPageTitle": "Фоторамка",
"settingsWidgetShowOutline": "Выделение",
"settingsCollectionTile": "Коллекция",
"statsPageTitle": "Статистика", "statsPageTitle": "Статистика",
"statsWithGps": "{count, plural, =1{1 объект с местоположением} few{{count} объекта с местоположением} other{{count} объектов с местоположением}}", "statsWithGps": "{count, plural, =1{1 объект с местоположением} few{{count} объекта с местоположением} other{{count} объектов с местоположением}}",
"statsTopCountries": "Топ стран", "statsTopCountriesSectionTitle": "Топ стран",
"statsTopPlaces": "Топ локаций", "statsTopPlacesSectionTitle": "Топ локаций",
"statsTopTags": "Топ тегов", "statsTopTagsSectionTitle": "Топ тегов",
"viewerOpenPanoramaButtonLabel": "ОТКРЫТЬ ПАНОРАМУ", "viewerOpenPanoramaButtonLabel": "ОТКРЫТЬ ПАНОРАМУ",
"viewerSetWallpaperButtonLabel": "УСТАНОВИТЬ КАК ОБОИ", "viewerSetWallpaperButtonLabel": "УСТАНОВИТЬ КАК ОБОИ",
@ -603,6 +630,7 @@
"viewerInfoBackToViewerTooltip": "Вернуться к просмотрщику", "viewerInfoBackToViewerTooltip": "Вернуться к просмотрщику",
"viewerInfoUnknown": "неизвестный", "viewerInfoUnknown": "неизвестный",
"viewerInfoLabelDescription": "Описание",
"viewerInfoLabelTitle": "Название", "viewerInfoLabelTitle": "Название",
"viewerInfoLabelDate": "Дата", "viewerInfoLabelDate": "Дата",
"viewerInfoLabelResolution": "Разрешение", "viewerInfoLabelResolution": "Разрешение",
@ -614,7 +642,7 @@
"viewerInfoLabelCoordinates": "Координаты", "viewerInfoLabelCoordinates": "Координаты",
"viewerInfoLabelAddress": "Адрес", "viewerInfoLabelAddress": "Адрес",
"mapStyleTitle": "Стиль карты", "mapStyleDialogTitle": "Стиль карты",
"mapStyleTooltip": "Выберите стиль карты", "mapStyleTooltip": "Выберите стиль карты",
"mapZoomInTooltip": "Увеличить", "mapZoomInTooltip": "Увеличить",
"mapZoomOutTooltip": "Уменьшить", "mapZoomOutTooltip": "Уменьшить",

View file

@ -27,6 +27,7 @@
"actionRemove": "Kaldır", "actionRemove": "Kaldır",
"resetTooltip": "Sıfırla", "resetTooltip": "Sıfırla",
"saveTooltip": "Kaydet", "saveTooltip": "Kaydet",
"pickTooltip": "Seç",
"doubleBackExitMessage": "Çıkmak için tekrar “geri”, düğmesine dokunun.", "doubleBackExitMessage": "Çıkmak için tekrar “geri”, düğmesine dokunun.",
"doNotAskAgain": "Bir daha sorma", "doNotAskAgain": "Bir daha sorma",
@ -90,9 +91,9 @@
"filterBinLabel": "Geri dönüşüm kutusu", "filterBinLabel": "Geri dönüşüm kutusu",
"filterFavouriteLabel": "Favori", "filterFavouriteLabel": "Favori",
"filterLocationEmptyLabel": "Konumsuz", "filterNoLocationLabel": "Konumsuz",
"filterTagEmptyLabel": "Etiketsiz", "filterNoRatingLabel": "Derecelendirilmemiş",
"filterRatingUnratedLabel": "Derecelendirilmemiş", "filterNoTagLabel": "Etiketsiz",
"filterRatingRejectedLabel": "Reddedilmiş", "filterRatingRejectedLabel": "Reddedilmiş",
"filterTypeAnimatedLabel": "Hareketli", "filterTypeAnimatedLabel": "Hareketli",
"filterTypeMotionPhotoLabel": "Hareketli Fotoğraf", "filterTypeMotionPhotoLabel": "Hareketli Fotoğraf",
@ -161,20 +162,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "SD kart", "storageVolumeDescriptionFallbackNonPrimary": "SD kart",
"rootDirectoryDescription": "kök dizin", "rootDirectoryDescription": "kök dizin",
"otherDirectoryDescription": "“{name}” dizin", "otherDirectoryDescription": "“{name}” dizin",
"storageAccessDialogTitle": "Depolama Erişimi",
"storageAccessDialogMessage": "Bu uygulamaya erişim sağlamak için lütfen bir sonraki ekranda “{volume}” öğesinin {directory} dizinini seçin.", "storageAccessDialogMessage": "Bu uygulamaya erişim sağlamak için lütfen bir sonraki ekranda “{volume}” öğesinin {directory} dizinini seçin.",
"restrictedAccessDialogTitle": "Kısıtlı Erişim",
"restrictedAccessDialogMessage": "Bu uygulamanın “{volume}” içindeki {directory} dosyaları değiştirmesine izin verilmiyor.\n\nÖğeleri başka bir dizine taşımak için lütfen önceden yüklenmiş bir dosya yöneticisi veya galeri uygulaması kullanın.", "restrictedAccessDialogMessage": "Bu uygulamanın “{volume}” içindeki {directory} dosyaları değiştirmesine izin verilmiyor.\n\nÖğeleri başka bir dizine taşımak için lütfen önceden yüklenmiş bir dosya yöneticisi veya galeri uygulaması kullanın.",
"notEnoughSpaceDialogTitle": "Yeterli Yer Yok",
"notEnoughSpaceDialogMessage": "Bu işlemin tamamlanması için “{volume}” üzerinde {needSize} boş alana ihtiyaç var, ancak yalnızca {freeSize} kaldı.", "notEnoughSpaceDialogMessage": "Bu işlemin tamamlanması için “{volume}” üzerinde {needSize} boş alana ihtiyaç var, ancak yalnızca {freeSize} kaldı.",
"missingSystemFilePickerDialogTitle": "Eksik Sistem Dosya Seçicisi",
"missingSystemFilePickerDialogMessage": "Sistem dosya seçicisi eksik veya devre dışı. Lütfen etkinleştirin ve tekrar deneyin.", "missingSystemFilePickerDialogMessage": "Sistem dosya seçicisi eksik veya devre dışı. Lütfen etkinleştirin ve tekrar deneyin.",
"unsupportedTypeDialogTitle": "Desteklenmeyen Türler",
"unsupportedTypeDialogMessage": "{count, plural, =1{Bu işlem aşağıdaki türdeki öğeler için desteklenmez: {types}.} other{Bu işlem aşağıdaki türlerdeki öğeler için desteklenmez: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, =1{Bu işlem aşağıdaki türdeki öğeler için desteklenmez: {types}.} other{Bu işlem aşağıdaki türlerdeki öğeler için desteklenmez: {types}.}}",
"nameConflictDialogSingleSourceMessage": "Hedef klasördeki bazı dosyalar aynı ada sahip.", "nameConflictDialogSingleSourceMessage": "Hedef klasördeki bazı dosyalar aynı ada sahip.",
@ -183,7 +175,6 @@
"addShortcutDialogLabel": "Kısayol etiketi", "addShortcutDialogLabel": "Kısayol etiketi",
"addShortcutButtonLabel": "EKLE", "addShortcutButtonLabel": "EKLE",
"noMatchingAppDialogTitle": "Eşleşen Uygulama Yok",
"noMatchingAppDialogMessage": "Bununla ilgilenebilecek bir uygulama yok.", "noMatchingAppDialogMessage": "Bununla ilgilenebilecek bir uygulama yok.",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{Bu öğe geri dönüşüm kutusuna taşınsın mı?} other{Bu {count} madde geri dönüşüm kutusuna atılsın mı?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{Bu öğe geri dönüşüm kutusuna taşınsın mı?} other{Bu {count} madde geri dönüşüm kutusuna atılsın mı?}}",
@ -215,7 +206,7 @@
"renameEntrySetPageTitle": "Yeniden adlandır", "renameEntrySetPageTitle": "Yeniden adlandır",
"renameEntrySetPagePatternFieldLabel": "İsimlendirme şekli", "renameEntrySetPagePatternFieldLabel": "İsimlendirme şekli",
"renameEntrySetPageInsertTooltip": "Alan ekle", "renameEntrySetPageInsertTooltip": "Alan ekle",
"renameEntrySetPagePreview": "Önizleme", "renameEntrySetPagePreviewSectionTitle": "Önizleme",
"renameProcessorCounter": "Sayaç", "renameProcessorCounter": "Sayaç",
"renameProcessorName": "Ad", "renameProcessorName": "Ad",
@ -276,9 +267,9 @@
"menuActionMap": "Harita", "menuActionMap": "Harita",
"menuActionStats": "İstatistikler", "menuActionStats": "İstatistikler",
"viewDialogTabSort": "Sırala", "viewDialogSortSectionTitle": "Sırala",
"viewDialogTabGroup": "Grup", "viewDialogGroupSectionTitle": "Grup",
"viewDialogTabLayout": "Düzen", "viewDialogLayoutSectionTitle": "Düzen",
"tileLayoutGrid": "Izgara", "tileLayoutGrid": "Izgara",
"tileLayoutList": "Liste", "tileLayoutList": "Liste",
@ -295,24 +286,24 @@
"aboutLinkLicense": "Lisans", "aboutLinkLicense": "Lisans",
"aboutLinkPolicy": "Gizlilik Politikası", "aboutLinkPolicy": "Gizlilik Politikası",
"aboutBug": "Hata Bildirimi", "aboutBugSectionTitle": "Hata Bildirimi",
"aboutBugSaveLogInstruction": "Uygulama günlüklerini bir dosyaya kaydet", "aboutBugSaveLogInstruction": "Uygulama günlüklerini bir dosyaya kaydet",
"aboutBugCopyInfoInstruction": "Sistem bilgilerini kopyala", "aboutBugCopyInfoInstruction": "Sistem bilgilerini kopyala",
"aboutBugCopyInfoButton": "Kopyala", "aboutBugCopyInfoButton": "Kopyala",
"aboutBugReportInstruction": "GitHub'da günlükleri ve sistem bilgilerini içeren bir rapor oluştur", "aboutBugReportInstruction": "GitHub'da günlükleri ve sistem bilgilerini içeren bir rapor oluştur",
"aboutBugReportButton": "Raporla", "aboutBugReportButton": "Raporla",
"aboutCredits": "Kredi", "aboutCreditsSectionTitle": "Kredi",
"aboutCreditsWorldAtlas1": "Bu uygulama bir TopoJSON dosyası kullanır", "aboutCreditsWorldAtlas1": "Bu uygulama bir TopoJSON dosyası kullanır",
"aboutCreditsWorldAtlas2": "ISC Lisansı kapsamında.", "aboutCreditsWorldAtlas2": "ISC Lisansı kapsamında.",
"aboutCreditsTranslators": "Tercümanlar", "aboutTranslatorsSectionTitle": "Tercümanlar",
"aboutLicenses": "Açık Kaynak Lisansları", "aboutLicensesSectionTitle": "Açık Kaynak Lisansları",
"aboutLicensesBanner": "Bu uygulama aşağıdaki açık kaynaklı paketleri ve kütüphaneleri kullanır.", "aboutLicensesBanner": "Bu uygulama aşağıdaki açık kaynaklı paketleri ve kütüphaneleri kullanır.",
"aboutLicensesAndroidLibraries": "Android Kütüphaneleri", "aboutLicensesAndroidLibrariesSectionTitle": "Android Kütüphaneleri",
"aboutLicensesFlutterPlugins": "Flutter Eklentileri", "aboutLicensesFlutterPluginsSectionTitle": "Flutter Eklentileri",
"aboutLicensesFlutterPackages": "Flutter Paketleri", "aboutLicensesFlutterPackagesSectionTitle": "Flutter Paketleri",
"aboutLicensesDartPackages": "Dart Paketleri", "aboutLicensesDartPackagesSectionTitle": "Dart Paketleri",
"aboutLicensesShowAllButtonLabel": "Tüm Lisansları Göster", "aboutLicensesShowAllButtonLabel": "Tüm Lisansları Göster",
"policyPageTitle": "Gizlilik Politikası", "policyPageTitle": "Gizlilik Politikası",
@ -332,11 +323,6 @@
"collectionSearchTitlesHintText": "Başlıkları ara", "collectionSearchTitlesHintText": "Başlıkları ara",
"collectionSortDate": "Tarihe göre",
"collectionSortSize": "Boyuta göre",
"collectionSortName": "Albüm ve dosya adına göre",
"collectionSortRating": "Derecelendirmeye göre",
"collectionGroupAlbum": "Albüme göre", "collectionGroupAlbum": "Albüme göre",
"collectionGroupMonth": "Aya göre", "collectionGroupMonth": "Aya göre",
"collectionGroupDay": "Güne göre", "collectionGroupDay": "Güne göre",
@ -374,6 +360,8 @@
"collectionSelectSectionTooltip": "Bölüm seç", "collectionSelectSectionTooltip": "Bölüm seç",
"collectionDeselectSectionTooltip": "Bölüm seçimini kaldır", "collectionDeselectSectionTooltip": "Bölüm seçimini kaldır",
"drawerAboutButton": "Hakkında",
"drawerSettingsButton": "Ayarlar",
"drawerCollectionAll": "Tüm koleksiyon", "drawerCollectionAll": "Tüm koleksiyon",
"drawerCollectionFavourites": "Favoriler", "drawerCollectionFavourites": "Favoriler",
"drawerCollectionImages": "Resimler", "drawerCollectionImages": "Resimler",
@ -383,10 +371,16 @@
"drawerCollectionPanoramas": "Panoramalar", "drawerCollectionPanoramas": "Panoramalar",
"drawerCollectionRaws": "Raw fotoğraflar", "drawerCollectionRaws": "Raw fotoğraflar",
"drawerCollectionSphericalVideos": "360° Videolar", "drawerCollectionSphericalVideos": "360° Videolar",
"drawerAlbumPage": "Albümler",
"drawerCountryPage": "Ülkeler",
"drawerTagPage": "Etiketler",
"chipSortDate": "Tarihe göre", "sortByDate": "Tarihe göre",
"chipSortName": "Adına göre", "sortByName": "Adına göre",
"chipSortCount": "Öğe sayısına göre", "sortByItemCount": "Öğe sayısına göre",
"sortBySize": "Boyuta göre",
"sortByAlbumFileName": "Albüm ve dosya adına göre",
"sortByRating": "Derecelendirmeye göre",
"albumGroupTier": "Kademeye göre", "albumGroupTier": "Kademeye göre",
"albumGroupVolume": "Depolama hacmine göre", "albumGroupVolume": "Depolama hacmine göre",
@ -418,13 +412,13 @@
"binPageTitle": "Geri Dönüşüm Kutusu", "binPageTitle": "Geri Dönüşüm Kutusu",
"searchCollectionFieldHint": "Koleksiyonu ara", "searchCollectionFieldHint": "Koleksiyonu ara",
"searchSectionRecent": "Yakın zamanda", "searchRecentSectionTitle": "Yakın zamanda",
"searchSectionDate": "Tarih", "searchDateSectionTitle": "Tarih",
"searchSectionAlbums": "Albümler", "searchAlbumsSectionTitle": "Albümler",
"searchSectionCountries": "Ülkeler", "searchCountriesSectionTitle": "Ülkeler",
"searchSectionPlaces": "Yerler", "searchPlacesSectionTitle": "Yerler",
"searchSectionTags": "Etiketler", "searchTagsSectionTitle": "Etiketler",
"searchSectionRating": "Derecelendirmeler", "searchRatingSectionTitle": "Derecelendirmeler",
"settingsPageTitle": "Ayarlar", "settingsPageTitle": "Ayarlar",
"settingsSystemDefault": "Sistem", "settingsSystemDefault": "Sistem",
@ -433,36 +427,39 @@
"settingsSearchFieldLabel": "Ayarlarda ara", "settingsSearchFieldLabel": "Ayarlarda ara",
"settingsSearchEmpty": "Eşleşen ayar bulunamadı", "settingsSearchEmpty": "Eşleşen ayar bulunamadı",
"settingsActionExport": "Dışa aktar", "settingsActionExport": "Dışa aktar",
"settingsActionExportDialogTitle": "Dışa aktar",
"settingsActionImport": "İçe aktar", "settingsActionImport": "İçe aktar",
"settingsActionImportDialogTitle": "İçe aktar",
"appExportCovers": "Kapaklar", "appExportCovers": "Kapaklar",
"appExportFavourites": "Favoriler", "appExportFavourites": "Favoriler",
"appExportSettings": "Ayarlar", "appExportSettings": "Ayarlar",
"settingsSectionNavigation": "Gezinti", "settingsNavigationSectionTitle": "Gezinti",
"settingsHome": "Anasayfa", "settingsHomeTile": "Anasayfa",
"settingsHomeDialogTitle": "Anasayfa",
"settingsShowBottomNavigationBar": "Alt gezinti çubuğunu göster", "settingsShowBottomNavigationBar": "Alt gezinti çubuğunu göster",
"settingsKeepScreenOnTile": "Ekranıık tut", "settingsKeepScreenOnTile": "Ekranıık tut",
"settingsKeepScreenOnTitle": "Ekranıık Tut", "settingsKeepScreenOnDialogTitle": "Ekranıık Tut",
"settingsDoubleBackExit": "Çıkmak için iki kez “geri” düğmesine dokunun", "settingsDoubleBackExit": "Çıkmak için iki kez “geri” düğmesine dokunun",
"settingsConfirmationDialogTile": "Onaylama diyalogları", "settingsConfirmationTile": "Onaylama diyalogları",
"settingsConfirmationDialogTitle": "Onaylama Diyalogları", "settingsConfirmationDialogTitle": "Onaylama Diyalogları",
"settingsConfirmationDialogDeleteItems": "Öğeleri sonsuza dek silmeden önce sor", "settingsConfirmationBeforeDeleteItems": "Öğeleri sonsuza dek silmeden önce sor",
"settingsConfirmationDialogMoveToBinItems": "Eşyaları geri dönüşüm kutusuna atmadan önce sor", "settingsConfirmationBeforeMoveToBinItems": "Eşyaları geri dönüşüm kutusuna atmadan önce sor",
"settingsConfirmationDialogMoveUndatedItems": "Tarihsiz eşyaları taşımadan önce sor", "settingsConfirmationBeforeMoveUndatedItems": "Tarihsiz eşyaları taşımadan önce sor",
"settingsNavigationDrawerTile": "Gezinti menüsü", "settingsNavigationDrawerTile": "Gezinti menüsü",
"settingsNavigationDrawerEditorTitle": "Gezinti Menüsü", "settingsNavigationDrawerEditorPageTitle": "Gezinti Menüsü",
"settingsNavigationDrawerBanner": "Menü öğelerini taşımak ve yeniden sıralamak için dokunun ve basılı tutun.", "settingsNavigationDrawerBanner": "Menü öğelerini taşımak ve yeniden sıralamak için dokunun ve basılı tutun.",
"settingsNavigationDrawerTabTypes": "Türler", "settingsNavigationDrawerTabTypes": "Türler",
"settingsNavigationDrawerTabAlbums": "Albümler", "settingsNavigationDrawerTabAlbums": "Albümler",
"settingsNavigationDrawerTabPages": "Sayfalar", "settingsNavigationDrawerTabPages": "Sayfalar",
"settingsNavigationDrawerAddAlbum": "Albüm ekle", "settingsNavigationDrawerAddAlbum": "Albüm ekle",
"settingsSectionThumbnails": "Küçük resimler", "settingsThumbnailSectionTitle": "Küçük resimler",
"settingsThumbnailOverlayTile": "Kaplama", "settingsThumbnailOverlayTile": "Kaplama",
"settingsThumbnailOverlayTitle": "Kaplama", "settingsThumbnailOverlayPageTitle": "Kaplama",
"settingsThumbnailShowFavouriteIcon": "Favori simgeyi göster", "settingsThumbnailShowFavouriteIcon": "Favori simgeyi göster",
"settingsThumbnailShowTagIcon": "Etiket simgesini göster", "settingsThumbnailShowTagIcon": "Etiket simgesini göster",
"settingsThumbnailShowLocationIcon": "Konum simgesini göster", "settingsThumbnailShowLocationIcon": "Konum simgesini göster",
@ -472,27 +469,27 @@
"settingsThumbnailShowVideoDuration": "Video süresini göster", "settingsThumbnailShowVideoDuration": "Video süresini göster",
"settingsCollectionQuickActionsTile": "Hızlı eylemler", "settingsCollectionQuickActionsTile": "Hızlı eylemler",
"settingsCollectionQuickActionEditorTitle": "Hızlı Eylemler", "settingsCollectionQuickActionEditorPageTitle": "Hızlı Eylemler",
"settingsCollectionQuickActionTabBrowsing": "Gözatma", "settingsCollectionQuickActionTabBrowsing": "Gözatma",
"settingsCollectionQuickActionTabSelecting": "Seçme", "settingsCollectionQuickActionTabSelecting": "Seçme",
"settingsCollectionBrowsingQuickActionEditorBanner": "Düğmeleri hareket ettirmek ve öğelere göz atarken hangi eylemlerin görüntüleneceğini seçmek için dokunun ve basılı tutun.", "settingsCollectionBrowsingQuickActionEditorBanner": "Düğmeleri hareket ettirmek ve öğelere göz atarken hangi eylemlerin görüntüleneceğini seçmek için dokunun ve basılı tutun.",
"settingsCollectionSelectionQuickActionEditorBanner": "Düğmeleri hareket ettirmek ve öğeleri seçerken hangi eylemlerin görüntüleneceğini seçmek için dokunun ve basılı tutun.", "settingsCollectionSelectionQuickActionEditorBanner": "Düğmeleri hareket ettirmek ve öğeleri seçerken hangi eylemlerin görüntüleneceğini seçmek için dokunun ve basılı tutun.",
"settingsSectionViewer": "Görüntüleyici", "settingsViewerSectionTitle": "Görüntüleyici",
"settingsViewerUseCutout": "Kesim alanını kullan", "settingsViewerUseCutout": "Kesim alanını kullan",
"settingsViewerMaximumBrightness": "Maksimum parlaklık", "settingsViewerMaximumBrightness": "Maksimum parlaklık",
"settingsMotionPhotoAutoPlay": "Hareketli fotoğrafları otomatik oynat", "settingsMotionPhotoAutoPlay": "Hareketli fotoğrafları otomatik oynat",
"settingsImageBackground": "Resim arka planı", "settingsImageBackground": "Resim arka planı",
"settingsViewerQuickActionsTile": "Hızlı eylemler", "settingsViewerQuickActionsTile": "Hızlı eylemler",
"settingsViewerQuickActionEditorTitle": "Hızlı Eylemler", "settingsViewerQuickActionEditorPageTitle": "Hızlı Eylemler",
"settingsViewerQuickActionEditorBanner": "Düğmeleri hareket ettirmek ve görüntüleyicide hangi eylemlerin görüntüleneceğini seçmek için dokunun ve basılı tutun.", "settingsViewerQuickActionEditorBanner": "Düğmeleri hareket ettirmek ve görüntüleyicide hangi eylemlerin görüntüleneceğini seçmek için dokunun ve basılı tutun.",
"settingsViewerQuickActionEditorDisplayedButtons": "Gösterilen Düğmeler", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "Gösterilen Düğmeler",
"settingsViewerQuickActionEditorAvailableButtons": "Mevcut Düğmeler", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "Mevcut Düğmeler",
"settingsViewerQuickActionEmpty": "Düğme yok", "settingsViewerQuickActionEmpty": "Düğme yok",
"settingsViewerOverlayTile": "Kaplama", "settingsViewerOverlayTile": "Kaplama",
"settingsViewerOverlayTitle": "Kaplama", "settingsViewerOverlayPageTitle": "Kaplama",
"settingsViewerShowOverlayOnOpening": "Açılışta göster", "settingsViewerShowOverlayOnOpening": "Açılışta göster",
"settingsViewerShowMinimap": "Mini haritayı göster", "settingsViewerShowMinimap": "Mini haritayı göster",
"settingsViewerShowInformation": "Bilgileri göster", "settingsViewerShowInformation": "Bilgileri göster",
@ -502,18 +499,18 @@
"settingsViewerEnableOverlayBlurEffect": "Bulanıklık efekti", "settingsViewerEnableOverlayBlurEffect": "Bulanıklık efekti",
"settingsVideoPageTitle": "Video Ayarları", "settingsVideoPageTitle": "Video Ayarları",
"settingsSectionVideo": "Video", "settingsVideoSectionTitle": "Video",
"settingsVideoShowVideos": "Videoları göster", "settingsVideoShowVideos": "Videoları göster",
"settingsVideoEnableHardwareAcceleration": "Donanım hızlandırma", "settingsVideoEnableHardwareAcceleration": "Donanım hızlandırma",
"settingsVideoEnableAutoPlay": "Otomatik oynat", "settingsVideoEnableAutoPlay": "Otomatik oynat",
"settingsVideoLoopModeTile": "Döngü modu", "settingsVideoLoopModeTile": "Döngü modu",
"settingsVideoLoopModeTitle": "Döngü Modu", "settingsVideoLoopModeDialogTitle": "Döngü Modu",
"settingsSubtitleThemeTile": "Altyazılar", "settingsSubtitleThemeTile": "Altyazılar",
"settingsSubtitleThemeTitle": "Altyazılar", "settingsSubtitleThemePageTitle": "Altyazılar",
"settingsSubtitleThemeSample": "Bu bir örnek.", "settingsSubtitleThemeSample": "Bu bir örnek.",
"settingsSubtitleThemeTextAlignmentTile": "Metin hizalama", "settingsSubtitleThemeTextAlignmentTile": "Metin hizalama",
"settingsSubtitleThemeTextAlignmentTitle": "Metin Hizalama", "settingsSubtitleThemeTextAlignmentDialogTitle": "Metin Hizalama",
"settingsSubtitleThemeTextSize": "Metin boyutu", "settingsSubtitleThemeTextSize": "Metin boyutu",
"settingsSubtitleThemeShowOutline": "Dış çizgiyi ve gölgeyi göster", "settingsSubtitleThemeShowOutline": "Dış çizgiyi ve gölgeyi göster",
"settingsSubtitleThemeTextColor": "Metin rengi", "settingsSubtitleThemeTextColor": "Metin rengi",
@ -525,13 +522,13 @@
"settingsSubtitleThemeTextAlignmentRight": "Sağ", "settingsSubtitleThemeTextAlignmentRight": "Sağ",
"settingsVideoControlsTile": "Kontroller", "settingsVideoControlsTile": "Kontroller",
"settingsVideoControlsTitle": "Kontroller", "settingsVideoControlsPageTitle": "Kontroller",
"settingsVideoButtonsTile": "Düğmeler", "settingsVideoButtonsTile": "Düğmeler",
"settingsVideoButtonsTitle": "Düğmeler", "settingsVideoButtonsDialogTitle": "Düğmeler",
"settingsVideoGestureDoubleTapTogglePlay": "Oynatmak/duraklatmak için çift dokunun", "settingsVideoGestureDoubleTapTogglePlay": "Oynatmak/duraklatmak için çift dokunun",
"settingsVideoGestureSideDoubleTapSeek": "Geri/ileri aramak için ekran kenarlarına çift dokunun", "settingsVideoGestureSideDoubleTapSeek": "Geri/ileri aramak için ekran kenarlarına çift dokunun",
"settingsSectionPrivacy": "Gizlilik", "settingsPrivacySectionTitle": "Gizlilik",
"settingsAllowInstalledAppAccess": "Uygulama envanterine erişime izin ver", "settingsAllowInstalledAppAccess": "Uygulama envanterine erişime izin ver",
"settingsAllowInstalledAppAccessSubtitle": "Albüm görüntüsünü iyileştirmek için kullanılır", "settingsAllowInstalledAppAccessSubtitle": "Albüm görüntüsünü iyileştirmek için kullanılır",
"settingsAllowErrorReporting": "Anonim hata raporlamasına izin ver", "settingsAllowErrorReporting": "Anonim hata raporlamasına izin ver",
@ -540,49 +537,53 @@
"settingsEnableBinSubtitle": "Silinen öğeleri 30 gün boyunca saklar", "settingsEnableBinSubtitle": "Silinen öğeleri 30 gün boyunca saklar",
"settingsHiddenItemsTile": "Gizli öğeler", "settingsHiddenItemsTile": "Gizli öğeler",
"settingsHiddenItemsTitle": "Gizli Öğeler", "settingsHiddenItemsPageTitle": "Gizli Öğeler",
"settingsHiddenFiltersTitle": "Gizli Filtreler", "settingsHiddenItemsTabFilters": "Gizli Filtreler",
"settingsHiddenFiltersBanner": "Gizli filtrelerle eşleşen fotoğraflar ve videolar koleksiyonunuzda görünmeyecektir.", "settingsHiddenFiltersBanner": "Gizli filtrelerle eşleşen fotoğraflar ve videolar koleksiyonunuzda görünmeyecektir.",
"settingsHiddenFiltersEmpty": "Gizli filtre yok", "settingsHiddenFiltersEmpty": "Gizli filtre yok",
"settingsHiddenPathsTitle": "Gizli Yollar", "settingsHiddenItemsTabPaths": "Gizli Yollar",
"settingsHiddenPathsBanner": "Bu klasörlerdeki veya alt klasörlerindeki fotoğraflar ve videolar koleksiyonunuzda görünmeyecektir.", "settingsHiddenPathsBanner": "Bu klasörlerdeki veya alt klasörlerindeki fotoğraflar ve videolar koleksiyonunuzda görünmeyecektir.",
"addPathTooltip": "Yol ekle", "addPathTooltip": "Yol ekle",
"settingsStorageAccessTile": "Depolama erişimi", "settingsStorageAccessTile": "Depolama erişimi",
"settingsStorageAccessTitle": "Depolama Erişimi", "settingsStorageAccessPageTitle": "Depolama Erişimi",
"settingsStorageAccessBanner": "Bazı dizinler, içlerindeki dosyaları değiştirmek için açık bir erişim izni gerektirir. Daha önce erişim izni verdiğiniz dizinleri buradan inceleyebilirsiniz.", "settingsStorageAccessBanner": "Bazı dizinler, içlerindeki dosyaları değiştirmek için açık bir erişim izni gerektirir. Daha önce erişim izni verdiğiniz dizinleri buradan inceleyebilirsiniz.",
"settingsStorageAccessEmpty": "Erişim izni yok", "settingsStorageAccessEmpty": "Erişim izni yok",
"settingsStorageAccessRevokeTooltip": "Geri al", "settingsStorageAccessRevokeTooltip": "Geri al",
"settingsSectionAccessibility": "Erişilebilirlik", "settingsAccessibilitySectionTitle": "Erişilebilirlik",
"settingsRemoveAnimationsTile": "Animasyonları kaldır", "settingsRemoveAnimationsTile": "Animasyonları kaldır",
"settingsRemoveAnimationsTitle": "Animasyonları Kaldır", "settingsRemoveAnimationsDialogTitle": "Animasyonları Kaldır",
"settingsTimeToTakeActionTile": "Harekete geçme zamanı", "settingsTimeToTakeActionTile": "Harekete geçme zamanı",
"settingsTimeToTakeActionTitle": "Harekete Geçme Zamanı", "settingsTimeToTakeActionDialogTitle": "Harekete Geçme Zamanı",
"settingsSectionDisplay": "Ekran", "settingsDisplaySectionTitle": "Ekran",
"settingsThemeBrightness": "Tema", "settingsThemeBrightnessTile": "Tema",
"settingsThemeBrightnessDialogTitle": "Tema",
"settingsThemeColorHighlights": "Renk vurguları", "settingsThemeColorHighlights": "Renk vurguları",
"settingsThemeEnableDynamicColor": "Dinamik renk", "settingsThemeEnableDynamicColor": "Dinamik renk",
"settingsDisplayRefreshRateModeTile": "Görüntü yenileme hızı", "settingsDisplayRefreshRateModeTile": "Görüntü yenileme hızı",
"settingsDisplayRefreshRateModeTitle": "Yenileme Hızı", "settingsDisplayRefreshRateModeDialogTitle": "Yenileme Hızı",
"settingsSectionLanguage": "Dil ve Biçimler", "settingsLanguageSectionTitle": "Dil ve Biçimler",
"settingsLanguage": "Dil", "settingsLanguageTile": "Dil",
"settingsLanguagePageTitle": "Dil",
"settingsCoordinateFormatTile": "Koordinat formatı", "settingsCoordinateFormatTile": "Koordinat formatı",
"settingsCoordinateFormatTitle": "Koordinat Formatı", "settingsCoordinateFormatDialogTitle": "Koordinat Formatı",
"settingsUnitSystemTile": "Birimler", "settingsUnitSystemTile": "Birimler",
"settingsUnitSystemTitle": "Birimler", "settingsUnitSystemDialogTitle": "Birimler",
"settingsWidgetPageTitle": "Fotoğraf Çerçevesi", "settingsWidgetPageTitle": "Fotoğraf Çerçevesi",
"settingsCollectionTile": "Koleksiyon",
"statsPageTitle": "İstatistikler", "statsPageTitle": "İstatistikler",
"statsWithGps": "{count, plural, =1{1 konuma sahip öğe} other{{count} konuma sahip öğe}}", "statsWithGps": "{count, plural, =1{1 konuma sahip öğe} other{{count} konuma sahip öğe}}",
"statsTopCountries": "Başlıca Ülkeler", "statsTopCountriesSectionTitle": "Başlıca Ülkeler",
"statsTopPlaces": "Başlıca Yerler", "statsTopPlacesSectionTitle": "Başlıca Yerler",
"statsTopTags": "Başlıca Etiketler", "statsTopTagsSectionTitle": "Başlıca Etiketler",
"viewerOpenPanoramaButtonLabel": "PANORAMAYI AÇ", "viewerOpenPanoramaButtonLabel": "PANORAMAYI AÇ",
"viewerErrorUnknown": "Tüh!", "viewerErrorUnknown": "Tüh!",
@ -603,7 +604,7 @@
"viewerInfoLabelCoordinates": "Koordinatlar", "viewerInfoLabelCoordinates": "Koordinatlar",
"viewerInfoLabelAddress": "Adres", "viewerInfoLabelAddress": "Adres",
"mapStyleTitle": "Harita Şekli", "mapStyleDialogTitle": "Harita Şekli",
"mapStyleTooltip": "Harita şeklini seç", "mapStyleTooltip": "Harita şeklini seç",
"mapZoomInTooltip": "Yakınlaştır", "mapZoomInTooltip": "Yakınlaştır",
"mapZoomOutTooltip": "Uzaklaştır", "mapZoomOutTooltip": "Uzaklaştır",

View file

@ -27,6 +27,7 @@
"actionRemove": "移除", "actionRemove": "移除",
"resetTooltip": "重置", "resetTooltip": "重置",
"saveTooltip": "保存", "saveTooltip": "保存",
"pickTooltip": "挑选",
"doubleBackExitMessage": "再按一次退出", "doubleBackExitMessage": "再按一次退出",
"doNotAskAgain": "不再询问", "doNotAskAgain": "不再询问",
@ -87,18 +88,20 @@
"entryInfoActionEditDate": "编辑日期和时间", "entryInfoActionEditDate": "编辑日期和时间",
"entryInfoActionEditLocation": "编辑位置", "entryInfoActionEditLocation": "编辑位置",
"entryInfoActionEditDescription": "编辑备注", "entryInfoActionEditTitleDescription": "编辑标题和描述",
"entryInfoActionEditRating": "修改评分", "entryInfoActionEditRating": "修改评分",
"entryInfoActionEditTags": "编辑标签", "entryInfoActionEditTags": "编辑标签",
"entryInfoActionRemoveMetadata": "移除元数据", "entryInfoActionRemoveMetadata": "移除元数据",
"filterBinLabel": "回收站", "filterBinLabel": "回收站",
"filterFavouriteLabel": "收藏夹", "filterFavouriteLabel": "收藏夹",
"filterLocationEmptyLabel": "未定位", "filterNoDateLabel": "未注明日期",
"filterTagEmptyLabel": "无标签", "filterNoLocationLabel": "未定位",
"filterNoRatingLabel": "未评分",
"filterNoTagLabel": "无标签",
"filterNoTitleLabel": "无标题",
"filterOnThisDayLabel": "选择日期", "filterOnThisDayLabel": "选择日期",
"filterRecentlyAddedLabel": "最近添加", "filterRecentlyAddedLabel": "最近添加",
"filterRatingUnratedLabel": "未评分",
"filterRatingRejectedLabel": "拒绝", "filterRatingRejectedLabel": "拒绝",
"filterTypeAnimatedLabel": "动画", "filterTypeAnimatedLabel": "动画",
"filterTypeMotionPhotoLabel": "动态照片", "filterTypeMotionPhotoLabel": "动态照片",
@ -179,16 +182,11 @@
"storageVolumeDescriptionFallbackNonPrimary": "SD 卡", "storageVolumeDescriptionFallbackNonPrimary": "SD 卡",
"rootDirectoryDescription": "根目录", "rootDirectoryDescription": "根目录",
"otherDirectoryDescription": "“{name}” 目录", "otherDirectoryDescription": "“{name}” 目录",
"storageAccessDialogTitle": "存储访问权限",
"storageAccessDialogMessage": "请在下一屏幕中选择“{volume}”的{directory},以授予本应用对其的访问权限", "storageAccessDialogMessage": "请在下一屏幕中选择“{volume}”的{directory},以授予本应用对其的访问权限",
"restrictedAccessDialogTitle": "限制访问",
"restrictedAccessDialogMessage": "本应用无权修改“{volume}”的{directory}中的文件\n\n请使用预装的文件管理器或图库应用将项目移至其他目录", "restrictedAccessDialogMessage": "本应用无权修改“{volume}”的{directory}中的文件\n\n请使用预装的文件管理器或图库应用将项目移至其他目录",
"notEnoughSpaceDialogTitle": "空间不足",
"notEnoughSpaceDialogMessage": "此操作需要“{volume}”上具有 {neededSize} 可用空间才能完成,实际仅剩 {freeSize}", "notEnoughSpaceDialogMessage": "此操作需要“{volume}”上具有 {neededSize} 可用空间才能完成,实际仅剩 {freeSize}",
"missingSystemFilePickerDialogTitle": "找不到系统文件选择器",
"missingSystemFilePickerDialogMessage": "系统文件选择器缺失或被禁用,请将其启用后再试", "missingSystemFilePickerDialogMessage": "系统文件选择器缺失或被禁用,请将其启用后再试",
"unsupportedTypeDialogTitle": "不支持的类型",
"unsupportedTypeDialogMessage": "{count, plural, other{此操作不支持以下类型的项目: {types}.}}", "unsupportedTypeDialogMessage": "{count, plural, other{此操作不支持以下类型的项目: {types}.}}",
"nameConflictDialogSingleSourceMessage": "目标文件夹中具有同名文件", "nameConflictDialogSingleSourceMessage": "目标文件夹中具有同名文件",
@ -197,7 +195,6 @@
"addShortcutDialogLabel": "快捷方式标签", "addShortcutDialogLabel": "快捷方式标签",
"addShortcutButtonLabel": "添加", "addShortcutButtonLabel": "添加",
"noMatchingAppDialogTitle": "无匹配的应用",
"noMatchingAppDialogMessage": "无对应的处理程序", "noMatchingAppDialogMessage": "无对应的处理程序",
"binEntriesConfirmationDialogMessage": "{count, plural, =1{将此项移至回收站?} other{将这 {count} 项移至回收站?}}", "binEntriesConfirmationDialogMessage": "{count, plural, =1{将此项移至回收站?} other{将这 {count} 项移至回收站?}}",
@ -226,7 +223,7 @@
"renameEntrySetPageTitle": "重命名", "renameEntrySetPageTitle": "重命名",
"renameEntrySetPagePatternFieldLabel": "命名模式", "renameEntrySetPagePatternFieldLabel": "命名模式",
"renameEntrySetPageInsertTooltip": "插入字段", "renameEntrySetPageInsertTooltip": "插入字段",
"renameEntrySetPagePreview": "预览", "renameEntrySetPagePreviewSectionTitle": "预览",
"renameProcessorCounter": "计数器", "renameProcessorCounter": "计数器",
"renameProcessorName": "名称", "renameProcessorName": "名称",
@ -259,8 +256,6 @@
"locationPickerUseThisLocationButton": "使用此位置", "locationPickerUseThisLocationButton": "使用此位置",
"editEntryDescriptionDialogTitle": "备注",
"editEntryRatingDialogTitle": "评分", "editEntryRatingDialogTitle": "评分",
"removeEntryMetadataDialogTitle": "元数据移除工具", "removeEntryMetadataDialogTitle": "元数据移除工具",
@ -289,9 +284,10 @@
"menuActionSlideshow": "幻灯片", "menuActionSlideshow": "幻灯片",
"menuActionStats": "统计", "menuActionStats": "统计",
"viewDialogTabSort": "排序", "viewDialogSortSectionTitle": "排序",
"viewDialogTabGroup": "分组", "viewDialogGroupSectionTitle": "分组",
"viewDialogTabLayout": "布局", "viewDialogLayoutSectionTitle": "布局",
"viewDialogReverseSortOrder": "反向排序",
"tileLayoutGrid": "网格", "tileLayoutGrid": "网格",
"tileLayoutList": "列表", "tileLayoutList": "列表",
@ -308,24 +304,24 @@
"aboutLinkLicense": "许可协议", "aboutLinkLicense": "许可协议",
"aboutLinkPolicy": "隐私政策", "aboutLinkPolicy": "隐私政策",
"aboutBug": "报告错误", "aboutBugSectionTitle": "报告错误",
"aboutBugSaveLogInstruction": "将应用日志保存到文件", "aboutBugSaveLogInstruction": "将应用日志保存到文件",
"aboutBugCopyInfoInstruction": "复制系统信息", "aboutBugCopyInfoInstruction": "复制系统信息",
"aboutBugCopyInfoButton": "复制", "aboutBugCopyInfoButton": "复制",
"aboutBugReportInstruction": "在 GitHub 上报告日志和系统信息", "aboutBugReportInstruction": "在 GitHub 上报告日志和系统信息",
"aboutBugReportButton": "报告", "aboutBugReportButton": "报告",
"aboutCredits": "鸣谢", "aboutCreditsSectionTitle": "鸣谢",
"aboutCreditsWorldAtlas1": "本应用使用的 TopoJSON 文件来自", "aboutCreditsWorldAtlas1": "本应用使用的 TopoJSON 文件来自",
"aboutCreditsWorldAtlas2": "符合 ISC 许可协议", "aboutCreditsWorldAtlas2": "符合 ISC 许可协议",
"aboutCreditsTranslators": "翻译人员", "aboutTranslatorsSectionTitle": "翻译人员",
"aboutLicenses": "开源许可协议", "aboutLicensesSectionTitle": "开源许可协议",
"aboutLicensesBanner": "本应用使用以下开源软件包和库", "aboutLicensesBanner": "本应用使用以下开源软件包和库",
"aboutLicensesAndroidLibraries": "Android Libraries", "aboutLicensesAndroidLibrariesSectionTitle": "Android Libraries",
"aboutLicensesFlutterPlugins": "Flutter Plugins", "aboutLicensesFlutterPluginsSectionTitle": "Flutter Plugins",
"aboutLicensesFlutterPackages": "Flutter Packages", "aboutLicensesFlutterPackagesSectionTitle": "Flutter Packages",
"aboutLicensesDartPackages": "Dart Packages", "aboutLicensesDartPackagesSectionTitle": "Dart Packages",
"aboutLicensesShowAllButtonLabel": "显示所有许可协议", "aboutLicensesShowAllButtonLabel": "显示所有许可协议",
"policyPageTitle": "隐私政策", "policyPageTitle": "隐私政策",
@ -345,11 +341,6 @@
"collectionSearchTitlesHintText": "搜索标题", "collectionSearchTitlesHintText": "搜索标题",
"collectionSortDate": "按日期",
"collectionSortSize": "按大小",
"collectionSortName": "按相册和文件名",
"collectionSortRating": "按评分",
"collectionGroupAlbum": "按相册", "collectionGroupAlbum": "按相册",
"collectionGroupMonth": "按月份", "collectionGroupMonth": "按月份",
"collectionGroupDay": "按天", "collectionGroupDay": "按天",
@ -378,6 +369,8 @@
"collectionSelectSectionTooltip": "选择部分", "collectionSelectSectionTooltip": "选择部分",
"collectionDeselectSectionTooltip": "取消选择部分", "collectionDeselectSectionTooltip": "取消选择部分",
"drawerAboutButton": "关于",
"drawerSettingsButton": "设置",
"drawerCollectionAll": "所有媒体集", "drawerCollectionAll": "所有媒体集",
"drawerCollectionFavourites": "收藏夹", "drawerCollectionFavourites": "收藏夹",
"drawerCollectionImages": "图像", "drawerCollectionImages": "图像",
@ -387,10 +380,25 @@
"drawerCollectionPanoramas": "全景图", "drawerCollectionPanoramas": "全景图",
"drawerCollectionRaws": "Raw 照片", "drawerCollectionRaws": "Raw 照片",
"drawerCollectionSphericalVideos": "360° 视频", "drawerCollectionSphericalVideos": "360° 视频",
"drawerAlbumPage": "相册",
"drawerCountryPage": "国家",
"drawerTagPage": "标签",
"chipSortDate": "按日期", "sortByDate": "按日期",
"chipSortName": "按名称", "sortByName": "按名称",
"chipSortCount": "按数量", "sortByItemCount": "按数量",
"sortBySize": "按大小",
"sortByAlbumFileName": "按相册和文件名",
"sortByRating": "按评分",
"sortOrderNewestFirst": "降序",
"sortOrderOldestFirst": "升序",
"sortOrderAtoZ": "A — Z",
"sortOrderZtoA": "Z — A",
"sortOrderHighestFirst": "由高到低",
"sortOrderLowestFirst": "由低到高",
"sortOrderLargestFirst": "由大到小",
"sortOrderSmallestFirst": "由小到大",
"albumGroupTier": "按层级", "albumGroupTier": "按层级",
"albumGroupVolume": "按存储卷", "albumGroupVolume": "按存储卷",
@ -422,13 +430,14 @@
"binPageTitle": "回收站", "binPageTitle": "回收站",
"searchCollectionFieldHint": "搜索媒体集", "searchCollectionFieldHint": "搜索媒体集",
"searchSectionRecent": "最近", "searchRecentSectionTitle": "最近",
"searchSectionDate": "日期", "searchDateSectionTitle": "日期",
"searchSectionAlbums": "相册", "searchAlbumsSectionTitle": "相册",
"searchSectionCountries": "国家", "searchCountriesSectionTitle": "国家",
"searchSectionPlaces": "地点", "searchPlacesSectionTitle": "地点",
"searchSectionTags": "标签", "searchTagsSectionTitle": "标签",
"searchSectionRating": "评分", "searchRatingSectionTitle": "评分",
"searchMetadataSectionTitle": "元数据",
"settingsPageTitle": "设置", "settingsPageTitle": "设置",
"settingsSystemDefault": "系统", "settingsSystemDefault": "系统",
@ -437,37 +446,40 @@
"settingsSearchFieldLabel": "搜索设置", "settingsSearchFieldLabel": "搜索设置",
"settingsSearchEmpty": "无匹配设置项", "settingsSearchEmpty": "无匹配设置项",
"settingsActionExport": "导出", "settingsActionExport": "导出",
"settingsActionExportDialogTitle": "导出",
"settingsActionImport": "导入", "settingsActionImport": "导入",
"settingsActionImportDialogTitle": "导入",
"appExportCovers": "封面", "appExportCovers": "封面",
"appExportFavourites": "收藏夹", "appExportFavourites": "收藏夹",
"appExportSettings": "设置", "appExportSettings": "设置",
"settingsSectionNavigation": "导航", "settingsNavigationSectionTitle": "导航",
"settingsHome": "主页", "settingsHomeTile": "主页",
"settingsHomeDialogTitle": "主页",
"settingsShowBottomNavigationBar": "显示底部导航栏", "settingsShowBottomNavigationBar": "显示底部导航栏",
"settingsKeepScreenOnTile": "保持亮屏", "settingsKeepScreenOnTile": "保持亮屏",
"settingsKeepScreenOnTitle": "保持亮屏", "settingsKeepScreenOnDialogTitle": "保持亮屏",
"settingsDoubleBackExit": "按两次返回键退出", "settingsDoubleBackExit": "按两次返回键退出",
"settingsConfirmationDialogTile": "确认对话框", "settingsConfirmationTile": "确认对话框",
"settingsConfirmationDialogTitle": "确认对话框", "settingsConfirmationDialogTitle": "确认对话框",
"settingsConfirmationDialogDeleteItems": "永久删除项目之前询问", "settingsConfirmationBeforeDeleteItems": "永久删除项目之前询问",
"settingsConfirmationDialogMoveToBinItems": "移至回收站之前询问", "settingsConfirmationBeforeMoveToBinItems": "移至回收站之前询问",
"settingsConfirmationDialogMoveUndatedItems": "移动未注明日期的项目之前询问", "settingsConfirmationBeforeMoveUndatedItems": "移动未注明日期的项目之前询问",
"settingsConfirmationAfterMoveToBinItems": "移至回收站后显示消息", "settingsConfirmationAfterMoveToBinItems": "移至回收站后显示消息",
"settingsNavigationDrawerTile": "导航栏菜单", "settingsNavigationDrawerTile": "导航栏菜单",
"settingsNavigationDrawerEditorTitle": "导航栏菜单", "settingsNavigationDrawerEditorPageTitle": "导航栏菜单",
"settingsNavigationDrawerBanner": "长按移动和重新排序菜单项", "settingsNavigationDrawerBanner": "长按移动和重新排序菜单项",
"settingsNavigationDrawerTabTypes": "类型", "settingsNavigationDrawerTabTypes": "类型",
"settingsNavigationDrawerTabAlbums": "相册", "settingsNavigationDrawerTabAlbums": "相册",
"settingsNavigationDrawerTabPages": "页面", "settingsNavigationDrawerTabPages": "页面",
"settingsNavigationDrawerAddAlbum": "添加相册", "settingsNavigationDrawerAddAlbum": "添加相册",
"settingsSectionThumbnails": "缩略图", "settingsThumbnailSectionTitle": "缩略图",
"settingsThumbnailOverlayTile": "叠加层", "settingsThumbnailOverlayTile": "叠加层",
"settingsThumbnailOverlayTitle": "叠加层", "settingsThumbnailOverlayPageTitle": "叠加层",
"settingsThumbnailShowFavouriteIcon": "显示收藏图标", "settingsThumbnailShowFavouriteIcon": "显示收藏图标",
"settingsThumbnailShowTagIcon": "显示标签图标", "settingsThumbnailShowTagIcon": "显示标签图标",
"settingsThumbnailShowLocationIcon": "显示位置图标", "settingsThumbnailShowLocationIcon": "显示位置图标",
@ -477,13 +489,13 @@
"settingsThumbnailShowVideoDuration": "显示视频时长", "settingsThumbnailShowVideoDuration": "显示视频时长",
"settingsCollectionQuickActionsTile": "快速操作", "settingsCollectionQuickActionsTile": "快速操作",
"settingsCollectionQuickActionEditorTitle": "快速操作", "settingsCollectionQuickActionEditorPageTitle": "快速操作",
"settingsCollectionQuickActionTabBrowsing": "浏览", "settingsCollectionQuickActionTabBrowsing": "浏览",
"settingsCollectionQuickActionTabSelecting": "选择", "settingsCollectionQuickActionTabSelecting": "选择",
"settingsCollectionBrowsingQuickActionEditorBanner": "按住并拖拽可移动按钮并选择浏览项目时显示的操作", "settingsCollectionBrowsingQuickActionEditorBanner": "按住并拖拽可移动按钮并选择浏览项目时显示的操作",
"settingsCollectionSelectionQuickActionEditorBanner": "按住并拖拽可移动按钮并选择选择项目时显示的操作", "settingsCollectionSelectionQuickActionEditorBanner": "按住并拖拽可移动按钮并选择选择项目时显示的操作",
"settingsSectionViewer": "查看器", "settingsViewerSectionTitle": "查看器",
"settingsViewerGestureSideTapNext": "轻触屏幕边缘显示上/下一个项目", "settingsViewerGestureSideTapNext": "轻触屏幕边缘显示上/下一个项目",
"settingsViewerUseCutout": "使用剪切区域", "settingsViewerUseCutout": "使用剪切区域",
"settingsViewerMaximumBrightness": "最大亮度", "settingsViewerMaximumBrightness": "最大亮度",
@ -491,14 +503,14 @@
"settingsImageBackground": "图像背景", "settingsImageBackground": "图像背景",
"settingsViewerQuickActionsTile": "快速操作", "settingsViewerQuickActionsTile": "快速操作",
"settingsViewerQuickActionEditorTitle": "快速操作", "settingsViewerQuickActionEditorPageTitle": "快速操作",
"settingsViewerQuickActionEditorBanner": "按住并拖拽可移动按钮并选择查看器中显示的操作", "settingsViewerQuickActionEditorBanner": "按住并拖拽可移动按钮并选择查看器中显示的操作",
"settingsViewerQuickActionEditorDisplayedButtons": "显示的按钮", "settingsViewerQuickActionEditorDisplayedButtonsSectionTitle": "显示的按钮",
"settingsViewerQuickActionEditorAvailableButtons": "可用按钮", "settingsViewerQuickActionEditorAvailableButtonsSectionTitle": "可用按钮",
"settingsViewerQuickActionEmpty": "无按钮", "settingsViewerQuickActionEmpty": "无按钮",
"settingsViewerOverlayTile": "叠加层", "settingsViewerOverlayTile": "叠加层",
"settingsViewerOverlayTitle": "叠加层", "settingsViewerOverlayPageTitle": "叠加层",
"settingsViewerShowOverlayOnOpening": "打开时显示", "settingsViewerShowOverlayOnOpening": "打开时显示",
"settingsViewerShowMinimap": "显示小地图", "settingsViewerShowMinimap": "显示小地图",
"settingsViewerShowInformation": "显示信息", "settingsViewerShowInformation": "显示信息",
@ -508,30 +520,30 @@
"settingsViewerEnableOverlayBlurEffect": "模糊特效", "settingsViewerEnableOverlayBlurEffect": "模糊特效",
"settingsViewerSlideshowTile": "幻灯片", "settingsViewerSlideshowTile": "幻灯片",
"settingsViewerSlideshowTitle": "幻灯片", "settingsViewerSlideshowPageTitle": "幻灯片",
"settingsSlideshowRepeat": "重复", "settingsSlideshowRepeat": "重复",
"settingsSlideshowShuffle": "随机播放", "settingsSlideshowShuffle": "随机播放",
"settingsSlideshowFillScreen": "填充屏幕", "settingsSlideshowFillScreen": "填充屏幕",
"settingsSlideshowTransitionTile": "过渡动画", "settingsSlideshowTransitionTile": "过渡动画",
"settingsSlideshowTransitionTitle": "过渡动画", "settingsSlideshowTransitionDialogTitle": "过渡动画",
"settingsSlideshowIntervalTile": "时间间隔", "settingsSlideshowIntervalTile": "时间间隔",
"settingsSlideshowIntervalTitle": "时间间隔", "settingsSlideshowIntervalDialogTitle": "时间间隔",
"settingsSlideshowVideoPlaybackTile": "视频回放", "settingsSlideshowVideoPlaybackTile": "视频回放",
"settingsSlideshowVideoPlaybackTitle": "视频回放", "settingsSlideshowVideoPlaybackDialogTitle": "视频回放",
"settingsVideoPageTitle": "视频设置", "settingsVideoPageTitle": "视频设置",
"settingsSectionVideo": "视频", "settingsVideoSectionTitle": "视频",
"settingsVideoShowVideos": "显示视频", "settingsVideoShowVideos": "显示视频",
"settingsVideoEnableHardwareAcceleration": "硬件加速", "settingsVideoEnableHardwareAcceleration": "硬件加速",
"settingsVideoEnableAutoPlay": "自动播放", "settingsVideoEnableAutoPlay": "自动播放",
"settingsVideoLoopModeTile": "循环模式", "settingsVideoLoopModeTile": "循环模式",
"settingsVideoLoopModeTitle": "循环模式", "settingsVideoLoopModeDialogTitle": "循环模式",
"settingsSubtitleThemeTile": "字幕", "settingsSubtitleThemeTile": "字幕",
"settingsSubtitleThemeTitle": "字幕", "settingsSubtitleThemePageTitle": "字幕",
"settingsSubtitleThemeSample": "这是一个字幕示例。", "settingsSubtitleThemeSample": "这是一个字幕示例。",
"settingsSubtitleThemeTextAlignmentTile": "对齐方式", "settingsSubtitleThemeTextAlignmentTile": "对齐方式",
"settingsSubtitleThemeTextAlignmentTitle": "对齐方式", "settingsSubtitleThemeTextAlignmentDialogTitle": "对齐方式",
"settingsSubtitleThemeTextSize": "文本大小", "settingsSubtitleThemeTextSize": "文本大小",
"settingsSubtitleThemeShowOutline": "显示轮廓和阴影", "settingsSubtitleThemeShowOutline": "显示轮廓和阴影",
"settingsSubtitleThemeTextColor": "文本颜色", "settingsSubtitleThemeTextColor": "文本颜色",
@ -543,13 +555,13 @@
"settingsSubtitleThemeTextAlignmentRight": "居右", "settingsSubtitleThemeTextAlignmentRight": "居右",
"settingsVideoControlsTile": "控件", "settingsVideoControlsTile": "控件",
"settingsVideoControlsTitle": "控件", "settingsVideoControlsPageTitle": "控件",
"settingsVideoButtonsTile": "按钮", "settingsVideoButtonsTile": "按钮",
"settingsVideoButtonsTitle": "按钮", "settingsVideoButtonsDialogTitle": "按钮",
"settingsVideoGestureDoubleTapTogglePlay": "双击播放/暂停", "settingsVideoGestureDoubleTapTogglePlay": "双击播放/暂停",
"settingsVideoGestureSideDoubleTapSeek": "双击屏幕边缘步进/步退", "settingsVideoGestureSideDoubleTapSeek": "双击屏幕边缘步进/步退",
"settingsSectionPrivacy": "隐私", "settingsPrivacySectionTitle": "隐私",
"settingsAllowInstalledAppAccess": "允许访问应用清单", "settingsAllowInstalledAppAccess": "允许访问应用清单",
"settingsAllowInstalledAppAccessSubtitle": "用于改善相册显示结果", "settingsAllowInstalledAppAccessSubtitle": "用于改善相册显示结果",
"settingsAllowErrorReporting": "允许匿名错误报告", "settingsAllowErrorReporting": "允许匿名错误报告",
@ -558,52 +570,56 @@
"settingsEnableBinSubtitle": "将删除项保留 30 天", "settingsEnableBinSubtitle": "将删除项保留 30 天",
"settingsHiddenItemsTile": "隐藏项", "settingsHiddenItemsTile": "隐藏项",
"settingsHiddenItemsTitle": "隐藏项", "settingsHiddenItemsPageTitle": "隐藏项",
"settingsHiddenFiltersTitle": "隐藏过滤器", "settingsHiddenItemsTabFilters": "隐藏过滤器",
"settingsHiddenFiltersBanner": "匹配隐藏过滤器的照片和视频将不会出现在你的媒体集中", "settingsHiddenFiltersBanner": "匹配隐藏过滤器的照片和视频将不会出现在你的媒体集中",
"settingsHiddenFiltersEmpty": "无隐藏过滤器", "settingsHiddenFiltersEmpty": "无隐藏过滤器",
"settingsHiddenPathsTitle": "隐藏路径", "settingsHiddenItemsTabPaths": "隐藏路径",
"settingsHiddenPathsBanner": "以下文件夹及其子文件夹中的照片和视频将不会出现在你的媒体集中", "settingsHiddenPathsBanner": "以下文件夹及其子文件夹中的照片和视频将不会出现在你的媒体集中",
"addPathTooltip": "添加路径", "addPathTooltip": "添加路径",
"settingsStorageAccessTile": "存储访问", "settingsStorageAccessTile": "存储访问",
"settingsStorageAccessTitle": "存储访问", "settingsStorageAccessPageTitle": "存储访问",
"settingsStorageAccessBanner": "某些目录需要具有明确的访问权限才能修改其中的文件,你可以在此处查看你之前已授予访问权限的目录", "settingsStorageAccessBanner": "某些目录需要具有明确的访问权限才能修改其中的文件,你可以在此处查看你之前已授予访问权限的目录",
"settingsStorageAccessEmpty": "尚未授予访问权限", "settingsStorageAccessEmpty": "尚未授予访问权限",
"settingsStorageAccessRevokeTooltip": "撤消", "settingsStorageAccessRevokeTooltip": "撤消",
"settingsSectionAccessibility": "无障碍", "settingsAccessibilitySectionTitle": "无障碍",
"settingsRemoveAnimationsTile": "移除动画", "settingsRemoveAnimationsTile": "移除动画",
"settingsRemoveAnimationsTitle": "移除动画", "settingsRemoveAnimationsDialogTitle": "移除动画",
"settingsTimeToTakeActionTile": "生效时间", "settingsTimeToTakeActionTile": "生效时间",
"settingsTimeToTakeActionTitle": "生效时间", "settingsTimeToTakeActionDialogTitle": "生效时间",
"settingsSectionDisplay": "显示", "settingsDisplaySectionTitle": "显示",
"settingsThemeBrightness": "主题", "settingsThemeBrightnessTile": "主题",
"settingsThemeBrightnessDialogTitle": "主题",
"settingsThemeColorHighlights": "色彩强调", "settingsThemeColorHighlights": "色彩强调",
"settingsThemeEnableDynamicColor": "动态色彩", "settingsThemeEnableDynamicColor": "动态色彩",
"settingsDisplayRefreshRateModeTile": "显示刷新率", "settingsDisplayRefreshRateModeTile": "显示刷新率",
"settingsDisplayRefreshRateModeTitle": "刷新率", "settingsDisplayRefreshRateModeDialogTitle": "刷新率",
"settingsSectionLanguage": "语言和格式", "settingsLanguageSectionTitle": "语言和格式",
"settingsLanguage": "界面语言", "settingsLanguageTile": "界面语言",
"settingsLanguagePageTitle": "界面语言",
"settingsCoordinateFormatTile": "坐标格式", "settingsCoordinateFormatTile": "坐标格式",
"settingsCoordinateFormatTitle": "坐标格式", "settingsCoordinateFormatDialogTitle": "坐标格式",
"settingsUnitSystemTile": "单位", "settingsUnitSystemTile": "单位",
"settingsUnitSystemTitle": "单位", "settingsUnitSystemDialogTitle": "单位",
"settingsScreenSaverPageTitle": "屏保", "settingsScreenSaverPageTitle": "屏保",
"settingsWidgetPageTitle": "相框", "settingsWidgetPageTitle": "相框",
"settingsWidgetShowOutline": "轮廓", "settingsWidgetShowOutline": "轮廓",
"settingsCollectionTile": "媒体集",
"statsPageTitle": "统计", "statsPageTitle": "统计",
"statsWithGps": "{count, plural, other{{count} 项带位置信息}}", "statsWithGps": "{count, plural, other{{count} 项带位置信息}}",
"statsTopCountries": "热门国家", "statsTopCountriesSectionTitle": "热门国家",
"statsTopPlaces": "热门地点", "statsTopPlacesSectionTitle": "热门地点",
"statsTopTags": "热门标签", "statsTopTagsSectionTitle": "热门标签",
"viewerOpenPanoramaButtonLabel": "打开全景", "viewerOpenPanoramaButtonLabel": "打开全景",
"viewerSetWallpaperButtonLabel": "设置壁纸", "viewerSetWallpaperButtonLabel": "设置壁纸",
@ -614,6 +630,7 @@
"viewerInfoBackToViewerTooltip": "返回查看器", "viewerInfoBackToViewerTooltip": "返回查看器",
"viewerInfoUnknown": "未知", "viewerInfoUnknown": "未知",
"viewerInfoLabelDescription": "备注",
"viewerInfoLabelTitle": "标题", "viewerInfoLabelTitle": "标题",
"viewerInfoLabelDate": "日期", "viewerInfoLabelDate": "日期",
"viewerInfoLabelResolution": "分辨率", "viewerInfoLabelResolution": "分辨率",
@ -625,7 +642,7 @@
"viewerInfoLabelCoordinates": "坐标", "viewerInfoLabelCoordinates": "坐标",
"viewerInfoLabelAddress": "地址", "viewerInfoLabelAddress": "地址",
"mapStyleTitle": "地图样式", "mapStyleDialogTitle": "地图样式",
"mapStyleTooltip": "选择地图样式", "mapStyleTooltip": "选择地图样式",
"mapZoomInTooltip": "放大", "mapZoomInTooltip": "放大",
"mapZoomOutTooltip": "缩小", "mapZoomOutTooltip": "缩小",

View file

@ -7,7 +7,7 @@ enum EntryInfoAction {
// general // general
editDate, editDate,
editLocation, editLocation,
editDescription, editTitleDescription,
editRating, editRating,
editTags, editTags,
removeMetadata, removeMetadata,
@ -24,7 +24,7 @@ class EntryInfoActions {
static const common = [ static const common = [
EntryInfoAction.editDate, EntryInfoAction.editDate,
EntryInfoAction.editLocation, EntryInfoAction.editLocation,
EntryInfoAction.editDescription, EntryInfoAction.editTitleDescription,
EntryInfoAction.editRating, EntryInfoAction.editRating,
EntryInfoAction.editTags, EntryInfoAction.editTags,
EntryInfoAction.removeMetadata, EntryInfoAction.removeMetadata,
@ -45,8 +45,8 @@ extension ExtraEntryInfoAction on EntryInfoAction {
return context.l10n.entryInfoActionEditDate; return context.l10n.entryInfoActionEditDate;
case EntryInfoAction.editLocation: case EntryInfoAction.editLocation:
return context.l10n.entryInfoActionEditLocation; return context.l10n.entryInfoActionEditLocation;
case EntryInfoAction.editDescription: case EntryInfoAction.editTitleDescription:
return context.l10n.entryInfoActionEditDescription; return context.l10n.entryInfoActionEditTitleDescription;
case EntryInfoAction.editRating: case EntryInfoAction.editRating:
return context.l10n.entryInfoActionEditRating; return context.l10n.entryInfoActionEditRating;
case EntryInfoAction.editTags: case EntryInfoAction.editTags:
@ -88,7 +88,7 @@ extension ExtraEntryInfoAction on EntryInfoAction {
return AIcons.date; return AIcons.date;
case EntryInfoAction.editLocation: case EntryInfoAction.editLocation:
return AIcons.location; return AIcons.location;
case EntryInfoAction.editDescription: case EntryInfoAction.editTitleDescription:
return AIcons.description; return AIcons.description;
case EntryInfoAction.editRating: case EntryInfoAction.editRating:
return AIcons.editRating; return AIcons.editRating;

View file

@ -31,7 +31,7 @@ enum EntrySetAction {
flip, flip,
editDate, editDate,
editLocation, editLocation,
editDescription, editTitleDescription,
editRating, editRating,
editTags, editTags,
removeMetadata, removeMetadata,
@ -100,7 +100,7 @@ class EntrySetActions {
static const edit = [ static const edit = [
EntrySetAction.editDate, EntrySetAction.editDate,
EntrySetAction.editLocation, EntrySetAction.editLocation,
EntrySetAction.editDescription, EntrySetAction.editTitleDescription,
EntrySetAction.editRating, EntrySetAction.editRating,
EntrySetAction.editTags, EntrySetAction.editTags,
EntrySetAction.removeMetadata, EntrySetAction.removeMetadata,
@ -164,8 +164,8 @@ extension ExtraEntrySetAction on EntrySetAction {
return context.l10n.entryInfoActionEditDate; return context.l10n.entryInfoActionEditDate;
case EntrySetAction.editLocation: case EntrySetAction.editLocation:
return context.l10n.entryInfoActionEditLocation; return context.l10n.entryInfoActionEditLocation;
case EntrySetAction.editDescription: case EntrySetAction.editTitleDescription:
return context.l10n.entryInfoActionEditDescription; return context.l10n.entryInfoActionEditTitleDescription;
case EntrySetAction.editRating: case EntrySetAction.editRating:
return context.l10n.entryInfoActionEditRating; return context.l10n.entryInfoActionEditRating;
case EntrySetAction.editTags: case EntrySetAction.editTags:
@ -233,7 +233,7 @@ extension ExtraEntrySetAction on EntrySetAction {
return AIcons.date; return AIcons.date;
case EntrySetAction.editLocation: case EntrySetAction.editLocation:
return AIcons.location; return AIcons.location;
case EntrySetAction.editDescription: case EntrySetAction.editTitleDescription:
return AIcons.description; return AIcons.description;
case EntrySetAction.editRating: case EntrySetAction.editRating:
return AIcons.editRating; return AIcons.editRating;

View file

@ -213,9 +213,13 @@ class AvesEntry {
return _extension; return _extension;
} }
String? get storagePath => trashed ? trashDetails?.path : path;
String? get storageDirectory => trashed ? pContext.dirname(trashDetails!.path) : directory;
bool get isMissingAtPath { bool get isMissingAtPath {
final effectivePath = trashed ? trashDetails?.path : path; final _storagePath = storagePath;
return effectivePath != null && !File(effectivePath).existsSync(); return _storagePath != null && !File(_storagePath).existsSync();
} }
// the MIME type reported by the Media Store is unreliable // the MIME type reported by the Media Store is unreliable
@ -279,7 +283,7 @@ class AvesEntry {
bool get canEditLocation => canEdit && canEditExif; bool get canEditLocation => canEdit && canEditExif;
bool get canEditDescription => canEdit && (canEditExif || canEditXmp); bool get canEditTitleDescription => canEdit && canEditXmp;
bool get canEditRating => canEdit && canEditXmp; bool get canEditRating => canEdit && canEditXmp;
@ -738,7 +742,12 @@ class AvesEntry {
} }
// when the MIME type or the image itself changed (e.g. after rotation) // when the MIME type or the image itself changed (e.g. after rotation)
Future<void> _onVisualFieldChanged(String oldMimeType, int? oldDateModifiedSecs, int oldRotationDegrees, bool oldIsFlipped) async { Future<void> _onVisualFieldChanged(
String oldMimeType,
int? oldDateModifiedSecs,
int oldRotationDegrees,
bool oldIsFlipped,
) async {
if ((!MimeTypes.refersToSameType(oldMimeType, mimeType) && !MimeTypes.isVideo(oldMimeType)) || oldDateModifiedSecs != dateModifiedSecs || oldRotationDegrees != rotationDegrees || oldIsFlipped != isFlipped) { if ((!MimeTypes.refersToSameType(oldMimeType, mimeType) && !MimeTypes.isVideo(oldMimeType)) || oldDateModifiedSecs != dateModifiedSecs || oldRotationDegrees != rotationDegrees || oldIsFlipped != isFlipped) {
await EntryCache.evict(uri, oldMimeType, oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped); await EntryCache.evict(uri, oldMimeType, oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped);
imageChangeNotifier.notify(); imageChangeNotifier.notify();

View file

@ -53,7 +53,7 @@ extension ExtraAvesEntryImages on AvesEntry {
pageId: pageId, pageId: pageId,
rotationDegrees: rotationDegrees, rotationDegrees: rotationDegrees,
isFlipped: isFlipped, isFlipped: isFlipped,
expectedContentLength: sizeBytes, sizeBytes: sizeBytes,
); );
bool _isReady(Object providerKey) => imageCache.statusForKey(providerKey).keepAlive; bool _isReady(Object providerKey) => imageCache.statusForKey(providerKey).keepAlive;

View file

@ -140,37 +140,62 @@ extension ExtraAvesEntryMetadataEdition on AvesEntry {
return _changeOrientation(() => metadataEditService.flip(this)); return _changeOrientation(() => metadataEditService.flip(this));
} }
// write: // write title:
// - IPTC / object-name, if IPTC exists
// - XMP / dc:title
// write description:
// - Exif / ImageDescription // - Exif / ImageDescription
// - IPTC / caption-abstract, if IPTC exists // - IPTC / caption-abstract, if IPTC exists
// - XMP / dc:description // - XMP / dc:description
Future<Set<EntryDataType>> editDescription(String? description) async { Future<Set<EntryDataType>> editTitleDescription(Map<DescriptionField, String?> fields) async {
final Set<EntryDataType> dataTypes = {}; final Set<EntryDataType> dataTypes = {};
final Map<MetadataType, dynamic> metadata = {}; final Map<MetadataType, dynamic> metadata = {};
final missingDate = await _missingDateCheckAndExifEdit(dataTypes); final missingDate = await _missingDateCheckAndExifEdit(dataTypes);
if (canEditExif) { final editTitle = fields.keys.contains(DescriptionField.title);
final editDescription = fields.keys.contains(DescriptionField.description);
final title = fields[DescriptionField.title];
final description = fields[DescriptionField.description];
if (canEditExif && editDescription) {
metadata[MetadataType.exif] = {MetadataField.exifImageDescription.exifInterfaceTag!: description}; metadata[MetadataType.exif] = {MetadataField.exifImageDescription.exifInterfaceTag!: description};
} }
if (canEditIptc) { if (canEditIptc) {
final iptc = await metadataFetchService.getIptc(this); final iptc = await metadataFetchService.getIptc(this);
if (iptc != null) { if (iptc != null) {
if (editTitle) {
editIptcValues(iptc, IPTC.applicationRecord, IPTC.objectName, {if (title != null) title});
}
if (editDescription) {
editIptcValues(iptc, IPTC.applicationRecord, IPTC.captionAbstractTag, {if (description != null) description}); editIptcValues(iptc, IPTC.applicationRecord, IPTC.captionAbstractTag, {if (description != null) description});
}
metadata[MetadataType.iptc] = iptc; metadata[MetadataType.iptc] = iptc;
} }
} }
if (canEditXmp) { if (canEditXmp) {
metadata[MetadataType.xmp] = await _editXmp((descriptions) { metadata[MetadataType.xmp] = await _editXmp((descriptions) {
final modified = XMP.setAttribute( var modified = false;
if (editTitle) {
modified |= XMP.setAttribute(
descriptions,
XMP.dcTitle,
title,
namespace: Namespaces.dc,
strat: XmpEditStrategy.always,
);
}
if (editDescription) {
modified |= XMP.setAttribute(
descriptions, descriptions,
XMP.dcDescription, XMP.dcDescription,
description, description,
namespace: Namespaces.dc, namespace: Namespaces.dc,
strat: XmpEditStrategy.always, strat: XmpEditStrategy.always,
); );
}
if (modified && missingDate != null) { if (modified && missingDate != null) {
editCreateDateXmp(descriptions, missingDate); editCreateDateXmp(descriptions, missingDate);
} }
@ -182,6 +207,7 @@ extension ExtraAvesEntryMetadataEdition on AvesEntry {
if (newFields.isNotEmpty) { if (newFields.isNotEmpty) {
dataTypes.addAll({ dataTypes.addAll({
EntryDataType.basic, EntryDataType.basic,
EntryDataType.catalog,
}); });
} }
@ -467,3 +493,5 @@ extension ExtraAvesEntryMetadataEdition on AvesEntry {
}; };
} }
} }
enum DescriptionField { title, description }

View file

@ -8,6 +8,7 @@ import 'package:aves/model/filters/date.dart';
import 'package:aves/model/filters/favourite.dart'; import 'package:aves/model/filters/favourite.dart';
import 'package:aves/model/filters/location.dart'; import 'package:aves/model/filters/location.dart';
import 'package:aves/model/filters/mime.dart'; import 'package:aves/model/filters/mime.dart';
import 'package:aves/model/filters/missing.dart';
import 'package:aves/model/filters/path.dart'; import 'package:aves/model/filters/path.dart';
import 'package:aves/model/filters/query.dart'; import 'package:aves/model/filters/query.dart';
import 'package:aves/model/filters/rating.dart'; import 'package:aves/model/filters/rating.dart';
@ -30,12 +31,14 @@ abstract class CollectionFilter extends Equatable implements Comparable<Collecti
MimeFilter.type, MimeFilter.type,
AlbumFilter.type, AlbumFilter.type,
TypeFilter.type, TypeFilter.type,
RecentlyAddedFilter.type,
DateFilter.type, DateFilter.type,
LocationFilter.type, LocationFilter.type,
CoordinateFilter.type, CoordinateFilter.type,
FavouriteFilter.type, FavouriteFilter.type,
RatingFilter.type, RatingFilter.type,
TagFilter.type, TagFilter.type,
MissingFilter.type,
PathFilter.type, PathFilter.type,
]; ];
@ -63,6 +66,8 @@ abstract class CollectionFilter extends Equatable implements Comparable<Collecti
return LocationFilter.fromMap(jsonMap); return LocationFilter.fromMap(jsonMap);
case MimeFilter.type: case MimeFilter.type:
return MimeFilter.fromMap(jsonMap); return MimeFilter.fromMap(jsonMap);
case MissingFilter.type:
return MissingFilter.fromMap(jsonMap);
case PathFilter.type: case PathFilter.type:
return PathFilter.fromMap(jsonMap); return PathFilter.fromMap(jsonMap);
case QueryFilter.type: case QueryFilter.type:

View file

@ -56,7 +56,7 @@ class LocationFilter extends CoveredCollectionFilter {
String get universalLabel => _location; String get universalLabel => _location;
@override @override
String getLabel(BuildContext context) => _location.isEmpty ? context.l10n.filterLocationEmptyLabel : _location; String getLabel(BuildContext context) => _location.isEmpty ? context.l10n.filterNoLocationLabel : _location;
@override @override
Widget iconBuilder(BuildContext context, double size, {bool showGenericIcon = true}) { Widget iconBuilder(BuildContext context, double size, {bool showGenericIcon = true}) {

View file

@ -0,0 +1,73 @@
import 'package:aves/model/filters/filters.dart';
import 'package:aves/theme/icons.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:flutter/widgets.dart';
class MissingFilter extends CollectionFilter {
static const type = 'missing';
static const _date = 'date';
static const _title = 'title';
final String metadataType;
late final EntryFilter _test;
late final IconData _icon;
static final date = MissingFilter._private(_date);
static final title = MissingFilter._private(_title);
@override
List<Object?> get props => [metadataType];
MissingFilter._private(this.metadataType) {
switch (metadataType) {
case _date:
_test = (entry) => (entry.catalogMetadata?.dateMillis ?? 0) == 0;
_icon = AIcons.dateUndated;
break;
case _title:
_test = (entry) => (entry.catalogMetadata?.xmpTitle ?? '').isEmpty;
_icon = AIcons.descriptionUntitled;
break;
}
}
factory MissingFilter.fromMap(Map<String, dynamic> json) {
return MissingFilter._private(
json['metadataType'],
);
}
@override
Map<String, dynamic> toMap() => {
'type': type,
'metadataType': metadataType,
};
@override
EntryFilter get test => _test;
@override
String get universalLabel => metadataType;
@override
String getLabel(BuildContext context) {
switch (metadataType) {
case _date:
return context.l10n.filterNoDateLabel;
case _title:
return context.l10n.filterNoTitleLabel;
default:
return metadataType;
}
}
@override
Widget iconBuilder(BuildContext context, double size, {bool showGenericIcon = true}) => Icon(_icon, size: size);
@override
String get category => type;
@override
String get key => '$type-$metadataType';
}

View file

@ -57,7 +57,7 @@ class RatingFilter extends CollectionFilter {
case -1: case -1:
return context.l10n.filterRatingRejectedLabel; return context.l10n.filterRatingRejectedLabel;
case 0: case 0:
return context.l10n.filterRatingUnratedLabel; return context.l10n.filterNoRatingLabel;
default: default:
return '\u2B50' * rating; return '\u2B50' * rating;
} }

View file

@ -38,7 +38,7 @@ class RecentlyAddedFilter extends CollectionFilter {
String getLabel(BuildContext context) => context.l10n.filterRecentlyAddedLabel; String getLabel(BuildContext context) => context.l10n.filterRecentlyAddedLabel;
@override @override
Widget iconBuilder(BuildContext context, double size, {bool showGenericIcon = true}) => Icon(AIcons.recent, size: size); Widget iconBuilder(BuildContext context, double size, {bool showGenericIcon = true}) => Icon(AIcons.dateRecent, size: size);
@override @override
String get category => type; String get category => type;

View file

@ -44,7 +44,7 @@ class TagFilter extends CoveredCollectionFilter {
String get universalLabel => tag; String get universalLabel => tag;
@override @override
String getLabel(BuildContext context) => tag.isEmpty ? context.l10n.filterTagEmptyLabel : tag; String getLabel(BuildContext context) => tag.isEmpty ? context.l10n.filterNoTagLabel : tag;
@override @override
Widget? iconBuilder(BuildContext context, double size, {bool showGenericIcon = true}) => showGenericIcon ? Icon(tag.isEmpty ? AIcons.tagUntagged : AIcons.tag, size: size) : null; Widget? iconBuilder(BuildContext context, double size, {bool showGenericIcon = true}) => showGenericIcon ? Icon(tag.isEmpty ? AIcons.tagUntagged : AIcons.tag, size: size) : null;

View file

@ -46,7 +46,7 @@ class TypeFilter extends CollectionFilter {
break; break;
case _panorama: case _panorama:
_test = (entry) => entry.isImage && entry.is360; _test = (entry) => entry.isImage && entry.is360;
_icon = AIcons.threeSixty; _icon = AIcons.panorama;
break; break;
case _raw: case _raw:
_test = (entry) => entry.isRaw; _test = (entry) => entry.isRaw;
@ -54,7 +54,7 @@ class TypeFilter extends CollectionFilter {
break; break;
case _sphericalVideo: case _sphericalVideo:
_test = (entry) => entry.isVideo && entry.is360; _test = (entry) => entry.isVideo && entry.is360;
_icon = AIcons.threeSixty; _icon = AIcons.sphericalVideo;
break; break;
} }
} }

View file

@ -5,7 +5,7 @@ import 'package:aves/model/filters/mime.dart';
import 'package:aves/model/filters/recent.dart'; import 'package:aves/model/filters/recent.dart';
import 'package:aves/model/naming_pattern.dart'; import 'package:aves/model/naming_pattern.dart';
import 'package:aves/model/settings/enums/enums.dart'; import 'package:aves/model/settings/enums/enums.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums/enums.dart';
import 'package:aves/widgets/filter_grids/albums_page.dart'; import 'package:aves/widgets/filter_grids/albums_page.dart';
import 'package:aves/widgets/filter_grids/countries_page.dart'; import 'package:aves/widgets/filter_grids/countries_page.dart';
import 'package:aves/widgets/filter_grids/tags_page.dart'; import 'package:aves/widgets/filter_grids/tags_page.dart';

View file

@ -9,9 +9,9 @@ extension ExtraHomePageSetting on HomePageSetting {
String getName(BuildContext context) { String getName(BuildContext context) {
switch (this) { switch (this) {
case HomePageSetting.collection: case HomePageSetting.collection:
return context.l10n.collectionPageTitle; return context.l10n.drawerCollectionAll;
case HomePageSetting.albums: case HomePageSetting.albums:
return context.l10n.albumPageTitle; return context.l10n.drawerAlbumPage;
} }
} }

View file

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert';
import 'dart:math'; import 'dart:math';
import 'package:aves/l10n/l10n.dart'; import 'package:aves/l10n/l10n.dart';
@ -8,13 +9,14 @@ import 'package:aves/model/filters/filters.dart';
import 'package:aves/model/settings/defaults.dart'; import 'package:aves/model/settings/defaults.dart';
import 'package:aves/model/settings/enums/enums.dart'; import 'package:aves/model/settings/enums/enums.dart';
import 'package:aves/model/settings/enums/map_style.dart'; import 'package:aves/model/settings/enums/map_style.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums/enums.dart';
import 'package:aves/services/common/optional_event_channel.dart'; import 'package:aves/services/common/optional_event_channel.dart';
import 'package:aves/services/common/services.dart'; import 'package:aves/services/common/services.dart';
import 'package:aves_map/aves_map.dart'; import 'package:aves_map/aves_map.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:latlong2/latlong.dart';
final Settings settings = Settings._private(); final Settings settings = Settings._private();
@ -73,6 +75,7 @@ class Settings extends ChangeNotifier {
// collection // collection
static const collectionGroupFactorKey = 'collection_group_factor'; static const collectionGroupFactorKey = 'collection_group_factor';
static const collectionSortFactorKey = 'collection_sort_factor'; static const collectionSortFactorKey = 'collection_sort_factor';
static const collectionSortReverseKey = 'collection_sort_reverse';
static const collectionBrowsingQuickActionsKey = 'collection_browsing_quick_actions'; static const collectionBrowsingQuickActionsKey = 'collection_browsing_quick_actions';
static const collectionSelectionQuickActionsKey = 'collection_selection_quick_actions'; static const collectionSelectionQuickActionsKey = 'collection_selection_quick_actions';
static const showThumbnailFavouriteKey = 'show_thumbnail_favourite'; static const showThumbnailFavouriteKey = 'show_thumbnail_favourite';
@ -88,6 +91,9 @@ class Settings extends ChangeNotifier {
static const albumSortFactorKey = 'album_sort_factor'; static const albumSortFactorKey = 'album_sort_factor';
static const countrySortFactorKey = 'country_sort_factor'; static const countrySortFactorKey = 'country_sort_factor';
static const tagSortFactorKey = 'tag_sort_factor'; static const tagSortFactorKey = 'tag_sort_factor';
static const albumSortReverseKey = 'album_sort_reverse';
static const countrySortReverseKey = 'country_sort_reverse';
static const tagSortReverseKey = 'tag_sort_reverse';
static const pinnedFiltersKey = 'pinned_filters'; static const pinnedFiltersKey = 'pinned_filters';
static const hiddenFiltersKey = 'hidden_filters'; static const hiddenFiltersKey = 'hidden_filters';
@ -121,11 +127,14 @@ class Settings extends ChangeNotifier {
static const subtitleBackgroundColorKey = 'subtitle_background_color'; static const subtitleBackgroundColorKey = 'subtitle_background_color';
// info // info
static const infoMapStyleKey = 'info_map_style';
static const infoMapZoomKey = 'info_map_zoom'; static const infoMapZoomKey = 'info_map_zoom';
static const coordinateFormatKey = 'coordinates_format'; static const coordinateFormatKey = 'coordinates_format';
static const unitSystemKey = 'unit_system'; static const unitSystemKey = 'unit_system';
// map
static const mapStyleKey = 'info_map_style';
static const mapDefaultCenterKey = 'map_default_center';
// search // search
static const saveSearchHistoryKey = 'save_search_history'; static const saveSearchHistoryKey = 'save_search_history';
static const searchHistoryKey = 'search_history'; static const searchHistoryKey = 'search_history';
@ -172,6 +181,7 @@ class Settings extends ChangeNotifier {
Future<void> init({required bool monitorPlatformSettings}) async { Future<void> init({required bool monitorPlatformSettings}) async {
await settingsStore.init(); await settingsStore.init();
_appliedLocale = null;
if (monitorPlatformSettings) { if (monitorPlatformSettings) {
_platformSettingsChangeChannel.receiveBroadcastStream().listen((event) => _onPlatformSettingsChange(event as Map?)); _platformSettingsChangeChannel.receiveBroadcastStream().listen((event) => _onPlatformSettingsChange(event as Map?));
} }
@ -197,10 +207,10 @@ class Settings extends ChangeNotifier {
// availability // availability
final defaultMapStyle = mobileServices.defaultMapStyle; final defaultMapStyle = mobileServices.defaultMapStyle;
if (mobileServices.mapStyles.contains(defaultMapStyle)) { if (mobileServices.mapStyles.contains(defaultMapStyle)) {
infoMapStyle = defaultMapStyle; mapStyle = defaultMapStyle;
} else { } else {
final styles = EntryMapStyle.values.whereNot((v) => v.needMobileService).toList(); final styles = EntryMapStyle.values.whereNot((v) => v.needMobileService).toList();
infoMapStyle = styles[Random().nextInt(styles.length)]; mapStyle = styles[Random().nextInt(styles.length)];
} }
} }
@ -382,6 +392,10 @@ class Settings extends ChangeNotifier {
set collectionSortFactor(EntrySortFactor newValue) => setAndNotify(collectionSortFactorKey, newValue.toString()); set collectionSortFactor(EntrySortFactor newValue) => setAndNotify(collectionSortFactorKey, newValue.toString());
bool get collectionSortReverse => getBoolOrDefault(collectionSortReverseKey, false);
set collectionSortReverse(bool newValue) => setAndNotify(collectionSortReverseKey, newValue);
List<EntrySetAction> get collectionBrowsingQuickActions => getEnumListOrDefault(collectionBrowsingQuickActionsKey, SettingsDefaults.collectionBrowsingQuickActions, EntrySetAction.values); List<EntrySetAction> get collectionBrowsingQuickActions => getEnumListOrDefault(collectionBrowsingQuickActionsKey, SettingsDefaults.collectionBrowsingQuickActions, EntrySetAction.values);
set collectionBrowsingQuickActions(List<EntrySetAction> newValue) => setAndNotify(collectionBrowsingQuickActionsKey, newValue.map((v) => v.toString()).toList()); set collectionBrowsingQuickActions(List<EntrySetAction> newValue) => setAndNotify(collectionBrowsingQuickActionsKey, newValue.map((v) => v.toString()).toList());
@ -436,6 +450,18 @@ class Settings extends ChangeNotifier {
set tagSortFactor(ChipSortFactor newValue) => setAndNotify(tagSortFactorKey, newValue.toString()); set tagSortFactor(ChipSortFactor newValue) => setAndNotify(tagSortFactorKey, newValue.toString());
bool get albumSortReverse => getBoolOrDefault(albumSortReverseKey, false);
set albumSortReverse(bool newValue) => setAndNotify(albumSortReverseKey, newValue);
bool get countrySortReverse => getBoolOrDefault(countrySortReverseKey, false);
set countrySortReverse(bool newValue) => setAndNotify(countrySortReverseKey, newValue);
bool get tagSortReverse => getBoolOrDefault(tagSortReverseKey, false);
set tagSortReverse(bool newValue) => setAndNotify(tagSortReverseKey, newValue);
Set<CollectionFilter> get pinnedFilters => (getStringList(pinnedFiltersKey) ?? []).map(CollectionFilter.fromJson).whereNotNull().toSet(); Set<CollectionFilter> get pinnedFilters => (getStringList(pinnedFiltersKey) ?? []).map(CollectionFilter.fromJson).whereNotNull().toSet();
set pinnedFilters(Set<CollectionFilter> newValue) => setAndNotify(pinnedFiltersKey, newValue.map((filter) => filter.toJson()).toList()); set pinnedFilters(Set<CollectionFilter> newValue) => setAndNotify(pinnedFiltersKey, newValue.map((filter) => filter.toJson()).toList());
@ -555,14 +581,6 @@ class Settings extends ChangeNotifier {
// info // info
EntryMapStyle get infoMapStyle {
final preferred = getEnumOrDefault(infoMapStyleKey, SettingsDefaults.infoMapStyle, EntryMapStyle.values);
final available = availability.mapStyles;
return available.contains(preferred) ? preferred : available.first;
}
set infoMapStyle(EntryMapStyle newValue) => setAndNotify(infoMapStyleKey, newValue.toString());
double get infoMapZoom => getDouble(infoMapZoomKey) ?? SettingsDefaults.infoMapZoom; double get infoMapZoom => getDouble(infoMapZoomKey) ?? SettingsDefaults.infoMapZoom;
set infoMapZoom(double newValue) => setAndNotify(infoMapZoomKey, newValue); set infoMapZoom(double newValue) => setAndNotify(infoMapZoomKey, newValue);
@ -575,6 +593,23 @@ class Settings extends ChangeNotifier {
set unitSystem(UnitSystem newValue) => setAndNotify(unitSystemKey, newValue.toString()); set unitSystem(UnitSystem newValue) => setAndNotify(unitSystemKey, newValue.toString());
// map
EntryMapStyle get mapStyle {
final preferred = getEnumOrDefault(mapStyleKey, SettingsDefaults.infoMapStyle, EntryMapStyle.values);
final available = availability.mapStyles;
return available.contains(preferred) ? preferred : available.first;
}
set mapStyle(EntryMapStyle newValue) => setAndNotify(mapStyleKey, newValue.toString());
LatLng? get mapDefaultCenter {
final json = getString(mapDefaultCenterKey);
return json != null ? LatLng.fromJson(jsonDecode(json)) : null;
}
set mapDefaultCenter(LatLng? newValue) => setAndNotify(mapDefaultCenterKey, newValue != null ? jsonEncode(newValue.toJson()) : null);
// search // search
bool get saveSearchHistory => getBoolOrDefault(saveSearchHistoryKey, SettingsDefaults.saveSearchHistory); bool get saveSearchHistory => getBoolOrDefault(saveSearchHistoryKey, SettingsDefaults.saveSearchHistory);
@ -813,6 +848,7 @@ class Settings extends ChangeNotifier {
case confirmMoveUndatedItemsKey: case confirmMoveUndatedItemsKey:
case confirmAfterMoveToBinKey: case confirmAfterMoveToBinKey:
case setMetadataDateBeforeFileOpKey: case setMetadataDateBeforeFileOpKey:
case collectionSortReverseKey:
case showThumbnailFavouriteKey: case showThumbnailFavouriteKey:
case showThumbnailTagKey: case showThumbnailTagKey:
case showThumbnailLocationKey: case showThumbnailLocationKey:
@ -820,6 +856,9 @@ class Settings extends ChangeNotifier {
case showThumbnailRatingKey: case showThumbnailRatingKey:
case showThumbnailRawKey: case showThumbnailRawKey:
case showThumbnailVideoDurationKey: case showThumbnailVideoDurationKey:
case albumSortReverseKey:
case countrySortReverseKey:
case tagSortReverseKey:
case showOverlayOnOpeningKey: case showOverlayOnOpeningKey:
case showOverlayMinimapKey: case showOverlayMinimapKey:
case showOverlayInfoKey: case showOverlayInfoKey:
@ -862,7 +901,8 @@ class Settings extends ChangeNotifier {
case videoLoopModeKey: case videoLoopModeKey:
case videoControlsKey: case videoControlsKey:
case subtitleTextAlignmentKey: case subtitleTextAlignmentKey:
case infoMapStyleKey: case mapStyleKey:
case mapDefaultCenterKey:
case coordinateFormatKey: case coordinateFormatKey:
case unitSystemKey: case unitSystemKey:
case accessibilityAnimationsKey: case accessibilityAnimationsKey:

View file

@ -4,12 +4,13 @@ import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/collection_source.dart'; import 'package:aves/model/source/collection_source.dart';
import 'package:aves/services/common/services.dart'; import 'package:aves/services/common/services.dart';
import 'package:aves/utils/android_file_utils.dart'; import 'package:aves/utils/android_file_utils.dart';
import 'package:aves/utils/collection_utils.dart';
import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
mixin AlbumMixin on SourceBase { mixin AlbumMixin on SourceBase {
final Set<String?> _directories = {}; final Set<String> _directories = {};
final Set<String> _newAlbums = {}; final Set<String> _newAlbums = {};
List<String> get rawAlbums => List.unmodifiable(_directories); List<String> get rawAlbums => List.unmodifiable(_directories);
@ -67,7 +68,7 @@ mixin AlbumMixin on SourceBase {
void addDirectories({required Set<String?> albums, bool notify = true}) { void addDirectories({required Set<String?> albums, bool notify = true}) {
if (!_directories.containsAll(albums)) { if (!_directories.containsAll(albums)) {
_directories.addAll(albums); _directories.addAll(albums.whereNotNull());
_onAlbumChanged(notify: notify); _onAlbumChanged(notify: notify);
} }
} }
@ -95,7 +96,7 @@ mixin AlbumMixin on SourceBase {
// filter summary // filter summary
// by directory // by directory
final Map<String, int> _filterEntryCountMap = {}; final Map<String, int> _filterEntryCountMap = {}, _filterSizeMap = {};
final Map<String, AvesEntry?> _filterRecentEntryMap = {}; final Map<String, AvesEntry?> _filterRecentEntryMap = {};
void invalidateAlbumFilterSummary({ void invalidateAlbumFilterSummary({
@ -103,10 +104,11 @@ mixin AlbumMixin on SourceBase {
Set<String?>? directories, Set<String?>? directories,
bool notify = true, bool notify = true,
}) { }) {
if (_filterEntryCountMap.isEmpty && _filterRecentEntryMap.isEmpty) return; if (_filterEntryCountMap.isEmpty && _filterSizeMap.isEmpty && _filterRecentEntryMap.isEmpty) return;
if (entries == null && directories == null) { if (entries == null && directories == null) {
_filterEntryCountMap.clear(); _filterEntryCountMap.clear();
_filterSizeMap.clear();
_filterRecentEntryMap.clear(); _filterRecentEntryMap.clear();
} else { } else {
directories ??= {}; directories ??= {};
@ -115,6 +117,7 @@ mixin AlbumMixin on SourceBase {
} }
directories.forEach((directory) { directories.forEach((directory) {
_filterEntryCountMap.remove(directory); _filterEntryCountMap.remove(directory);
_filterSizeMap.remove(directory);
_filterRecentEntryMap.remove(directory); _filterRecentEntryMap.remove(directory);
}); });
} }
@ -127,6 +130,10 @@ mixin AlbumMixin on SourceBase {
return _filterEntryCountMap.putIfAbsent(filter.album, () => visibleEntries.where(filter.test).length); return _filterEntryCountMap.putIfAbsent(filter.album, () => visibleEntries.where(filter.test).length);
} }
int albumSize(AlbumFilter filter) {
return _filterSizeMap.putIfAbsent(filter.album, () => visibleEntries.where(filter.test).map((v) => v.sizeBytes).sum);
}
AvesEntry? albumRecentEntry(AlbumFilter filter) { AvesEntry? albumRecentEntry(AlbumFilter filter) {
return _filterRecentEntryMap.putIfAbsent(filter.album, () => sortedEntriesByDate.firstWhereOrNull(filter.test)); return _filterRecentEntryMap.putIfAbsent(filter.album, () => sortedEntriesByDate.firstWhereOrNull(filter.test));
} }

View file

@ -22,13 +22,14 @@ import 'package:aves/utils/collection_utils.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'enums.dart'; import 'enums/enums.dart';
class CollectionLens with ChangeNotifier { class CollectionLens with ChangeNotifier {
final CollectionSource source; final CollectionSource source;
final Set<CollectionFilter> filters; final Set<CollectionFilter> filters;
EntryGroupFactor sectionFactor; EntryGroupFactor sectionFactor;
EntrySortFactor sortFactor; EntrySortFactor sortFactor;
bool sortReverse;
final AChangeNotifier filterChangeNotifier = AChangeNotifier(), sortSectionChangeNotifier = AChangeNotifier(); final AChangeNotifier filterChangeNotifier = AChangeNotifier(), sortSectionChangeNotifier = AChangeNotifier();
final List<StreamSubscription> _subscriptions = []; final List<StreamSubscription> _subscriptions = [];
int? id; int? id;
@ -49,7 +50,8 @@ class CollectionLens with ChangeNotifier {
this.fixedSelection, this.fixedSelection,
}) : filters = (filters ?? {}).whereNotNull().toSet(), }) : filters = (filters ?? {}).whereNotNull().toSet(),
sectionFactor = settings.collectionSectionFactor, sectionFactor = settings.collectionSectionFactor,
sortFactor = settings.collectionSortFactor { sortFactor = settings.collectionSortFactor,
sortReverse = settings.collectionSortReverse {
id ??= hashCode; id ??= hashCode;
if (listenToSource) { if (listenToSource) {
final sourceEvents = source.eventBus; final sourceEvents = source.eventBus;
@ -84,6 +86,7 @@ class CollectionLens with ChangeNotifier {
.where((event) => [ .where((event) => [
Settings.collectionSortFactorKey, Settings.collectionSortFactorKey,
Settings.collectionGroupFactorKey, Settings.collectionGroupFactorKey,
Settings.collectionSortReverseKey,
].contains(event.key)) ].contains(event.key))
.listen((_) => _onSettingsChanged())); .listen((_) => _onSettingsChanged()));
refresh(); refresh();
@ -218,6 +221,9 @@ class CollectionLens with ChangeNotifier {
_filteredSortedEntries.sort(AvesEntry.compareBySize); _filteredSortedEntries.sort(AvesEntry.compareBySize);
break; break;
} }
if (sortReverse) {
_filteredSortedEntries = _filteredSortedEntries.reversed.toList();
}
} }
void _applySection() { void _applySection() {
@ -247,7 +253,8 @@ class CollectionLens with ChangeNotifier {
break; break;
case EntrySortFactor.name: case EntrySortFactor.name:
final byAlbum = groupBy<AvesEntry, EntryAlbumSectionKey>(_filteredSortedEntries, (entry) => EntryAlbumSectionKey(entry.directory)); final byAlbum = groupBy<AvesEntry, EntryAlbumSectionKey>(_filteredSortedEntries, (entry) => EntryAlbumSectionKey(entry.directory));
sections = SplayTreeMap<EntryAlbumSectionKey, List<AvesEntry>>.of(byAlbum, (a, b) => source.compareAlbumsByName(a.directory!, b.directory!)); final compare = sortReverse ? (a, b) => source.compareAlbumsByName(b.directory!, a.directory!) : (a, b) => source.compareAlbumsByName(a.directory!, b.directory!);
sections = SplayTreeMap<EntryAlbumSectionKey, List<AvesEntry>>.of(byAlbum, compare);
break; break;
case EntrySortFactor.rating: case EntrySortFactor.rating:
sections = groupBy<AvesEntry, EntryRatingSectionKey>(_filteredSortedEntries, (entry) => EntryRatingSectionKey(entry.rating)); sections = groupBy<AvesEntry, EntryRatingSectionKey>(_filteredSortedEntries, (entry) => EntryRatingSectionKey(entry.rating));
@ -281,12 +288,14 @@ class CollectionLens with ChangeNotifier {
void _onSettingsChanged() { void _onSettingsChanged() {
final newSortFactor = settings.collectionSortFactor; final newSortFactor = settings.collectionSortFactor;
final newSectionFactor = settings.collectionSectionFactor; final newSectionFactor = settings.collectionSectionFactor;
final newSortReverse = settings.collectionSortReverse;
final needSort = sortFactor != newSortFactor; final needSort = sortFactor != newSortFactor || sortReverse != newSortReverse;
final needSection = needSort || sectionFactor != newSectionFactor; final needSection = needSort || sectionFactor != newSectionFactor;
if (needSort) { if (needSort) {
sortFactor = newSortFactor; sortFactor = newSortFactor;
sortReverse = newSortReverse;
_applySort(); _applySort();
} }
if (needSection) { if (needSection) {

View file

@ -13,7 +13,7 @@ import 'package:aves/model/metadata/trash.dart';
import 'package:aves/model/settings/settings.dart'; import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/album.dart'; import 'package:aves/model/source/album.dart';
import 'package:aves/model/source/analysis_controller.dart'; import 'package:aves/model/source/analysis_controller.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums/enums.dart';
import 'package:aves/model/source/events.dart'; import 'package:aves/model/source/events.dart';
import 'package:aves/model/source/location.dart'; import 'package:aves/model/source/location.dart';
import 'package:aves/model/source/tag.dart'; import 'package:aves/model/source/tag.dart';
@ -283,6 +283,16 @@ abstract class CollectionSource with SourceBase, AlbumMixin, LocationMixin, TagM
}) async { }) async {
if (movedOps.isEmpty) return; if (movedOps.isEmpty) return;
final replacedUris = movedOps
.map((movedOp) => movedOp.newFields['path'] as String?)
.map((targetPath) {
final existingEntry = _rawEntries.firstWhereOrNull((entry) => entry.path == targetPath && !entry.trashed);
return existingEntry?.uri;
})
.whereNotNull()
.toSet();
await removeEntries(replacedUris, includeTrash: false);
final fromAlbums = <String?>{}; final fromAlbums = <String?>{};
final movedEntries = <AvesEntry>{}; final movedEntries = <AvesEntry>{};
final copy = moveType == MoveType.copy; final copy = moveType == MoveType.copy;
@ -458,6 +468,13 @@ abstract class CollectionSource with SourceBase, AlbumMixin, LocationMixin, TagM
return 0; return 0;
} }
int size(CollectionFilter filter) {
if (filter is AlbumFilter) return albumSize(filter);
if (filter is LocationFilter) return countrySize(filter);
if (filter is TagFilter) return tagSize(filter);
return 0;
}
AvesEntry? recentEntry(CollectionFilter filter) { AvesEntry? recentEntry(CollectionFilter filter) {
if (filter is AlbumFilter) return albumRecentEntry(filter); if (filter is AlbumFilter) return albumRecentEntry(filter);
if (filter is LocationFilter) return countryRecentEntry(filter); if (filter is LocationFilter) return countryRecentEntry(filter);

View file

@ -1,6 +1,6 @@
enum SourceState { loading, cataloguing, locatingCountries, locatingPlaces, ready } enum SourceState { loading, cataloguing, locatingCountries, locatingPlaces, ready }
enum ChipSortFactor { date, name, count } enum ChipSortFactor { date, name, count, size }
enum AlbumChipGroupFactor { none, importance, volume } enum AlbumChipGroupFactor { none, importance, volume }

View file

@ -0,0 +1,105 @@
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:flutter/widgets.dart';
import 'enums.dart';
extension ExtraEntrySortFactor on EntrySortFactor {
String getName(BuildContext context) {
final l10n = context.l10n;
switch (this) {
case EntrySortFactor.date:
return l10n.sortByDate;
case EntrySortFactor.name:
return l10n.sortByAlbumFileName;
case EntrySortFactor.rating:
return l10n.sortByRating;
case EntrySortFactor.size:
return l10n.sortBySize;
}
}
String getOrderName(BuildContext context, bool reverse) {
final l10n = context.l10n;
switch (this) {
case EntrySortFactor.date:
return reverse ? l10n.sortOrderOldestFirst : l10n.sortOrderNewestFirst;
case EntrySortFactor.name:
return reverse ? l10n.sortOrderZtoA : l10n.sortOrderAtoZ;
case EntrySortFactor.rating:
return reverse ? l10n.sortOrderLowestFirst : l10n.sortOrderHighestFirst;
case EntrySortFactor.size:
return reverse ? l10n.sortOrderSmallestFirst : l10n.sortOrderLargestFirst;
}
}
}
extension ExtraChipSortFactor on ChipSortFactor {
String getName(BuildContext context) {
final l10n = context.l10n;
switch (this) {
case ChipSortFactor.date:
return l10n.sortByDate;
case ChipSortFactor.name:
return l10n.sortByName;
case ChipSortFactor.count:
return l10n.sortByItemCount;
case ChipSortFactor.size:
return l10n.sortBySize;
}
}
String getOrderName(BuildContext context, bool reverse) {
final l10n = context.l10n;
switch (this) {
case ChipSortFactor.date:
return reverse ? l10n.sortOrderOldestFirst : l10n.sortOrderNewestFirst;
case ChipSortFactor.name:
return reverse ? l10n.sortOrderZtoA : l10n.sortOrderAtoZ;
case ChipSortFactor.count:
case ChipSortFactor.size:
return reverse ? l10n.sortOrderSmallestFirst : l10n.sortOrderLargestFirst;
}
}
}
extension ExtraEntryGroupFactor on EntryGroupFactor {
String getName(BuildContext context) {
final l10n = context.l10n;
switch (this) {
case EntryGroupFactor.album:
return l10n.collectionGroupAlbum;
case EntryGroupFactor.month:
return l10n.collectionGroupMonth;
case EntryGroupFactor.day:
return l10n.collectionGroupDay;
case EntryGroupFactor.none:
return l10n.collectionGroupNone;
}
}
}
extension ExtraAlbumChipGroupFactor on AlbumChipGroupFactor {
String getName(BuildContext context) {
final l10n = context.l10n;
switch (this) {
case AlbumChipGroupFactor.importance:
return l10n.albumGroupTier;
case AlbumChipGroupFactor.volume:
return l10n.albumGroupVolume;
case AlbumChipGroupFactor.none:
return l10n.albumGroupNone;
}
}
}
extension ExtraTileLayout on TileLayout {
String getName(BuildContext context) {
final l10n = context.l10n;
switch (this) {
case TileLayout.grid:
return l10n.tileLayoutGrid;
case TileLayout.list:
return l10n.tileLayoutList;
}
}
}

View file

@ -7,8 +7,9 @@ import 'package:aves/model/metadata/address.dart';
import 'package:aves/model/settings/settings.dart'; import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/analysis_controller.dart'; import 'package:aves/model/source/analysis_controller.dart';
import 'package:aves/model/source/collection_source.dart'; import 'package:aves/model/source/collection_source.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums/enums.dart';
import 'package:aves/services/common/services.dart'; import 'package:aves/services/common/services.dart';
import 'package:aves/utils/collection_utils.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:tuple/tuple.dart'; import 'package:tuple/tuple.dart';
@ -180,7 +181,7 @@ mixin LocationMixin on SourceBase {
// filter summary // filter summary
// by country code // by country code
final Map<String, int> _filterEntryCountMap = {}; final Map<String, int> _filterEntryCountMap = {}, _filterSizeMap = {};
final Map<String, AvesEntry?> _filterRecentEntryMap = {}; final Map<String, AvesEntry?> _filterRecentEntryMap = {};
void invalidateCountryFilterSummary({ void invalidateCountryFilterSummary({
@ -188,10 +189,11 @@ mixin LocationMixin on SourceBase {
Set<String>? countryCodes, Set<String>? countryCodes,
bool notify = true, bool notify = true,
}) { }) {
if (_filterEntryCountMap.isEmpty && _filterRecentEntryMap.isEmpty) return; if (_filterEntryCountMap.isEmpty && _filterSizeMap.isEmpty && _filterRecentEntryMap.isEmpty) return;
if (entries == null && countryCodes == null) { if (entries == null && countryCodes == null) {
_filterEntryCountMap.clear(); _filterEntryCountMap.clear();
_filterSizeMap.clear();
_filterRecentEntryMap.clear(); _filterRecentEntryMap.clear();
} else { } else {
countryCodes ??= {}; countryCodes ??= {};
@ -200,6 +202,7 @@ mixin LocationMixin on SourceBase {
} }
countryCodes.forEach((countryCode) { countryCodes.forEach((countryCode) {
_filterEntryCountMap.remove(countryCode); _filterEntryCountMap.remove(countryCode);
_filterSizeMap.remove(countryCode);
_filterRecentEntryMap.remove(countryCode); _filterRecentEntryMap.remove(countryCode);
}); });
} }
@ -214,6 +217,12 @@ mixin LocationMixin on SourceBase {
return _filterEntryCountMap.putIfAbsent(countryCode, () => visibleEntries.where(filter.test).length); return _filterEntryCountMap.putIfAbsent(countryCode, () => visibleEntries.where(filter.test).length);
} }
int countrySize(LocationFilter filter) {
final countryCode = filter.countryCode;
if (countryCode == null) return 0;
return _filterSizeMap.putIfAbsent(countryCode, () => visibleEntries.where(filter.test).map((v) => v.sizeBytes).sum);
}
AvesEntry? countryRecentEntry(LocationFilter filter) { AvesEntry? countryRecentEntry(LocationFilter filter) {
final countryCode = filter.countryCode; final countryCode = filter.countryCode;
if (countryCode == null) return null; if (countryCode == null) return null;

View file

@ -7,7 +7,7 @@ import 'package:aves/model/favourites.dart';
import 'package:aves/model/settings/settings.dart'; import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/analysis_controller.dart'; import 'package:aves/model/source/analysis_controller.dart';
import 'package:aves/model/source/collection_source.dart'; import 'package:aves/model/source/collection_source.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums/enums.dart';
import 'package:aves/services/common/services.dart'; import 'package:aves/services/common/services.dart';
import 'package:aves/utils/android_file_utils.dart'; import 'package:aves/utils/android_file_utils.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';

View file

@ -1,5 +1,5 @@
import 'package:aves/l10n/l10n.dart'; import 'package:aves/l10n/l10n.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums/enums.dart';
extension ExtraSourceState on SourceState { extension ExtraSourceState on SourceState {
String? getName(AppLocalizations l10n) { String? getName(AppLocalizations l10n) {

View file

@ -3,8 +3,9 @@ import 'package:aves/model/filters/tag.dart';
import 'package:aves/model/metadata/catalog.dart'; import 'package:aves/model/metadata/catalog.dart';
import 'package:aves/model/source/analysis_controller.dart'; import 'package:aves/model/source/analysis_controller.dart';
import 'package:aves/model/source/collection_source.dart'; import 'package:aves/model/source/collection_source.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums/enums.dart';
import 'package:aves/services/common/services.dart'; import 'package:aves/services/common/services.dart';
import 'package:aves/utils/collection_utils.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
@ -75,7 +76,7 @@ mixin TagMixin on SourceBase {
// filter summary // filter summary
// by tag // by tag
final Map<String, int> _filterEntryCountMap = {}; final Map<String, int> _filterEntryCountMap = {}, _filterSizeMap = {};
final Map<String, AvesEntry?> _filterRecentEntryMap = {}; final Map<String, AvesEntry?> _filterRecentEntryMap = {};
void invalidateTagFilterSummary({ void invalidateTagFilterSummary({
@ -83,10 +84,11 @@ mixin TagMixin on SourceBase {
Set<String>? tags, Set<String>? tags,
bool notify = true, bool notify = true,
}) { }) {
if (_filterEntryCountMap.isEmpty && _filterRecentEntryMap.isEmpty) return; if (_filterEntryCountMap.isEmpty && _filterSizeMap.isEmpty && _filterRecentEntryMap.isEmpty) return;
if (entries == null && tags == null) { if (entries == null && tags == null) {
_filterEntryCountMap.clear(); _filterEntryCountMap.clear();
_filterSizeMap.clear();
_filterRecentEntryMap.clear(); _filterRecentEntryMap.clear();
} else { } else {
tags ??= {}; tags ??= {};
@ -95,6 +97,7 @@ mixin TagMixin on SourceBase {
} }
tags.forEach((tag) { tags.forEach((tag) {
_filterEntryCountMap.remove(tag); _filterEntryCountMap.remove(tag);
_filterSizeMap.remove(tag);
_filterRecentEntryMap.remove(tag); _filterRecentEntryMap.remove(tag);
}); });
} }
@ -107,6 +110,10 @@ mixin TagMixin on SourceBase {
return _filterEntryCountMap.putIfAbsent(filter.tag, () => visibleEntries.where(filter.test).length); return _filterEntryCountMap.putIfAbsent(filter.tag, () => visibleEntries.where(filter.test).length);
} }
int tagSize(TagFilter filter) {
return _filterSizeMap.putIfAbsent(filter.tag, () => visibleEntries.where(filter.test).map((v) => v.sizeBytes).sum);
}
AvesEntry? tagRecentEntry(TagFilter filter) { AvesEntry? tagRecentEntry(TagFilter filter) {
return _filterRecentEntryMap.putIfAbsent(filter.tag, () => sortedEntriesByDate.firstWhereOrNull(filter.test)); return _filterRecentEntryMap.putIfAbsent(filter.tag, () => sortedEntriesByDate.firstWhereOrNull(filter.test));
} }

View file

@ -22,8 +22,7 @@ import 'package:fijkplayer/fijkplayer.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
class VideoMetadataFormatter { class VideoMetadataFormatter {
static final _dateY4M2D2H2m2s2Pattern = RegExp(r'(\d{4})[-/](\d{2})[-/](\d{2}) (\d{2}):(\d{2}):(\d{2})'); static final _dateY4M2D2H2m2s2Pattern = RegExp(r'(\d{4})[-./](\d{1,2})[-./](\d{1,2})([ T](\d{1,2}):(\d{1,2}):(\d{1,2})( ([ap]\.? ?m\.?))?)?');
static final _dateY4M2D2H2m2s2APmPattern = RegExp(r'(\d{4})[-/](\d{1,2})[-/](\d{1,2})T(\d+):(\d+):(\d+)( ([ap]\.? ?m\.?))?Z');
static final _ambiguousDatePatterns = { static final _ambiguousDatePatterns = {
RegExp(r'^\d{2}[-/]\d{2}[-/]\d{4}$'), RegExp(r'^\d{2}[-/]\d{2}[-/]\d{4}$'),
}; };
@ -126,6 +125,7 @@ class VideoMetadataFormatter {
// - `2021-09-10T7:14:49 pmZ` // - `2021-09-10T7:14:49 pmZ`
// - `2022-01-28T5:07:46 p. m.Z` // - `2022-01-28T5:07:46 p. m.Z`
// - `2012-1-1T12:00:00Z` // - `2012-1-1T12:00:00Z`
// - `2020.10.14`
// - `2021` (not enough to build a date) // - `2021` (not enough to build a date)
var match = _dateY4M2D2H2m2s2Pattern.firstMatch(dateString); var match = _dateY4M2D2H2m2s2Pattern.firstMatch(dateString);
@ -133,27 +133,16 @@ class VideoMetadataFormatter {
final year = int.tryParse(match.group(1)!); final year = int.tryParse(match.group(1)!);
final month = int.tryParse(match.group(2)!); final month = int.tryParse(match.group(2)!);
final day = int.tryParse(match.group(3)!); final day = int.tryParse(match.group(3)!);
final hour = int.tryParse(match.group(4)!);
final minute = int.tryParse(match.group(5)!);
final second = int.tryParse(match.group(6)!);
if (year != null && month != null && day != null && hour != null && minute != null && second != null) { if (year != null && month != null && day != null) {
final date = DateTime(year, month, day, hour, minute, second, 0); var hour = 0, minute = 0, second = 0, pm = false;
return date.millisecondsSinceEpoch; if (match.groupCount >= 7 && match.group(4) != null) {
} hour = int.tryParse(match.group(5)!) ?? 0;
minute = int.tryParse(match.group(6)!) ?? 0;
second = int.tryParse(match.group(7)!) ?? 0;
pm = match.group(9) == 'pm';
} }
match = _dateY4M2D2H2m2s2APmPattern.firstMatch(dateString);
if (match != null) {
final year = int.tryParse(match.group(1)!);
final month = int.tryParse(match.group(2)!);
final day = int.tryParse(match.group(3)!);
final hour = int.tryParse(match.group(4)!);
final minute = int.tryParse(match.group(5)!);
final second = int.tryParse(match.group(6)!);
final pm = match.group(8) == 'pm';
if (year != null && month != null && day != null && hour != null && minute != null && second != null) {
final date = DateTime(year, month, day, hour + (pm ? 12 : 0), minute, second, 0); final date = DateTime(year, month, day, hour + (pm ? 12 : 0), minute, second, 0);
return date.millisecondsSinceEpoch; return date.millisecondsSinceEpoch;
} }

View file

@ -2,6 +2,7 @@ class IPTC {
static const int applicationRecord = 2; static const int applicationRecord = 2;
// ApplicationRecord tags // ApplicationRecord tags
static const int objectName = 5;
static const int keywordsTag = 25; static const int keywordsTag = 25;
static const int captionAbstractTag = 120; static const int captionAbstractTag = 120;
} }

View file

@ -4,7 +4,7 @@ import 'dart:ui';
import 'package:aves/l10n/l10n.dart'; import 'package:aves/l10n/l10n.dart';
import 'package:aves/model/settings/settings.dart'; import 'package:aves/model/settings/settings.dart';
import 'package:aves/model/source/analysis_controller.dart'; import 'package:aves/model/source/analysis_controller.dart';
import 'package:aves/model/source/enums.dart'; import 'package:aves/model/source/enums/enums.dart';
import 'package:aves/model/source/media_store_source.dart'; import 'package:aves/model/source/media_store_source.dart';
import 'package:aves/model/source/source_state.dart'; import 'package:aves/model/source/source_state.dart';
import 'package:aves/services/common/services.dart'; import 'package:aves/services/common/services.dart';

View file

@ -0,0 +1,27 @@
import 'package:flutter/services.dart';
class AvesByteReceivingMethodCodec extends StandardMethodCodec {
const AvesByteReceivingMethodCodec() : super();
@override
dynamic decodeEnvelope(ByteData envelope) {
// First byte is zero in success case, and non-zero otherwise.
if (envelope.lengthInBytes == 0) {
throw const FormatException('Expected envelope, got nothing');
}
final ReadBuffer buffer = ReadBuffer(envelope);
if (buffer.getUint8() == 0) {
return envelope.buffer.asUint8List(envelope.offsetInBytes + 1, envelope.lengthInBytes - 1);
}
final Object? errorCode = messageCodec.readValue(buffer);
final Object? errorMessage = messageCodec.readValue(buffer);
final Object? errorDetails = messageCodec.readValue(buffer);
final String? errorStacktrace = (buffer.hasRemaining) ? messageCodec.readValue(buffer) as String? : null;
if (errorCode is String && (errorMessage == null || errorMessage is String) && !buffer.hasRemaining) {
throw PlatformException(code: errorCode, message: errorMessage as String?, details: errorDetails, stacktrace: errorStacktrace);
} else {
throw const FormatException('Invalid envelope');
}
}
}

View file

@ -6,6 +6,7 @@ import 'package:aves/ref/mime_types.dart';
import 'package:aves/services/common/output_buffer.dart'; import 'package:aves/services/common/output_buffer.dart';
import 'package:aves/services/common/service_policy.dart'; import 'package:aves/services/common/service_policy.dart';
import 'package:aves/services/common/services.dart'; import 'package:aves/services/common/services.dart';
import 'package:aves/services/media/byte_receiving_codec.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:streams_channel/streams_channel.dart'; import 'package:streams_channel/streams_channel.dart';
@ -26,7 +27,7 @@ abstract class MediaFetchService {
int? rotationDegrees, int? rotationDegrees,
bool isFlipped, { bool isFlipped, {
int? pageId, int? pageId,
int? expectedContentLength, int? sizeBytes,
BytesReceivedCallback? onBytesReceived, BytesReceivedCallback? onBytesReceived,
}); });
@ -66,14 +67,15 @@ abstract class MediaFetchService {
} }
class PlatformMediaFetchService implements MediaFetchService { class PlatformMediaFetchService implements MediaFetchService {
static const _platform = MethodChannel('deckers.thibault/aves/media_fetch'); static const _platformObject = MethodChannel('deckers.thibault/aves/media_fetch_object');
static const _platformBytes = MethodChannel('deckers.thibault/aves/media_fetch_bytes', AvesByteReceivingMethodCodec());
static final _byteStream = StreamsChannel('deckers.thibault/aves/media_byte_stream'); static final _byteStream = StreamsChannel('deckers.thibault/aves/media_byte_stream');
static const double _thumbnailDefaultSize = 64.0; static const double _thumbnailDefaultSize = 64.0;
@override @override
Future<AvesEntry?> getEntry(String uri, String? mimeType) async { Future<AvesEntry?> getEntry(String uri, String? mimeType) async {
try { try {
final result = await _platform.invokeMethod('getEntry', <String, dynamic>{ final result = await _platformObject.invokeMethod('getEntry', <String, dynamic>{
'uri': uri, 'uri': uri,
'mimeType': mimeType, 'mimeType': mimeType,
}) as Map; }) as Map;
@ -100,7 +102,7 @@ class PlatformMediaFetchService implements MediaFetchService {
mimeType, mimeType,
0, 0,
false, false,
expectedContentLength: expectedContentLength, sizeBytes: expectedContentLength,
onBytesReceived: onBytesReceived, onBytesReceived: onBytesReceived,
); );
@ -111,7 +113,7 @@ class PlatformMediaFetchService implements MediaFetchService {
int? rotationDegrees, int? rotationDegrees,
bool isFlipped, { bool isFlipped, {
int? pageId, int? pageId,
int? expectedContentLength, int? sizeBytes,
BytesReceivedCallback? onBytesReceived, BytesReceivedCallback? onBytesReceived,
}) async { }) async {
try { try {
@ -121,6 +123,7 @@ class PlatformMediaFetchService implements MediaFetchService {
_byteStream.receiveBroadcastStream(<String, dynamic>{ _byteStream.receiveBroadcastStream(<String, dynamic>{
'uri': uri, 'uri': uri,
'mimeType': mimeType, 'mimeType': mimeType,
'sizeBytes': sizeBytes,
'rotationDegrees': rotationDegrees ?? 0, 'rotationDegrees': rotationDegrees ?? 0,
'isFlipped': isFlipped, 'isFlipped': isFlipped,
'pageId': pageId, 'pageId': pageId,
@ -131,7 +134,7 @@ class PlatformMediaFetchService implements MediaFetchService {
if (onBytesReceived != null) { if (onBytesReceived != null) {
bytesReceived += chunk.length; bytesReceived += chunk.length;
try { try {
onBytesReceived(bytesReceived, expectedContentLength); onBytesReceived(bytesReceived, sizeBytes);
} catch (error, stack) { } catch (error, stack) {
completer.completeError(error, stack); completer.completeError(error, stack);
return; return;
@ -171,7 +174,7 @@ class PlatformMediaFetchService implements MediaFetchService {
return servicePolicy.call( return servicePolicy.call(
() async { () async {
try { try {
final result = await _platform.invokeMethod('getRegion', <String, dynamic>{ final result = await _platformBytes.invokeMethod('getRegion', <String, dynamic>{
'uri': uri, 'uri': uri,
'mimeType': mimeType, 'mimeType': mimeType,
'pageId': pageId, 'pageId': pageId,
@ -211,7 +214,7 @@ class PlatformMediaFetchService implements MediaFetchService {
return servicePolicy.call( return servicePolicy.call(
() async { () async {
try { try {
final result = await _platform.invokeMethod('getThumbnail', <String, dynamic>{ final result = await _platformBytes.invokeMethod('getThumbnail', <String, dynamic>{
'uri': uri, 'uri': uri,
'mimeType': mimeType, 'mimeType': mimeType,
'dateModifiedSecs': dateModifiedSecs, 'dateModifiedSecs': dateModifiedSecs,
@ -238,7 +241,7 @@ class PlatformMediaFetchService implements MediaFetchService {
@override @override
Future<void> clearSizedThumbnailDiskCache() async { Future<void> clearSizedThumbnailDiskCache() async {
try { try {
return _platform.invokeMethod('clearSizedThumbnailDiskCache'); return _platformObject.invokeMethod('clearSizedThumbnailDiskCache');
} on PlatformException catch (e, stack) { } on PlatformException catch (e, stack) {
await reportService.recordError(e, stack); await reportService.recordError(e, stack);
} }

View file

@ -95,6 +95,7 @@ class DurationsData {
// common animations // common animations
final Duration expansionTileAnimation; final Duration expansionTileAnimation;
final Duration formTransition; final Duration formTransition;
final Duration chartTransition;
final Duration iconAnimation; final Duration iconAnimation;
final Duration staggeredAnimation; final Duration staggeredAnimation;
final Duration staggeredAnimationPageTarget; final Duration staggeredAnimationPageTarget;
@ -110,6 +111,7 @@ class DurationsData {
const DurationsData({ const DurationsData({
this.expansionTileAnimation = const Duration(milliseconds: 200), this.expansionTileAnimation = const Duration(milliseconds: 200),
this.formTransition = const Duration(milliseconds: 200), this.formTransition = const Duration(milliseconds: 200),
this.chartTransition = const Duration(milliseconds: 400),
this.iconAnimation = const Duration(milliseconds: 300), this.iconAnimation = const Duration(milliseconds: 300),
this.staggeredAnimation = const Duration(milliseconds: 375), this.staggeredAnimation = const Duration(milliseconds: 375),
this.staggeredAnimationPageTarget = const Duration(milliseconds: 800), this.staggeredAnimationPageTarget = const Duration(milliseconds: 800),
@ -123,6 +125,7 @@ class DurationsData {
// as of Flutter v2.5.1, `ExpansionPanelList` throws if animation duration is zero // as of Flutter v2.5.1, `ExpansionPanelList` throws if animation duration is zero
expansionTileAnimation: const Duration(microseconds: 1), expansionTileAnimation: const Duration(microseconds: 1),
formTransition: Duration.zero, formTransition: Duration.zero,
chartTransition: Duration.zero,
iconAnimation: Duration.zero, iconAnimation: Duration.zero,
staggeredAnimation: Duration.zero, staggeredAnimation: Duration.zero,
staggeredAnimationPageTarget: Duration.zero, staggeredAnimationPageTarget: Duration.zero,

View file

@ -16,7 +16,10 @@ class AIcons {
static const IconData checked = Icons.done_outlined; static const IconData checked = Icons.done_outlined;
static const IconData counter = Icons.plus_one_outlined; static const IconData counter = Icons.plus_one_outlined;
static const IconData date = Icons.calendar_today_outlined; static const IconData date = Icons.calendar_today_outlined;
static const IconData dateRecent = Icons.today_outlined;
static const IconData dateUndated = Icons.event_busy_outlined;
static const IconData description = Icons.description_outlined; static const IconData description = Icons.description_outlined;
static const IconData descriptionUntitled = Icons.comments_disabled_outlined;
static const IconData disc = Icons.fiber_manual_record; static const IconData disc = Icons.fiber_manual_record;
static const IconData display = Icons.light_mode_outlined; static const IconData display = Icons.light_mode_outlined;
static const IconData error = Icons.error_outline; static const IconData error = Icons.error_outline;
@ -35,7 +38,6 @@ class AIcons {
static const IconData ratingRejected = MdiIcons.starMinusOutline; static const IconData ratingRejected = MdiIcons.starMinusOutline;
static const IconData ratingUnrated = MdiIcons.starOffOutline; static const IconData ratingUnrated = MdiIcons.starOffOutline;
static const IconData raw = Icons.raw_on_outlined; static const IconData raw = Icons.raw_on_outlined;
static const IconData recent = Icons.today_outlined;
static const IconData shooting = Icons.camera_outlined; static const IconData shooting = Icons.camera_outlined;
static const IconData removableStorage = Icons.sd_storage_outlined; static const IconData removableStorage = Icons.sd_storage_outlined;
static const IconData sensorControlEnabled = Icons.explore_outlined; static const IconData sensorControlEnabled = Icons.explore_outlined;
@ -49,6 +51,7 @@ class AIcons {
static const IconData group = Icons.group_work_outlined; static const IconData group = Icons.group_work_outlined;
static const IconData layout = Icons.grid_view_outlined; static const IconData layout = Icons.grid_view_outlined;
static const IconData sort = Icons.sort_outlined; static const IconData sort = Icons.sort_outlined;
static const IconData sortOrder = Icons.swap_vert_outlined;
// actions // actions
static const IconData add = Icons.add_circle_outline; static const IconData add = Icons.add_circle_outline;
@ -134,7 +137,8 @@ class AIcons {
static const IconData geo = Icons.language_outlined; static const IconData geo = Icons.language_outlined;
static const IconData motionPhoto = Icons.motion_photos_on_outlined; static const IconData motionPhoto = Icons.motion_photos_on_outlined;
static const IconData multiPage = Icons.burst_mode_outlined; static const IconData multiPage = Icons.burst_mode_outlined;
static const IconData threeSixty = Icons.threesixty_outlined; static const IconData panorama = Icons.vrpano_outlined;
static const IconData sphericalVideo = Icons.threesixty_outlined;
static const IconData videoThumb = Icons.play_circle_outline; static const IconData videoThumb = Icons.play_circle_outline;
static const IconData selected = Icons.check_circle_outline; static const IconData selected = Icons.check_circle_outline;
static const IconData unselected = Icons.radio_button_unchecked; static const IconData unselected = Icons.radio_button_unchecked;

View file

@ -13,3 +13,7 @@ extension ExtraMapNullableKeyValue<K extends Object, V> on Map<K?, V?> {
Map<K?, V> whereNotNullValue() => <K?, V>{for (var kv in entries.where((kv) => kv.value != null)) kv.key: kv.value as V}; Map<K?, V> whereNotNullValue() => <K?, V>{for (var kv in entries.where((kv) => kv.value != null)) kv.key: kv.value as V};
} }
extension ExtraNumIterable on Iterable<int?> {
int get sum => fold(0, (prev, v) => prev + (v ?? 0));
}

View file

@ -11,12 +11,19 @@ class Constants {
static const double colorPickerRadius = 16; static const double colorPickerRadius = 16;
static const titleTextStyle = TextStyle( static const knownTitleTextStyle = TextStyle(
fontSize: 20, fontSize: 20,
fontWeight: FontWeight.w300, fontWeight: FontWeight.w300,
fontFeatures: [FontFeature.enable('smcp')], fontFeatures: [FontFeature.enable('smcp')],
); );
static TextStyle unknownTitleTextStyle = knownTitleTextStyle;
static void updateStylesForLocale(Locale locale) {
final smcp = locale.languageCode != 'el';
unknownTitleTextStyle = smcp ? knownTitleTextStyle : knownTitleTextStyle.copyWith(fontFeatures: []);
}
static const embossShadows = [ static const embossShadows = [
Shadow( Shadow(
color: Colors.black, color: Colors.black,

View file

@ -48,7 +48,8 @@ DateTime? dateTimeFromMillis(int? millis, {bool isUtc = false}) {
final _unixStampMillisPattern = RegExp(r'\d{13}'); final _unixStampMillisPattern = RegExp(r'\d{13}');
final _unixStampSecPattern = RegExp(r'\d{10}'); final _unixStampSecPattern = RegExp(r'\d{10}');
final _dateYMD8Hms6Sub3Pattern = RegExp(r'(\d{8})([_-\s](\d{6})([_-\s](\d{3}))?)?'); final _dateYMD8Hms6Sub3Pattern = RegExp(r'(\d{8})([_-\s](\d{6})([_-\s](\d{3}))?)?');
final _dateY4M2D2H2m2s2Sub3Pattern = RegExp(r'(\d{4})-(\d{1,2})-(\d{1,2})-(\d{1,2})-(\d{1,2})-(\d{1,2})-(\d{1,3})'); final _dateY4M2D2H2m2s2Sub3Pattern = RegExp(r'(\d{4})-(\d{1,2})-(\d{1,2})[ -](\d{1,2})[.-](\d{1,2})[.-](\d{1,2})([.-](\d{1,3})?)?');
final _dateY4M2D2Hms6Pattern = RegExp(r'(\d{4})-(\d{1,2})-(\d{1,2}) (\d{6})');
DateTime? parseUnknownDateFormat(String? s) { DateTime? parseUnknownDateFormat(String? s) {
if (s == null) return null; if (s == null) return null;
@ -110,12 +111,31 @@ DateTime? parseUnknownDateFormat(String? s) {
final hour = int.tryParse(match.group(4)!); final hour = int.tryParse(match.group(4)!);
final minute = int.tryParse(match.group(5)!); final minute = int.tryParse(match.group(5)!);
final second = int.tryParse(match.group(6)!); final second = int.tryParse(match.group(6)!);
final millis = int.tryParse(match.group(7)!); final millis = match.groupCount >= 8 ? int.tryParse(match.group(8) ?? '0') : 0;
if (year != null && month != null && day != null && hour != null && minute != null && second != null && millis != null) { if (year != null && month != null && day != null && hour != null && minute != null && second != null && millis != null) {
return DateTime(year, month, day, hour, minute, second, millis); return DateTime(year, month, day, hour, minute, second, millis);
} }
} }
match = _dateY4M2D2Hms6Pattern.firstMatch(s);
if (match != null) {
final year = int.tryParse(match.group(1)!);
final month = int.tryParse(match.group(2)!);
final day = int.tryParse(match.group(3)!);
final timeString = match.group(4);
var hour = 0, minute = 0, second = 0;
if (timeString != null) {
hour = int.tryParse(timeString.substring(0, 2)) ?? 0;
minute = int.tryParse(timeString.substring(2, 4)) ?? 0;
second = int.tryParse(timeString.substring(4, 6)) ?? 0;
}
if (year != null && month != null && day != null) {
return DateTime(year, month, day, hour, minute, second);
}
}
return null; return null;
} }

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