Merge pull request #57 from SimpleMobileTools/master

upd
This commit is contained in:
solokot 2019-09-30 09:21:55 +03:00 committed by GitHub
commit 2614affa9f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
55 changed files with 324 additions and 146 deletions

View file

@ -1,6 +1,21 @@
Changelog
==========
Version 6.9.6 *(2019-09-12)*
----------------------------
* Improved the performance of loading fullscreen images in some cases
* Properly handle some specific SD cards
* Properly fetch Date Taken value on Android 10
Version 6.9.5 *(2019-09-08)*
----------------------------
* Added optional thumbnail icons for showing GIF/SVG/RAW file types
* Properly handle Date Taken value at copy/move/edit
* Fixed a glitch with white top actionmenu at selecting items
* Fixed fullscreen mode toggling on Chromebooks
Version 6.9.4 *(2019-08-21)*
----------------------------

View file

@ -15,8 +15,8 @@ android {
applicationId "com.simplemobiletools.gallery.pro"
minSdkVersion 21
targetSdkVersion 28
versionCode 264
versionName "6.9.4"
versionCode 266
versionName "6.9.6"
multiDexEnabled true
setProperty("archivesBaseName", "gallery")
vectorDrawables.useSupportLibrary = true
@ -62,7 +62,7 @@ android {
}
dependencies {
implementation 'com.simplemobiletools:commons:5.17.3'
implementation 'com.simplemobiletools:commons:5.17.17'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'it.sephiroth.android.exif:library:1.0.1'
@ -75,8 +75,8 @@ dependencies {
implementation 'info.androidhive:imagefilters:1.0.7'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.caverock:androidsvg-aar:1.3'
implementation 'com.github.tibbi:gestureviews:4444214285'
implementation 'com.github.tibbi:subsampling-scale-image-view:8341253173'
implementation 'com.github.tibbi:gestureviews:a2208ce9d9'
implementation 'com.github.tibbi:subsampling-scale-image-view:7810989016'
kapt 'com.github.bumptech.glide:compiler:4.9.0' // keep it here too, not just in Commons, else loading SVGs wont work
kapt 'androidx.room:room-compiler:2.1.0'

View file

@ -39,6 +39,7 @@ import com.simplemobiletools.gallery.pro.dialogs.OtherAspectRatioDialog
import com.simplemobiletools.gallery.pro.dialogs.ResizeDialog
import com.simplemobiletools.gallery.pro.dialogs.SaveAsDialog
import com.simplemobiletools.gallery.pro.extensions.config
import com.simplemobiletools.gallery.pro.extensions.fixDateTaken
import com.simplemobiletools.gallery.pro.extensions.openEditor
import com.simplemobiletools.gallery.pro.helpers.*
import com.simplemobiletools.gallery.pro.models.FilterItem
@ -874,7 +875,9 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
}
private fun scanFinalPath(path: String) {
rescanPaths(arrayListOf(path)) {
val paths = arrayListOf(path)
rescanPaths(paths) {
fixDateTaken(paths, false)
setResult(Activity.RESULT_OK, intent)
toast(R.string.file_saved)
finish()

View file

@ -409,14 +409,15 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
config.addIncludedFolder(otgPath)
}
if (config.OTGPath.isEmpty()) {
// OTG handling has been changed again in SDK version 28, the old method no longer works
/*if (config.OTGPath.isEmpty()) {
runOnUiThread {
ConfirmationDialog(this, getString(R.string.usb_detected), positive = R.string.ok, negative = 0) {
config.wasOTGHandled = true
showOTGPermissionDialog()
}
}
}
}*/
}
}
}
@ -949,7 +950,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
val foldersToScan = mediaFetcher.getFoldersToScan()
foldersToScan.add(FAVORITES)
if (config.useRecycleBin && config.showRecycleBinAtFolders) {
if (config.showRecycleBinAtFolders) {
foldersToScan.add(RECYCLE_BIN)
} else {
foldersToScan.remove(RECYCLE_BIN)

View file

@ -323,19 +323,8 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
visibility and View.SYSTEM_UI_FLAG_FULLSCREEN != 0
}
view_pager.adapter?.let {
(it as MyPagerAdapter).toggleFullscreen(mIsFullScreen)
checkSystemUI()
val newAlpha = if (mIsFullScreen) 0f else 1f
top_shadow.animate().alpha(newAlpha).start()
if (bottom_actions.isVisible()) {
bottom_actions.animate().alpha(newAlpha).start()
arrayOf(bottom_favorite, bottom_edit, bottom_share, bottom_delete, bottom_rotate, bottom_properties, bottom_change_orientation,
bottom_slideshow, bottom_show_on_map, bottom_toggle_file_visibility, bottom_rename).forEach {
it.isClickable = !mIsFullScreen
}
}
}
fullscreenToggled()
}
if (intent.action == "com.android.camera.action.REVIEW") {
@ -576,7 +565,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
val fileDirItems = arrayListOf(FileDirItem(currPath, currPath.getFilenameFromPath()))
tryCopyMoveFilesTo(fileDirItems, isCopyOperation) {
fixDateTaken(arrayListOf(currPath), false)
val newPath = "$it/${currPath.getFilenameFromPath()}"
rescanPaths(arrayListOf(newPath)) {
fixDateTaken(arrayListOf(newPath), false)
}
config.tempFolderPath = ""
if (!isCopyOperation) {
refreshViewPager()
@ -1078,6 +1071,9 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
override fun fragmentClicked() {
mIsFullScreen = !mIsFullScreen
checkSystemUI()
if (isChromebook()) {
fullscreenToggled()
}
}
override fun videoEnded(): Boolean {
@ -1134,6 +1130,21 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
}
}
private fun fullscreenToggled() {
view_pager.adapter?.let {
(it as MyPagerAdapter).toggleFullscreen(mIsFullScreen)
val newAlpha = if (mIsFullScreen) 0f else 1f
top_shadow.animate().alpha(newAlpha).start()
if (bottom_actions.isVisible()) {
bottom_actions.animate().alpha(newAlpha).start()
arrayOf(bottom_favorite, bottom_edit, bottom_share, bottom_delete, bottom_rotate, bottom_properties, bottom_change_orientation,
bottom_slideshow, bottom_show_on_map, bottom_toggle_file_visibility, bottom_rename).forEach {
it.isClickable = !mIsFullScreen
}
}
}
}
private fun updateActionbarTitle() {
runOnUiThread {
if (mPos < getCurrentMedia().size) {

View file

@ -442,7 +442,12 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: ArrayList<Directo
val fileDirItems = paths.map { FileDirItem(it, it.getFilenameFromPath()) } as ArrayList<FileDirItem>
activity.tryCopyMoveFilesTo(fileDirItems, isCopyOperation) {
activity.fixDateTaken(paths, false)
val destinationPath = it
val newPaths = fileDirItems.map { "$destinationPath/${it.name}" }.toMutableList() as java.util.ArrayList<String>
activity.rescanPaths(newPaths) {
activity.fixDateTaken(newPaths, false)
}
config.tempFolderPath = ""
listener?.refreshItems()
finishActMode()

View file

@ -326,13 +326,18 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList<Thumbnai
}
activity.tryCopyMoveFilesTo(fileDirItems, isCopyOperation) {
val destinationPath = it
config.tempFolderPath = ""
activity.applicationContext.rescanFolderMedia(it)
activity.applicationContext.rescanFolderMedia(destinationPath)
activity.applicationContext.rescanFolderMedia(fileDirItems.first().getParentPath())
activity.fixDateTaken(paths, false)
val newPaths = fileDirItems.map { "$destinationPath/${it.name}" }.toMutableList() as ArrayList<String>
activity.rescanPaths(newPaths) {
activity.fixDateTaken(newPaths, false)
}
if (!isCopyOperation) {
listener?.refreshItems()
activity.updateFavoritePaths(fileDirItems, it)
activity.updateFavoritePaths(fileDirItems, destinationPath)
}
}
}

View file

@ -19,6 +19,7 @@ class FilterMediaDialog(val activity: BaseSimpleActivity, val callback: (result:
filter_media_gifs.isChecked = filterMedia and TYPE_GIFS != 0
filter_media_raws.isChecked = filterMedia and TYPE_RAWS != 0
filter_media_svgs.isChecked = filterMedia and TYPE_SVGS != 0
filter_media_portraits.isChecked = filterMedia and TYPE_PORTRAITS != 0
}
AlertDialog.Builder(activity)
@ -41,6 +42,8 @@ class FilterMediaDialog(val activity: BaseSimpleActivity, val callback: (result:
result += TYPE_RAWS
if (view.filter_media_svgs.isChecked)
result += TYPE_SVGS
if (view.filter_media_portraits.isChecked)
result += TYPE_PORTRAITS
activity.config.filterMedia = result
callback(result)

View file

@ -292,9 +292,11 @@ fun BaseSimpleActivity.restoreRecycleBinPaths(paths: ArrayList<String>, mediumDa
callback()
}
rescanPaths(newPaths) {
fixDateTaken(newPaths, false)
}
}
}
fun BaseSimpleActivity.emptyTheRecycleBin(callback: (() -> Unit)? = null) {
ensureBackgroundThread {
@ -346,17 +348,19 @@ fun Activity.hasNavBar(): Boolean {
return (realDisplayMetrics.widthPixels - displayMetrics.widthPixels > 0) || (realDisplayMetrics.heightPixels - displayMetrics.heightPixels > 0)
}
fun Activity.fixDateTaken(paths: ArrayList<String>, showToasts: Boolean, callback: (() -> Unit)? = null) {
fun Activity.fixDateTaken(paths: ArrayList<String>, showToasts: Boolean, hasRescanned: Boolean = false, callback: (() -> Unit)? = null) {
val BATCH_SIZE = 50
if (showToasts) {
toast(R.string.fixing)
}
val pathsToRescan = ArrayList<String>()
try {
var didUpdateFile = false
val operations = ArrayList<ContentProviderOperation>()
val mediumDao = galleryDB.MediumDao()
rescanPaths(paths) {
ensureBackgroundThread {
for (path in paths) {
val dateTime = ExifInterface(path).getAttribute(ExifInterface.TAG_DATETIME_ORIGINAL)
?: ExifInterface(path).getAttribute(ExifInterface.TAG_DATETIME) ?: continue
@ -385,6 +389,10 @@ fun Activity.fixDateTaken(paths: ArrayList<String>, showToasts: Boolean, callbac
mediumDao.updateFavoriteDateTaken(path, timestamp)
didUpdateFile = true
if (!hasRescanned && getFileDateTaken(path) == 0L) {
pathsToRescan.add(path)
}
}
val resultSize = contentResolver.applyBatch(MediaStore.AUTHORITY, operations).size
@ -392,6 +400,7 @@ fun Activity.fixDateTaken(paths: ArrayList<String>, showToasts: Boolean, callbac
didUpdateFile = false
}
if (hasRescanned || pathsToRescan.isEmpty()) {
runOnUiThread {
if (showToasts) {
toast(if (didUpdateFile) R.string.dates_fixed_successfully else R.string.unknown_error_occurred)
@ -399,6 +408,11 @@ fun Activity.fixDateTaken(paths: ArrayList<String>, showToasts: Boolean, callbac
callback?.invoke()
}
} else {
rescanPaths(pathsToRescan) {
fixDateTaken(paths, showToasts, true)
}
}
}
} catch (e: Exception) {
if (showToasts) {

View file

@ -25,5 +25,9 @@ fun ArrayList<Medium>.getDirMediaTypes(): Int {
types += TYPE_SVGS
}
if (any { it.isPortrait() }) {
types += TYPE_PORTRAITS
}
return types
}

View file

@ -143,7 +143,7 @@ fun Context.movePinnedDirectoriesToFront(dirs: ArrayList<Directory>): ArrayList<
}
}
if (config.useRecycleBin && config.showRecycleBinAtFolders && config.showRecycleBinLast) {
if (config.showRecycleBinAtFolders && config.showRecycleBinLast) {
val binIndex = dirs.indexOfFirst { it.isRecycleBin() }
if (binIndex != -1) {
val bin = dirs.removeAt(binIndex)
@ -566,7 +566,7 @@ fun Context.getCachedDirectories(getVideosOnly: Boolean = false, getImagesOnly:
ArrayList<Directory>()
}
if (!config.showRecycleBinAtFolders || !config.useRecycleBin) {
if (!config.showRecycleBinAtFolders) {
directories.removeAll { it.isRecycleBin() }
}
@ -584,7 +584,8 @@ fun Context.getCachedDirectories(getVideosOnly: Boolean = false, getImagesOnly:
(filterMedia and TYPE_VIDEOS != 0 && it.types and TYPE_VIDEOS != 0) ||
(filterMedia and TYPE_GIFS != 0 && it.types and TYPE_GIFS != 0) ||
(filterMedia and TYPE_RAWS != 0 && it.types and TYPE_RAWS != 0) ||
(filterMedia and TYPE_SVGS != 0 && it.types and TYPE_SVGS != 0)
(filterMedia and TYPE_SVGS != 0 && it.types and TYPE_SVGS != 0) ||
(filterMedia and TYPE_PORTRAITS != 0 && it.types and TYPE_PORTRAITS != 0)
}
}) as ArrayList<Directory>
@ -640,7 +641,8 @@ fun Context.getCachedMedia(path: String, getVideosOnly: Boolean = false, getImag
(filterMedia and TYPE_VIDEOS != 0 && it.type == TYPE_VIDEOS) ||
(filterMedia and TYPE_GIFS != 0 && it.type == TYPE_GIFS) ||
(filterMedia and TYPE_RAWS != 0 && it.type == TYPE_RAWS) ||
(filterMedia and TYPE_SVGS != 0 && it.type == TYPE_SVGS)
(filterMedia and TYPE_SVGS != 0 && it.type == TYPE_SVGS) ||
(filterMedia and TYPE_PORTRAITS != 0 && it.type == TYPE_PORTRAITS)
}
}) as ArrayList<Medium>
@ -852,3 +854,29 @@ fun Context.updateDirectoryPath(path: String) {
val directory = createDirectoryFromMedia(path, curMedia, albumCovers, hiddenString, includedFolders, isSortingAscending, getProperFileSize)
updateDBDirectory(directory, galleryDB.DirectoryDao())
}
fun Context.getFileDateTaken(path: String): Long {
val projection = arrayOf(
MediaStore.Images.Media.DATE_TAKEN
)
val uri = MediaStore.Files.getContentUri("external")
val selection = "${MediaStore.Images.Media.DATA} = ?"
val selectionArgs = arrayOf(path)
val cursor = contentResolver.query(uri, projection, selection, selectionArgs, null)
cursor?.use {
if (cursor.moveToFirst()) {
do {
try {
return cursor.getLongValue(MediaStore.Images.Media.DATE_TAKEN)
} catch (e: Exception) {
}
} while (cursor.moveToNext())
}
}
return 0L
}
fun Context.isChromebook() = packageManager.hasSystemFeature("org.chromium.arc.device_management")

View file

@ -16,6 +16,15 @@ fun String.shouldFolderBeVisible(excludedPaths: MutableSet<String>, includedPath
}
val file = File(this)
if (file.name.startsWith("img_", true)) {
val files = file.list()
if (files != null) {
if (files.any { it.contains("portrait", true) && it.contains("burst", true) }) {
return false
}
}
}
if (!showHidden && file.isHidden) {
return false
} else if (includedPaths.contains(this)) {

View file

@ -57,7 +57,7 @@ import java.util.*
class PhotoFragment : ViewPagerFragment() {
private val DEFAULT_DOUBLE_TAP_ZOOM = 2f
private val ZOOMABLE_VIEW_LOAD_DELAY = 150L
private val ZOOMABLE_VIEW_LOAD_DELAY = 100L
private val SAME_ASPECT_RATIO_THRESHOLD = 0.01
// devices with good displays, but the rest of the hardware not good enough for them

View file

@ -162,7 +162,8 @@ const val TYPE_VIDEOS = 2
const val TYPE_GIFS = 4
const val TYPE_RAWS = 8
const val TYPE_SVGS = 16
const val TYPE_DEFAULT_FILTER = TYPE_IMAGES or TYPE_VIDEOS or TYPE_GIFS or TYPE_RAWS or TYPE_SVGS
const val TYPE_PORTRAITS = 32
const val TYPE_DEFAULT_FILTER = TYPE_IMAGES or TYPE_VIDEOS or TYPE_GIFS or TYPE_RAWS or TYPE_SVGS or TYPE_PORTRAITS
const val LOCATION_INTERNAL = 1
const val LOCATION_SD = 2

View file

@ -178,7 +178,7 @@ class MediaFetcher(val context: Context) {
val showHidden = config.shouldShowHidden
val excludedFolders = config.excludedFolders
foldersToScan = foldersToScan.filter { it.shouldFolderBeVisible(excludedFolders, includedFolders, showHidden) } as ArrayList<String>
return foldersToScan.distinctBy { it.getDistinctPath() }.toSet() as LinkedHashSet<String>
return foldersToScan.distinctBy { it.getDistinctPath() }.toMutableSet() as LinkedHashSet<String>
}
private fun addFolder(curFolders: ArrayList<String>, folder: String) {
@ -206,12 +206,34 @@ class MediaFetcher(val context: Context) {
val checkProperFileSize = getProperFileSize || config.fileLoadingPriority == PRIORITY_COMPROMISE
val checkFileExistence = config.fileLoadingPriority == PRIORITY_VALIDITY
val showHidden = config.shouldShowHidden
val showPortraits = filterMedia and TYPE_PORTRAITS != 0
val dateTakens = if (getProperDateTaken && folder != FAVORITES && !isRecycleBin) getFolderDateTakens(folder) else HashMap()
val subdirs = ArrayList<File>() // used only for Portrait photos starting with "IMG_" for now
val files = when (folder) {
FAVORITES -> favoritePaths.filter { showHidden || !it.contains("/.") }.map { File(it) }.toTypedArray()
RECYCLE_BIN -> deletedMedia.map { File(it.path) }.toTypedArray()
else -> File(folder).listFiles() ?: return media
FAVORITES -> favoritePaths.filter { showHidden || !it.contains("/.") }.map { File(it) }.toMutableList() as ArrayList<File>
RECYCLE_BIN -> deletedMedia.map { File(it.path) }.toMutableList() as ArrayList<File>
else -> {
val allFiles = File(folder).listFiles() ?: return media
val notDirs = ArrayList<File>()
allFiles.forEach {
if (it.isDirectory) {
if (showPortraits && it.name.startsWith("img_", true)) {
subdirs.add(it)
}
} else {
notDirs.add(it)
}
}
notDirs
}
}
for (subdir in subdirs) {
val portraitFiles = subdir.listFiles() ?: continue
val cover = portraitFiles.firstOrNull { it.name.contains("cover", true) } ?: portraitFiles.first()
files.add(cover)
}
for (file in files) {
@ -283,6 +305,7 @@ class MediaFetcher(val context: Context) {
media.add(medium)
}
}
return media
}
@ -302,9 +325,11 @@ class MediaFetcher(val context: Context) {
if (cursor.moveToFirst()) {
do {
try {
val path = cursor.getStringValue(MediaStore.Images.Media.DISPLAY_NAME)
val dateTaken = cursor.getLongValue(MediaStore.Images.Media.DATE_TAKEN)
if (dateTaken != 0L) {
val path = cursor.getStringValue(MediaStore.Images.Media.DISPLAY_NAME)
dateTakens[path] = dateTaken
}
} catch (e: Exception) {
}
} while (cursor.moveToNext())

View file

@ -44,6 +44,8 @@ data class Medium(
fun isSVG() = type == TYPE_SVGS
fun isPortrait() = type == TYPE_PORTRAITS
fun isHidden() = name.startsWith('.')
fun getBubbleText(sorting: Int, context: Context) = when {

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M12,12.25c1.24,0 2.25,-1.01 2.25,-2.25S13.24,7.75 12,7.75 9.75,8.76 9.75,10s1.01,2.25 2.25,2.25zM16.5,16.25c0,-1.5 -3,-2.25 -4.5,-2.25s-4.5,0.75 -4.5,2.25L7.5,17h9v-0.75zM19,3L5,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM19,19L5,19L5,5h14v14z"/>
</vector>

View file

@ -38,6 +38,10 @@
android:layout_alignParentBottom="true"
android:background="@drawable/gradient_background"/>
<include
android:id="@+id/bottom_editor_primary_actions"
layout="@layout/bottom_editor_primary_actions"/>
<include
android:id="@+id/bottom_aspect_ratios"
layout="@layout/bottom_actions_aspect_ratio"
@ -70,8 +74,4 @@
android:layout_above="@+id/bottom_editor_primary_actions"
android:visibility="gone"/>
<include
android:id="@+id/bottom_editor_primary_actions"
layout="@layout/bottom_editor_primary_actions"/>
</RelativeLayout>

View file

@ -49,4 +49,12 @@
android:paddingBottom="@dimen/activity_margin"
android:text="@string/svgs"/>
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/filter_media_portraits"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/activity_margin"
android:paddingBottom="@dimen/activity_margin"
android:text="@string/portraits"/>
</LinearLayout>

View file

@ -42,6 +42,7 @@
<string name="gifs">الصور المتحركة</string>
<string name="raw_images">RAW images</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">لم يتم العثور على ملفات وسائط مع الفلاتر المحددة</string>
<string name="change_filters_underlined"><u >تغيير الفلاتر</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">RAW images</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">No media files have been found with the selected filters.</string>
<string name="change_filters_underlined"><u>Change filters</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">Imatges RAW</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">No shan tronat arxius amb els filtres seleccionats.</string>
<string name="change_filters_underlined"><u>Canviar filtres</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFy</string>
<string name="raw_images">RAW obrázky</string>
<string name="svgs">SVGčka</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Se zvolenými filtry nebyly nalezeny žádné médiální soubory.</string>
<string name="change_filters_underlined"><u>Změnit filtry</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF\'er</string>
<string name="raw_images">RAW-billeder</string>
<string name="svgs">SVG\'er</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Der blev ikke fundet nogen filer med det valgte filter.</string>
<string name="change_filters_underlined"><u>Skift filter</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">RAW-Bilder</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Keine Medien für die ausgewählten Filter gefunden.</string>
<string name="change_filters_underlined"><u>Filter ändern</u></string>
@ -180,7 +181,7 @@
<string name="show_recycle_bin_last">Zeige den Papierkorb als letztes Element auf dem Hauptbildschirm</string>
<string name="allow_down_gesture">Erlaube das Schließen der Vollbildansicht mit einer Abwärtsgeste</string>
<string name="allow_one_to_one_zoom">Erlaube 1:1 Zoom mit zweimaligem, doppeltem Antippen</string>
<string name="open_videos_on_separate_screen">Öffne Videos immer auf einem speraten Bildschirm mit neuen horizontalen Gesten</string>
<string name="open_videos_on_separate_screen">Öffne Videos immer auf einem seperaten Bildschirm mit neuen horizontalen Gesten</string>
<string name="show_notch">Show a notch if available</string>
<string name="allow_rotating_gestures">Rotieren von Bildern mit Gesten zulassen</string>
<string name="file_loading_priority">Priorität beim Laden von Dateien</string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">RAW Εικόνες</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Δεν βρέθηκε κανένα αρχείο πολυμέσων με τα επιλεγμένα φίλτρα.</string>
<string name="change_filters_underlined"><u>Αλλαγή φίλτρων</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">Imagenes RAW</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">No se han encontrado ficheros con los filtros seleccionados.</string>
<string name="change_filters_underlined"><u>Cambiar filtros</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFit</string>
<string name="raw_images">RAW images</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Mediaa ei löytynyt valituilla suotimilla.</string>
<string name="change_filters_underlined"><u>Muuta suotimia</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">Images RAW</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Aucun fichier média trouvé avec les filtres sélectionnés</string>
<string name="change_filters_underlined"><u>Modifier les filtres</u></string>
@ -187,7 +188,7 @@
<string name="speed">Rapide</string>
<string name="compromise">Compromis</string>
<string name="avoid_showing_invalid_files">Eviter l\'affichage de fichiers invalides</string>
<string name="show_image_file_types">Show image file types</string>
<string name="show_image_file_types">Afficher les types d\'image</string>
<!-- Setting sections -->
<string name="thumbnails">Miniatures</string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">RAW images</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Non se atoparon medios dos indicados polo filtro.</string>
<string name="change_filters_underlined"><u>Cambiar filtro</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF-ovi</string>
<string name="raw_images">RAW slike</string>
<string name="svgs">SVG-ovi</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Nije pronađena nijedna datoteka s odabranim filtrom.</string>
<string name="change_filters_underlined"><u>Promijeni filter</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">RAW kép</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">A kiválasztott szűrők nem találtak médiafájlokat.</string>
<string name="change_filters_underlined"><u>Szűrők változtatása</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">Gambar RAW</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Tidak ditemukan berkas media yang sesuai dengan filter ini.</string>
<string name="change_filters_underlined"><u>Ubah filter</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">Gambar RAW</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Tidak ditemukan berkas media yang sesuai dengan filter ini.</string>
<string name="change_filters_underlined"><u>Ubah filter</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">Immagini RAW</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Nessun file trovato con il filtro selezionato.</string>
<string name="change_filters_underlined"><u>Cambia filtro</u></string>
@ -187,7 +188,7 @@
<string name="speed">Veloce</string>
<string name="compromise">Compromesso</string>
<string name="avoid_showing_invalid_files">Evita di mostrare file non validi</string>
<string name="show_image_file_types">Show image file types</string>
<string name="show_image_file_types">Mostra i tipi di file immagine</string>
<!-- Setting sections -->
<string name="thumbnails">Anteprime</string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">RAW</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">条件に該当するメディアがありません。</string>
<string name="change_filters_underlined"><u>絞り込み条件を変更</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">RAW images</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">설정된 필터와 일치하는 컨텐츠가 존재하지 않습니다.</string>
<string name="change_filters_underlined"><u>필터 변경</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF\'ai</string>
<string name="raw_images">RAW images</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Su pasirinktais filtrais nerasta medijos bylų.</string>
<string name="change_filters_underlined"><u>Pakeisti filtrus</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF-bilder</string>
<string name="raw_images">RAW-format-bilder</string>
<string name="svgs">SVG-bilder</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Ingen media-filer er funnet med de valgte filtrene.</string>
<string name="change_filters_underlined"><u>Endre filtere</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF-bestanden</string>
<string name="raw_images">RAW-afbeeldingen</string>
<string name="svgs">SVG-vectorafbeeldingen</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Er zijn geen bestanden gevonden met de huidige filters.</string>
<string name="change_filters_underlined"><u>Filters aanpassen</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFy</string>
<string name="raw_images">Obrazy RAW</string>
<string name="svgs">Obrazy SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Nie znaleziono multimediów zgodnych z zastosowanymi filtrami.</string>
<string name="change_filters_underlined"><u>Zmień filtry</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">Imagens RAW</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Nenhum arquivo de mídia encontrado a partir dos filtros selecionados.</string>
<string name="change_filters_underlined"><u>Alterar filtros</u></string>

View file

@ -33,7 +33,7 @@
<string name="dates_fixed_successfully">Dados corrigidos com sucesso</string>
<string name="share_resized">Partilhar foto redimensionada</string>
<string name="upgraded_from_free">Olá,\n\nparece que você utilizou a opção de atualização existente na versão antiga. Agora já pode desinstalar essa versão antiga.\n\nApenas perderá os itens existentes na reciclagem e os favoritos não assinalados mas também terá que repor as predefinições da aplicação.\n\nObrigado!</string>
<string name="switch_to_file_search">Switch to file search across all visible folders</string>
<string name="switch_to_file_search">Trocar para pesquisa de ficheiros em todas as pastas visíveis</string>
<!-- Filter -->
<string name="filter_media">Filtrar multimédia</string>
@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">Imagens RAW</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Não foram encontrados ficheiros que cumpram os requisitos.</string>
<string name="change_filters_underlined"><u>Alterar filtros</u></string>
@ -187,7 +188,7 @@
<string name="speed">Velocidade</string>
<string name="compromise">Compromisso</string>
<string name="avoid_showing_invalid_files">Não mostrar ficheiros inválidos</string>
<string name="show_image_file_types">Show image file types</string>
<string name="show_image_file_types">Mostrar o tipo de imagem</string>
<!-- Setting sections -->
<string name="thumbnails">Miniaturas</string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">RAW</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">При заданных фильтрах медиафайлы не найдены</string>
<string name="change_filters_underlined"><u>Изменить фильтры</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFká</string>
<string name="raw_images">RAW obrázky</string>
<string name="svgs">SVGčká</string>
<string name="portraits">Portréty</string>
<string name="no_media_with_filters">So zvolenými filtrami sa nenašli žiadne média súbory.</string>
<string name="change_filters_underlined"><u>Zmeniť filtre</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFi</string>
<string name="raw_images">RAW slike</string>
<string name="svgs">SVGji</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Na podlagi izbranih filtrov ne najdem nobenih medijskih datotek.</string>
<string name="change_filters_underlined"><u>Spremeni filtre</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">ГИФови</string>
<string name="raw_images">Сирове слике</string>
<string name="svgs">СВГови</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Нема пронађених медија датотека са изабраним филтерима.</string>
<string name="change_filters_underlined"><u>Измени филтере</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF-bilder</string>
<string name="raw_images">RAW-bilder</string>
<string name="svgs">SVG-bilder</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Inga mediefiler hittades med valda filter.</string>
<string name="change_filters_underlined"><u>Ändra filter</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF\'ler</string>
<string name="raw_images">RAW resimler</string>
<string name="svgs">SVG\'ler</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">Seçilen filtrelerle hiçbir medya dosyası bulunamadı.</string>
<string name="change_filters_underlined"><u>Filtreleri değiştir</u></string>
@ -64,7 +65,7 @@
<string name="manage_included_folders">Dahil edilen klasörleri yönet</string>
<string name="add_folder">Klasör ekle</string>
<string name="included_activity_placeholder">Medya içeren, ancak uygulama tarafından tanınmayan bazı klasörleriniz varsa, bunları elle ekleyebilirsiniz.\n\nBuraya bazı öğeler eklemek başka bir klasörü hariç tutmaz.</string>
<string name="no_media_add_included">No media files have been found. You can solve it by adding the folders containing media files manually.</string>
<string name="no_media_add_included">Hiçbir medya dosyası bulunamadı. Medya dosyalarını içeren klasörleri elle ekleyerek çözebilirsiniz.</string>
<!-- Resizing -->
<string name="resize">Yeniden boyutlandır</string>
@ -116,8 +117,8 @@
<string name="random_order">Rastgele sırala</string>
<string name="move_backwards">Geriye doğru git</string>
<string name="loop_slideshow">Slayt gösterisini tekrarla</string>
<string name="animation">Animation</string>
<string name="no_animation">None</string>
<string name="animation">Animasyon</string>
<string name="no_animation">Hiçbiri</string>
<string name="fade">Fade</string>
<string name="slide">Slide</string>
<string name="slideshow_ended">Slayt gösterisi sona erdi</string>
@ -134,14 +135,14 @@
<string name="do_not_group_files">Dosyaları gruplandırma</string>
<string name="by_folder">Klasör</string>
<string name="by_last_modified">Son değiştirilme</string>
<string name="by_last_modified_daily">Last modified (daily)</string>
<string name="by_last_modified_monthly">Last modified (monthly)</string>
<string name="by_last_modified_daily">Son değiştirilme (günlük)</string>
<string name="by_last_modified_monthly">Son değiştirilme (aylık)</string>
<string name="by_date_taken">Çekildiği tarih</string>
<string name="by_date_taken_daily">Date taken (daily)</string>
<string name="by_date_taken_monthly">Date taken (monthly)</string>
<string name="by_date_taken_daily">Çekildiği tarih (günlük)</string>
<string name="by_date_taken_monthly">Çekildiği tarih (aylık)</string>
<string name="by_file_type">Dosya türü</string>
<string name="by_extension">Uzantı</string>
<string name="grouping_and_sorting">Please note that grouping and sorting are 2 independent fields</string>
<string name="grouping_and_sorting">Lütfen gruplandırmanın ve sıralamanın 2 bağımsız alan olduğunu unutmayın</string>
<!-- Widgets -->
<string name="folder_on_widget">Widget\'ta gösterilen klasör:</string>
@ -183,11 +184,11 @@
<string name="open_videos_on_separate_screen">Videoları yeni yatay hareketlerle daima ayrı bir ekranda aç</string>
<string name="show_notch">Varsa bir çentik göster</string>
<string name="allow_rotating_gestures">Hareketlerle resimlerin döndürülmesine izin ver</string>
<string name="file_loading_priority">File loading priority</string>
<string name="speed">Speed</string>
<string name="compromise">Compromise</string>
<string name="avoid_showing_invalid_files">Avoid showing invalid files</string>
<string name="show_image_file_types">Show image file types</string>
<string name="file_loading_priority">Dosya yükleme önceliği</string>
<string name="speed">Hız</string>
<string name="compromise">Ödünsüz</string>
<string name="avoid_showing_invalid_files">Geçersiz dosyaları göstermekten kaçın</string>
<string name="show_image_file_types">Resim dosyası türlerini göster</string>
<!-- Setting sections -->
<string name="thumbnails">Küçük resimler</string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF-зображення</string>
<string name="raw_images">RAW-зображення</string>
<string name="svgs">SVG-зображення</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">З вибраними фільтрами мультимедійні файли не знайдено.</string>
<string name="change_filters_underlined"><u>Змінити фільтри</u></string>
@ -187,7 +188,7 @@
<string name="speed">Швидкість</string>
<string name="compromise">Компроміс</string>
<string name="avoid_showing_invalid_files">Запобігати показу пошкоджених файлів</string>
<string name="show_image_file_types">Show image file types</string>
<string name="show_image_file_types">Показувати типи файлів зображень</string>
<!-- Setting sections -->
<string name="thumbnails">Ескізи</string>

View file

@ -1,78 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">简约图库</string>
<string name="app_launcher_name">简约图库</string>
<string name="app_launcher_name">图库</string>
<string name="edit">编辑</string>
<string name="open_camera">打开相机</string>
<string name="hidden">(隐藏)</string>
<string name="excluded">(排除)</string>
<string name="pin_folder">锁定目录</string>
<string name="unpin_folder">解除锁定目录</string>
<string name="pin_to_the_top">固定到顶部</string>
<string name="hidden">隐藏)</string>
<string name="excluded">排除)</string>
<string name="pin_folder">固定文件夹</string>
<string name="unpin_folder">取消固定文件夹</string>
<string name="pin_to_the_top">置顶固定</string>
<string name="show_all">文件视图</string>
<string name="all_folders">所有目录</string>
<string name="folder_view">目录视图</string>
<string name="other_folder">其他目录</string>
<string name="show_on_map">在地图显示</string>
<string name="all_folders">所有文件夹</string>
<string name="folder_view">文件夹视图</string>
<string name="other_folder">其他文件夹</string>
<string name="show_on_map">在地图显示</string>
<string name="unknown_location">未知位置</string>
<string name="increase_column_count">增加一栏</string>
<string name="reduce_column_count">减少一栏</string>
<string name="change_cover_image">封面图片</string>
<string name="increase_column_count">显示更多项目</string>
<string name="reduce_column_count">显示更少项目</string>
<string name="change_cover_image">封面图片</string>
<string name="select_photo">选择图片</string>
<string name="use_default">使用默认</string>
<string name="volume">音量</string>
<string name="brightness">亮度</string>
<string name="lock_orientation">锁定方向</string>
<string name="unlock_orientation">解锁方向</string>
<string name="change_orientation">改变方向</string>
<string name="lock_orientation">锁定屏幕方向</string>
<string name="unlock_orientation">解锁屏幕方向</string>
<string name="change_orientation">更改屏幕方向</string>
<string name="force_portrait">强制竖屏</string>
<string name="force_landscape">强制横屏</string>
<string name="use_default_orientation">默认</string>
<string name="use_default_orientation">使用默认屏幕方向</string>
<string name="fix_date_taken">修复拍摄日期</string>
<string name="fixing">正在修复…</string>
<string name="dates_fixed_successfully">日期修复成功</string>
<string name="share_resized">调整图像尺寸并分享</string>
<string name="upgraded_from_free">嘿,\n\n看起来您是从旧的免费版应用程序升级的。您现在可以卸载旧版本,在该版本应用的设置菜单顶部有一个“升级到专业版”按钮。\n\n此操作将会删除回收站项目并取消收藏已收藏的项目你的应用设置也将会重置。\n\n谢谢</string>
<string name="switch_to_file_search">切换文件搜索目标为所有可见的文件夹</string>
<string name="share_resized">调整尺寸并分享</string>
<string name="upgraded_from_free">嘿,\n\n你似乎已经从旧的免费版应用升级。你现在可以卸载旧版本,在该版本的应用设置顶部有一个“升级到专业版”按钮。\n\n此操作会删除回收站项目取消标记收藏项目并重置应用设置。\n\n谢谢</string>
<string name="switch_to_file_search">切换文件搜索范围为所有可见的文件夹</string>
<!-- Filter -->
<string name="filter_media">要显示的媒体文件</string>
<string name="filter_media">筛选媒体文件</string>
<string name="images">图片</string>
<string name="videos">视频</string>
<string name="gifs">GIFs</string>
<string name="gifs">GIF</string>
<string name="raw_images">RAW 图片</string>
<string name="svgs">SVGs</string>
<string name="no_media_with_filters">所选的过滤器没有找到媒体文件。</string>
<string name="change_filters_underlined"><u>更改过滤器</u></string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">没有媒体文件匹配选定的筛选条件。</string>
<string name="change_filters_underlined"><u>更改筛选条件</u></string>
<!-- Hide / Exclude -->
<string name="hide_folder_description">通过添加文件 \'.nomedia\' 到目录,可以防止目录及其子目录下的所有媒体被扫描。您可以通过设置中的 \'显示隐藏目录\' 选项改变设置,是否继续?</string>
<string name="hide_folder_description">该功能通过添加“.nomedia”文件到文件夹来隐藏它这也会隐藏其所有子文件夹。您可以通过启用设置中的“显示隐藏的项目”选项来查看它们,是否继续?</string>
<string name="exclude">排除</string>
<string name="excluded_folders">排除目录</string>
<string name="manage_excluded_folders">管理排除目录</string>
<string name="exclude_folder_description">目录及其子目录中的媒体将不会在“简约图库”中显示,您可以在设置更改</string>
<string name="exclude_folder_parent">是否排除父目录</string>
<string name="excluded_folders">排除的文件夹</string>
<string name="manage_excluded_folders">管理排除的文件夹</string>
<string name="exclude_folder_description">该操作仅会在“简约图库”中排除显示选定的文件夹及其子文件夹。您可以在设置中管理排除的文件夹</string>
<string name="exclude_folder_parent">是否排除父文件夹</string>
<string name="excluded_activity_placeholder">此目录及其子目录中的媒体将不会在“简约图库”中显示,但是其它应用可以访问。如果您想对其它应用隐藏,请使用隐藏功能。</string>
<string name="remove_all">移除全部</string>
<string name="remove_all_description">是否除排除列表中的所有项目?此操作不会删除文件夹本身。</string>
<string name="hidden_folders">隐藏目录</string>
<string name="manage_hidden_folders">管理隐藏目录</string>
<string name="remove_all">全部移除</string>
<string name="remove_all_description">是否除排除列表中的所有项目?此操作不会删除文件夹本身。</string>
<string name="hidden_folders">隐藏的文件夹</string>
<string name="manage_hidden_folders">管理隐藏的文件夹</string>
<string name="hidden_folders_placeholder">看起来你没有任何使用“.nomedia”文件隐藏的目录。</string>
<!-- Include folders -->
<string name="include_folders">包含目录</string>
<string name="manage_included_folders">管理包含目录</string>
<string name="add_folder">添加目录</string>
<string name="include_folders">包含的文件夹</string>
<string name="manage_included_folders">管理包含的文件夹</string>
<string name="add_folder">添加文件夹</string>
<string name="included_activity_placeholder">如果您还有应用未扫描到的媒体文件,请添加所在目录路径。</string>
<string name="no_media_add_included">没有找到媒体文件。请手动添加包含媒体文件的文件夹。</string>
<!-- Resizing -->
<string name="resize">缩放</string>
<string name="resize_and_save">缩放选定区域并保存</string>
<string name="resize">调整尺寸</string>
<string name="resize_and_save">调整选定项目的尺寸并保存</string>
<string name="width">宽度</string>
<string name="height">高度</string>
<string name="keep_aspect_ratio">保持纵横</string>
<string name="invalid_values">请输入有效分辨率</string>
<string name="keep_aspect_ratio">保持高宽</string>
<string name="invalid_values">请输入有效分辨率</string>
<!-- Editor -->
<string name="editor">编辑器</string>
@ -82,8 +83,8 @@
<string name="invalid_image_path">无效的图片路径</string>
<string name="image_editing_failed">图片编辑失败</string>
<string name="edit_image_with">编辑方式:</string>
<string name="no_editor_found">未找到可用图片编辑器</string>
<string name="unknown_file_location">未知的文件路径</string>
<string name="no_editor_found">没有找到图片编辑器</string>
<string name="unknown_file_location">未知文件位置</string>
<string name="error_saving_file">无法覆盖源文件</string>
<string name="rotate_left">向左旋转</string>
<string name="rotate_right">向右旋转</string>
@ -96,32 +97,32 @@
<!-- Set wallpaper -->
<string name="simple_wallpaper">简约壁纸</string>
<string name="set_as_wallpaper">设为壁纸</string>
<string name="set_as_wallpaper_failed">壁纸设置失败</string>
<string name="set_as_wallpaper_with">为壁纸...</string>
<string name="set_as_wallpaper">为壁纸</string>
<string name="set_as_wallpaper_failed">设置壁纸失败</string>
<string name="set_as_wallpaper_with">置壁纸方式:</string>
<string name="setting_wallpaper">正在设置壁纸&#8230;</string>
<string name="wallpaper_set_successfully">壁纸设置成功</string>
<string name="portrait_aspect_ratio">纵向宽比</string>
<string name="landscape_aspect_ratio">横向宽比</string>
<string name="home_screen">主屏幕壁纸</string>
<string name="lock_screen">屏壁纸</string>
<string name="home_and_lock_screen">主屏幕和锁屏壁纸</string>
<string name="wallpaper_set_successfully">设置壁纸成功</string>
<string name="portrait_aspect_ratio">纵向宽比</string>
<string name="landscape_aspect_ratio">横向宽比</string>
<string name="home_screen">主屏幕</string>
<string name="lock_screen">定屏幕</string>
<string name="home_and_lock_screen">主屏幕和锁定屏幕</string>
<!-- Slideshow -->
<string name="slideshow">幻灯片</string>
<string name="interval">间隔(秒):</string>
<string name="include_photos">照片</string>
<string name="include_videos">视频</string>
<string name="include_gifs">括 GIFs</string>
<string name="include_photos">照片</string>
<string name="include_videos">视频</string>
<string name="include_gifs">含GIF</string>
<string name="random_order">随机顺序</string>
<string name="move_backwards">倒播</string>
<string name="loop_slideshow">循环幻灯片</string>
<string name="move_backwards"></string>
<string name="loop_slideshow">循环播放</string>
<string name="animation">动画</string>
<string name="no_animation"></string>
<string name="fade"></string>
<string name="fade"></string>
<string name="slide">滑动</string>
<string name="slideshow_ended">幻灯片结束</string>
<string name="no_media_for_slideshow">未发现可用媒体</string>
<string name="no_media_for_slideshow">没有找到可播放幻灯片媒体文件</string>
<!-- View types -->
<string name="change_view_type">更改视图类型</string>
@ -131,35 +132,35 @@
<!-- Grouping at media thumbnails -->
<string name="group_by">分组依据</string>
<string name="do_not_group_files">禁用文件分组</string>
<string name="by_folder">目录</string>
<string name="by_last_modified">近修改</string>
<string name="by_last_modified_daily">最后修改(按日)</string>
<string name="by_last_modified_monthly">最后修改(按月)</string>
<string name="do_not_group_files">不分组文件</string>
<string name="by_folder">文件夹</string>
<string name="by_last_modified">后修改时间</string>
<string name="by_last_modified_daily">最后修改时间(按日)</string>
<string name="by_last_modified_monthly">最后修改时间(按月)</string>
<string name="by_date_taken">拍摄时间</string>
<string name="by_date_taken_daily">拍摄日期(按日)</string>
<string name="by_date_taken_monthly">拍摄日期(按月)</string>
<string name="by_date_taken_daily">拍摄时间(按日)</string>
<string name="by_date_taken_monthly">拍摄时间(按月)</string>
<string name="by_file_type">文件类型</string>
<string name="by_extension">扩展名</string>
<string name="grouping_and_sorting">请注意,分组和排序是相互独立的</string>
<string name="grouping_and_sorting">请注意,分组和排序是两种独立的组织方式</string>
<!-- Widgets -->
<string name="folder_on_widget">要在小部件上显示的文件夹:</string>
<string name="folder_on_widget">在小工具上显示的文件夹:</string>
<string name="show_folder_name">显示文件夹名称</string>
<!-- Settings -->
<string name="autoplay_videos">自动播放</string>
<string name="autoplay_videos">自动播放视频</string>
<string name="remember_last_video_position">记住上次视频播放位置</string>
<string name="toggle_filename">显示文件名</string>
<string name="loop_videos">循环播放视频</string>
<string name="animate_gifs">GIF 缩略图</string>
<string name="max_brightness">浏览时最大亮度</string>
<string name="crop_thumbnails">裁剪缩略图</string>
<string name="max_brightness">全屏查看媒体文件时最大亮度</string>
<string name="crop_thumbnails">裁剪缩略图为正方形</string>
<string name="show_thumbnail_video_duration">显示视频时长</string>
<string name="screen_rotation_by">全屏方向</string>
<string name="screen_rotation_by">旋转全屏媒体文件依据</string>
<string name="screen_rotation_system_setting">系统设置</string>
<string name="screen_rotation_device_rotation">设备方向</string>
<string name="screen_rotation_aspect_ratio">根据长宽比</string>
<string name="screen_rotation_device_rotation">设备旋转</string>
<string name="screen_rotation_aspect_ratio">宽比</string>
<string name="black_background_at_fullscreen">全屏时使用黑色背景和状态栏</string>
<string name="scroll_thumbnails_horizontally">水平滚动缩略图</string>
<string name="hide_system_ui_at_fullscreen">全屏时自动隐藏状态栏</string>
@ -184,10 +185,10 @@
<string name="show_notch">显示留海(如果可用)</string>
<string name="allow_rotating_gestures">允许使用手势旋转图像</string>
<string name="file_loading_priority">文件加载优先级</string>
<string name="speed"></string>
<string name="speed"></string>
<string name="compromise">折中</string>
<string name="avoid_showing_invalid_files">避免显示无效的文件</string>
<string name="show_image_file_types">Show image file types</string>
<string name="show_image_file_types">显示图片文件类型</string>
<!-- Setting sections -->
<string name="thumbnails">缩略图</string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">RAW圖檔</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">選擇的篩選條件未發現媒體檔案。</string>
<string name="change_filters_underlined"><u>更改篩選條件</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIF</string>
<string name="raw_images">RAW圖檔</string>
<string name="svgs">SVG</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">選擇的篩選條件未發現媒體檔案。</string>
<string name="change_filters_underlined"><u>更改篩選條件</u></string>

View file

@ -42,6 +42,7 @@
<string name="gifs">GIFs</string>
<string name="raw_images">RAW images</string>
<string name="svgs">SVGs</string>
<string name="portraits">Portraits</string>
<string name="no_media_with_filters">No media files have been found with the selected filters.</string>
<string name="change_filters_underlined"><u>Change filters</u></string>

0
gradlew vendored Executable file → Normal file
View file