Merge pull request #75 from SimpleMobileTools/master

upd
This commit is contained in:
solokot 2020-01-16 23:18:04 +03:00 committed by GitHub
commit 6b9910155c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
73 changed files with 1743 additions and 647 deletions

3
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,3 @@
github: [tibbi]
patreon: tiborkaputa
custom: ["https://www.paypal.me/SimpleMobileTools", "https://www.simplemobiletools.com/donate"]

View file

@ -2,13 +2,13 @@
buildscript {
ext {
propCompileSdkVersion = 28
propBuildToolsVersion = "28.0.3"
propCompileSdkVersion = 29
propBuildToolsVersion = "29.0.2"
propMinSdkVersion = 21
propTargetSdkVersion = propCompileSdkVersion
propVersionCode = 1
propVersionName = '5.19.2'
kotlin_version = '1.3.50'
propVersionName = '5.21.23'
kotlin_version = '1.3.61'
}
repositories {
@ -17,7 +17,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

View file

@ -38,9 +38,9 @@ dependencies {
api 'com.google.code.gson:gson:2.8.5'
api 'com.duolingo.open:rtl-viewpager:1.0.3'
api 'com.github.bumptech.glide:glide:4.10.0'
kapt 'com.github.bumptech.glide:compiler:4.10.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'
api 'com.github.bumptech.glide:glide:4.11.0'
kapt 'com.github.bumptech.glide:compiler:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
}
apply from: '../bintray-upload.gradle'

View file

@ -9,6 +9,7 @@ import android.text.method.LinkMovementMethod
import android.view.Menu
import android.view.View
import com.simplemobiletools.commons.R
import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.*
@ -76,7 +77,7 @@ class AboutActivity : BaseSimpleActivity() {
about_email.movementMethod = LinkMovementMethod.getInstance()
about_email.setOnClickListener(null)
val msg = "${getString(R.string.before_asking_question_read_faq)}\n\n${getString(R.string.make_sure_latest)}"
ConfirmationDialog(this, msg, 0, R.string.read_it, R.string.skip) {
ConfirmationDialog(this, msg, 0, R.string.read_faq, R.string.skip) {
about_faq_label.performClick()
}
}
@ -142,14 +143,26 @@ class AboutActivity : BaseSimpleActivity() {
}
private fun setupRateUs() {
if (baseConfig.appRunCount < 10) {
if (baseConfig.appRunCount < 5) {
about_rate_us.visibility = View.GONE
} else {
about_rate_us.setOnClickListener {
try {
launchViewIntent("market://details?id=${packageName.removeSuffix(".debug")}")
} catch (ignored: ActivityNotFoundException) {
launchViewIntent(getStoreUrl())
if (baseConfig.wasBeforeRateShown) {
try {
launchViewIntent("market://details?id=${packageName.removeSuffix(".debug")}")
} catch (ignored: ActivityNotFoundException) {
launchViewIntent(getStoreUrl())
}
} else {
baseConfig.wasBeforeRateShown = true
val msg = "${getString(R.string.before_rate_read_faq)}\n\n${getString(R.string.make_sure_latest)}"
ConfirmationAdvancedDialog(this, msg, 0, R.string.read_faq, R.string.skip) {
if (it) {
about_faq_label.performClick()
} else {
about_rate_us.performClick()
}
}
}
}
}

View file

@ -183,43 +183,51 @@ abstract class BaseSimpleActivity : AppCompatActivity() {
}
val sdOtgPattern = Pattern.compile(SD_OTG_SHORT)
if (requestCode == OPEN_DOCUMENT_TREE && resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
val isProperPartition = partition.isEmpty() || !sdOtgPattern.matcher(partition).matches() || (sdOtgPattern.matcher(partition).matches() && resultData.dataString!!.contains(partition))
if (isProperSDFolder(resultData.data!!) && isProperPartition) {
if (resultData.dataString == baseConfig.OTGTreeUri) {
toast(R.string.sd_card_usb_same)
return
}
if (requestCode == OPEN_DOCUMENT_TREE) {
if (resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
val isProperPartition = partition.isEmpty() || !sdOtgPattern.matcher(partition).matches() || (sdOtgPattern.matcher(partition).matches() && resultData.dataString!!.contains(partition))
if (isProperSDFolder(resultData.data!!) && isProperPartition) {
if (resultData.dataString == baseConfig.OTGTreeUri) {
toast(R.string.sd_card_usb_same)
return
}
saveTreeUri(resultData)
funAfterSAFPermission?.invoke(true)
funAfterSAFPermission = null
saveTreeUri(resultData)
funAfterSAFPermission?.invoke(true)
funAfterSAFPermission = null
} else {
toast(R.string.wrong_root_selected)
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
startActivityForResult(intent, requestCode)
}
} else {
toast(R.string.wrong_root_selected)
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
startActivityForResult(intent, requestCode)
funAfterSAFPermission?.invoke(false)
}
} else if (requestCode == OPEN_DOCUMENT_TREE_OTG && resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
val isProperPartition = partition.isEmpty() || !sdOtgPattern.matcher(partition).matches() || (sdOtgPattern.matcher(partition).matches() && resultData.dataString!!.contains(partition))
if (isProperOTGFolder(resultData.data!!) && isProperPartition) {
if (resultData.dataString == baseConfig.treeUri) {
funAfterSAFPermission?.invoke(false)
toast(R.string.sd_card_usb_same)
return
} else if (requestCode == OPEN_DOCUMENT_TREE_OTG) {
if (resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
val isProperPartition = partition.isEmpty() || !sdOtgPattern.matcher(partition).matches() || (sdOtgPattern.matcher(partition).matches() && resultData.dataString!!.contains(partition))
if (isProperOTGFolder(resultData.data!!) && isProperPartition) {
if (resultData.dataString == baseConfig.treeUri) {
funAfterSAFPermission?.invoke(false)
toast(R.string.sd_card_usb_same)
return
}
baseConfig.OTGTreeUri = resultData.dataString!!
baseConfig.OTGPartition = baseConfig.OTGTreeUri.removeSuffix("%3A").substringAfterLast('/').trimEnd('/')
updateOTGPathFromPartition()
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
applicationContext.contentResolver.takePersistableUriPermission(resultData.data!!, takeFlags)
funAfterSAFPermission?.invoke(true)
funAfterSAFPermission = null
} else {
toast(R.string.wrong_root_selected_usb)
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
startActivityForResult(intent, requestCode)
}
baseConfig.OTGTreeUri = resultData.dataString
baseConfig.OTGPartition = baseConfig.OTGTreeUri.removeSuffix("%3A").substringAfterLast('/').trimEnd('/')
updateOTGPathFromPartition()
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
applicationContext.contentResolver.takePersistableUriPermission(resultData.data, takeFlags)
funAfterSAFPermission?.invoke(true)
funAfterSAFPermission = null
} else {
toast(R.string.wrong_root_selected_usb)
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
startActivityForResult(intent, requestCode)
funAfterSAFPermission?.invoke(false)
}
}
}
@ -229,7 +237,7 @@ abstract class BaseSimpleActivity : AppCompatActivity() {
baseConfig.treeUri = treeUri.toString()
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
applicationContext.contentResolver.takePersistableUriPermission(treeUri, takeFlags)
applicationContext.contentResolver.takePersistableUriPermission(treeUri!!, takeFlags)
}
private fun isProperSDFolder(uri: Uri) = isExternalStorageDocument(uri) && isRootUri(uri) && !isInternalStorage(uri)
@ -273,6 +281,7 @@ abstract class BaseSimpleActivity : AppCompatActivity() {
}
}
// synchronous return value determines only if we are showing the SAF dialog, callback result tells if the SD or OTG permission has been granted
fun handleSAFDialog(path: String, callback: (success: Boolean) -> Unit): Boolean {
return if (!packageName.startsWith("com.simplemobiletools")) {
callback(true)
@ -321,6 +330,11 @@ abstract class BaseSimpleActivity : AppCompatActivity() {
}
handleSAFDialog(destination) {
if (!it) {
copyMoveListener.copyFailed()
return@handleSAFDialog
}
copyMoveCallback = callback
var fileCountToCopy = fileDirItems.size
if (isCopyOperation) {
@ -328,7 +342,9 @@ abstract class BaseSimpleActivity : AppCompatActivity() {
} else {
if (isPathOnOTG(source) || isPathOnOTG(destination) || isPathOnSD(source) || isPathOnSD(destination) || fileDirItems.first().isDirectory) {
handleSAFDialog(source) {
startCopyMove(fileDirItems, destination, isCopyOperation, copyPhotoVideoOnly, copyHidden)
if (it) {
startCopyMove(fileDirItems, destination, isCopyOperation, copyPhotoVideoOnly, copyHidden)
}
}
} else {
try {
@ -360,10 +376,8 @@ abstract class BaseSimpleActivity : AppCompatActivity() {
if (updatedPaths.isEmpty()) {
copyMoveListener.copySucceeded(false, fileCountToCopy == 0, destination)
} else {
rescanPaths(updatedPaths) {
runOnUiThread {
copyMoveListener.copySucceeded(false, fileCountToCopy <= updatedPaths.size, destination)
}
runOnUiThread {
copyMoveListener.copySucceeded(false, fileCountToCopy <= updatedPaths.size, destination)
}
}
}
@ -470,9 +484,15 @@ abstract class BaseSimpleActivity : AppCompatActivity() {
}
}
fun exportSettings(configItems: LinkedHashMap<String, Any>, defaultFilename: String) {
fun exportSettings(configItems: LinkedHashMap<String, Any>) {
handlePermission(PERMISSION_WRITE_STORAGE) {
if (it) {
var defaultFilename = baseConfig.lastExportedSettingsFile
if (defaultFilename.isEmpty()) {
val appName = baseConfig.appId.removeSuffix(".debug").removeSuffix(".pro").removePrefix("com.simplemobiletools.")
defaultFilename = "$appName-settings.txt"
}
ExportSettingsDialog(this, defaultFilename) {
val file = File(it)
val fileDirItem = FileDirItem(file.absolutePath, file.name)

View file

@ -401,6 +401,11 @@ class CustomizationActivity : BaseSimpleActivity() {
}
private fun pickPrimaryColor() {
if (!packageName.startsWith("com.simplemobiletools.", true) && baseConfig.appRunCount > 50) {
finish()
return
}
curPrimaryLineColorPicker = LineColorPickerDialog(this, curPrimaryColor, true, menu = menu) { wasPositivePressed, color ->
curPrimaryLineColorPicker = null
if (wasPositivePressed) {

View file

@ -52,6 +52,10 @@ class FilepickerItemsAdapter(activity: BaseSimpleActivity, val fileDirItems: Lis
override fun getItemSelectionKey(position: Int) = fileDirItems[position].path.hashCode()
override fun onActionModeCreated() {}
override fun onActionModeDestroyed() {}
override fun onViewRecycled(holder: ViewHolder) {
super.onViewRecycled(holder)
if (!activity.isDestroyed && !activity.isFinishing) {

View file

@ -9,7 +9,7 @@ import android.widget.TextView
class MyArrayAdapter<T>(context: Context, res: Int, items: Array<T>, val textColor: Int, val backgroundColor: Int, val padding: Int) :
ArrayAdapter<T>(context, res, items) {
override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup?): View {
override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View {
val view = super.getView(position, convertView, parent)
view.findViewById<TextView>(android.R.id.text1).apply {

View file

@ -47,6 +47,10 @@ abstract class MyRecyclerViewAdapter(val activity: BaseSimpleActivity, val recyc
abstract fun getItemKeyPosition(key: Int): Int
abstract fun onActionModeCreated()
abstract fun onActionModeDestroyed()
protected fun isOneItemSelected() = selectedKeys.size == 1
init {
@ -72,6 +76,7 @@ abstract class MyRecyclerViewAdapter(val activity: BaseSimpleActivity, val recyc
}
}
activity.menuInflater.inflate(getActionMenuId(), menu)
onActionModeCreated()
return true
}
@ -93,6 +98,7 @@ abstract class MyRecyclerViewAdapter(val activity: BaseSimpleActivity, val recyc
actBarTextView?.text = ""
actMode = null
lastLongPressedItem = -1
onActionModeDestroyed()
}
}
}

View file

@ -22,7 +22,7 @@ import java.io.OutputStream
import java.lang.ref.WeakReference
import java.util.*
class CopyMoveTask(val activity: BaseSimpleActivity, val copyOnly: Boolean = false, val copyMediaOnly: Boolean, val conflictResolutions: LinkedHashMap<String, Int>,
class CopyMoveTask(val activity: BaseSimpleActivity, val copyOnly: Boolean, val copyMediaOnly: Boolean, val conflictResolutions: LinkedHashMap<String, Int>,
listener: CopyMoveListener, val copyHidden: Boolean) : AsyncTask<Pair<ArrayList<FileDirItem>, String>, Void, Boolean>() {
private val INITIAL_PROGRESS_DELAY = 3000L
private val PROGRESS_RECHECK_INTERVAL = 500L
@ -89,6 +89,9 @@ class CopyMoveTask(val activity: BaseSimpleActivity, val copyOnly: Boolean = fal
} else if (resolution == CONFLICT_OVERWRITE) {
newFileDirItem.isDirectory = if (activity.getDoesFilePathExist(newPath)) File(newPath).isDirectory else activity.getSomeDocumentFile(newPath)!!.isDirectory
activity.deleteFileBg(newFileDirItem, true)
if (!newFileDirItem.isDirectory) {
activity.deleteFromMediaStore(newFileDirItem.path)
}
} else if (resolution == CONFLICT_KEEP_BOTH) {
val newFile = activity.getAlternativeFile(File(newFileDirItem.path))
newFileDirItem = FileDirItem(newFile.path, newFile.name, newFile.isDirectory)
@ -97,15 +100,11 @@ class CopyMoveTask(val activity: BaseSimpleActivity, val copyOnly: Boolean = fal
copy(file, newFileDirItem)
} catch (e: Exception) {
activity.toast(e.toString())
activity.showErrorToast(e)
return false
}
}
if (!copyOnly) {
activity.deleteFilesBg(mTransferredFiles) {}
}
return true
}
@ -255,6 +254,9 @@ class CopyMoveTask(val activity: BaseSimpleActivity, val copyOnly: Boolean = fal
}
if (!copyOnly) {
inputStream.close()
out?.close()
activity.deleteFileBg(source)
activity.deleteFromMediaStore(source.path)
}
}

View file

@ -43,15 +43,17 @@ class CreateNewFolderDialog(val activity: BaseSimpleActivity, val path: String,
try {
when {
activity.needsStupidWritePermissions(path) -> activity.handleSAFDialog(path) {
try {
val documentFile = activity.getDocumentFile(path.getParentPath())
if (documentFile?.createDirectory(path.getFilenameFromPath()) != null) {
sendSuccess(alertDialog, path)
} else {
activity.toast(R.string.unknown_error_occurred)
if (it) {
try {
val documentFile = activity.getDocumentFile(path.getParentPath())
if (documentFile?.createDirectory(path.getFilenameFromPath()) != null) {
sendSuccess(alertDialog, path)
} else {
activity.toast(R.string.unknown_error_occurred)
}
} catch (e: SecurityException) {
activity.showErrorToast(e)
}
} catch (e: SecurityException) {
activity.showErrorToast(e)
}
}
File(path).mkdirs() -> sendSuccess(alertDialog, path)

View file

@ -8,7 +8,13 @@ import kotlinx.android.synthetic.main.dialog_export_settings.view.*
class ExportSettingsDialog(val activity: BaseSimpleActivity, val defaultFilename: String, callback: (path: String) -> Unit) {
init {
var folder = activity.internalStoragePath
val lastUsedFolder = activity.baseConfig.lastExportedSettingsFolder
var folder = if (lastUsedFolder.isNotEmpty() && activity.getDoesFilePathExist(lastUsedFolder)) {
lastUsedFolder
} else {
activity.internalStoragePath
}
val view = activity.layoutInflater.inflate(R.layout.dialog_export_settings, null).apply {
export_settings_filename.setText(defaultFilename)
export_settings_path.text = activity.humanizePath(folder)
@ -32,12 +38,14 @@ class ExportSettingsDialog(val activity: BaseSimpleActivity, val defaultFilename
return@setOnClickListener
}
activity.baseConfig.lastExportedSettingsFile = filename
val newPath = "${folder.trimEnd('/')}/$filename"
if (!newPath.getFilenameFromPath().isAValidFilename()) {
activity.toast(R.string.filename_invalid_characters)
return@setOnClickListener
}
activity.baseConfig.lastExportedSettingsFolder = folder
if (activity.getDoesFilePathExist(newPath)) {
val title = String.format(activity.getString(R.string.file_already_exists_overwrite), newPath.getFilenameFromPath())
ConfirmationDialog(activity, title) {

View file

@ -34,6 +34,7 @@ class FilePickerDialog(val activity: BaseSimpleActivity,
var showHidden: Boolean = false,
val showFAB: Boolean = false,
val canAddShowHiddenButton: Boolean = false,
val forceShowRoot: Boolean = false,
val callback: (pickedPath: String) -> Unit) : Breadcrumbs.BreadcrumbsListener {
private var mFirstUpdate = true
@ -231,7 +232,7 @@ class FilePickerDialog(val activity: BaseSimpleActivity,
override fun breadcrumbClicked(id: Int) {
if (id == 0) {
StoragePickerDialog(activity, currPath) {
StoragePickerDialog(activity, currPath, forceShowRoot) {
currPath = it
tryUpdateItems()
}

View file

@ -78,7 +78,7 @@ class PropertiesDialog() {
}
val exif = if (isNougatPlus() && activity.isPathOnOTG(fileDirItem.path)) {
ExifInterface((activity as BaseSimpleActivity).getFileInputStreamSync(fileDirItem.path))
ExifInterface((activity as BaseSimpleActivity).getFileInputStreamSync(fileDirItem.path)!!)
} else {
ExifInterface(fileDirItem.path)
}
@ -194,7 +194,7 @@ class PropertiesDialog() {
private fun addExifProperties(path: String, activity: Activity) {
val exif = if (isNougatPlus() && activity.isPathOnOTG(path)) {
ExifInterface((activity as BaseSimpleActivity).getFileInputStreamSync(path))
ExifInterface((activity as BaseSimpleActivity).getFileInputStreamSync(path)!!)
} else {
ExifInterface(path)
}

View file

@ -25,7 +25,7 @@ class RenameItemDialog(val activity: BaseSimpleActivity, val path: String, val c
}
rename_item_name.setText(name)
rename_item_path.text = activity.humanizePath(path.getParentPath())
rename_item_path.text = "${activity.humanizePath(path.getParentPath()).trimEnd('/')}/"
}
AlertDialog.Builder(activity)

View file

@ -47,6 +47,10 @@ class RenameItemsDialog(val activity: BaseSimpleActivity, val paths: ArrayList<S
}
activity.handleSAFDialog(sdFilePath) {
if (!it) {
return@handleSAFDialog
}
ignoreClicks = true
var pathsCnt = validPaths.size
for (path in validPaths) {

View file

@ -47,7 +47,7 @@ class SelectAlarmSoundDialog(val activity: BaseSimpleActivity, val currentUri: S
.setNegativeButton(R.string.cancel, null)
.create().apply {
activity.setupDialogStuff(view, this)
window.volumeControlStream = audioStream
window?.volumeControlStream = audioStream
}
}

View file

@ -18,7 +18,7 @@ import kotlinx.android.synthetic.main.dialog_radio_group.view.*
* @param callback an anonymous function
*
*/
class StoragePickerDialog(val activity: BaseSimpleActivity, currPath: String, val callback: (pickedPath: String) -> Unit) {
class StoragePickerDialog(val activity: BaseSimpleActivity, currPath: String, forceShowRoot: Boolean, val callback: (pickedPath: String) -> Unit) {
private val ID_INTERNAL = 1
private val ID_SD = 2
private val ID_OTG = 3
@ -76,17 +76,20 @@ class StoragePickerDialog(val activity: BaseSimpleActivity, currPath: String, va
radioGroup.addView(otgButton, layoutParams)
}
val rootButton = inflater.inflate(R.layout.radio_button, null) as RadioButton
rootButton.apply {
id = ID_ROOT
text = resources.getString(R.string.root)
isChecked = basePath == "/"
setOnClickListener { rootPicked() }
if (isChecked) {
defaultSelectedId = id
// allow for example excluding the root folder at the gallery
if (activity.baseConfig.appId.contains("filemanager") || forceShowRoot) {
val rootButton = inflater.inflate(R.layout.radio_button, null) as RadioButton
rootButton.apply {
id = ID_ROOT
text = resources.getString(R.string.root)
isChecked = basePath == "/"
setOnClickListener { rootPicked() }
if (isChecked) {
defaultSelectedId = id
}
}
radioGroup.addView(rootButton, layoutParams)
}
radioGroup.addView(rootButton, layoutParams)
mDialog = AlertDialog.Builder(activity)
.create().apply {

View file

@ -28,7 +28,10 @@ class WritePermissionDialog(activity: Activity, val isOTG: Boolean, val callback
dialog = AlertDialog.Builder(activity)
.setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
.setOnCancelListener { BaseSimpleActivity.funAfterSAFPermission = null }
.setOnCancelListener {
BaseSimpleActivity.funAfterSAFPermission?.invoke(false)
BaseSimpleActivity.funAfterSAFPermission = null
}
.create().apply {
activity.setupDialogStuff(view, this, R.string.confirm_storage_access_title)
}

View file

@ -4,7 +4,6 @@ import android.app.Activity
import android.content.*
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.graphics.drawable.ColorDrawable
import android.media.RingtoneManager
import android.net.Uri
import android.os.TransactionTooLargeException
@ -97,7 +96,7 @@ fun Activity.isAppInstalledOnSDCard(): Boolean = try {
}
fun BaseSimpleActivity.isShowingSAFDialog(path: String): Boolean {
return if (isPathOnSD(path) && (baseConfig.treeUri.isEmpty() || !hasProperStoredTreeUri(false))) {
return if (isPathOnSD(path) && !isSDCardSetAsDefaultStorage() && (baseConfig.treeUri.isEmpty() || !hasProperStoredTreeUri(false))) {
runOnUiThread {
if (!isDestroyed && !isFinishing) {
WritePermissionDialog(this, false) {
@ -205,7 +204,7 @@ fun Activity.sharePathsIntent(paths: ArrayList<String>, applicationId: String) {
val uriPaths = ArrayList<String>()
val newUris = paths.map {
val uri = getFinalUriFromPath(it, applicationId) ?: return@ensureBackgroundThread
uriPaths.add(uri.path)
uriPaths.add(uri.path!!)
uri
} as ArrayList<Uri>
@ -392,6 +391,10 @@ fun BaseSimpleActivity.deleteFoldersBg(folders: ArrayList<FileDirItem>, deleteMe
}
handleSAFDialog(needPermissionForPath) {
if (!it) {
return@handleSAFDialog
}
folders.forEachIndexed { index, folder ->
deleteFolderBg(folder, deleteMediaOnly) {
if (it)
@ -454,6 +457,10 @@ fun BaseSimpleActivity.deleteFilesBg(files: ArrayList<FileDirItem>, allowDeleteF
var wasSuccess = false
handleSAFDialog(files[0].path) {
if (!it) {
return@handleSAFDialog
}
files.forEachIndexed { index, file ->
deleteFileBg(file, allowDeleteFolder) {
if (it) {
@ -498,7 +505,9 @@ fun BaseSimpleActivity.deleteFileBg(fileDirItem: FileDirItem, allowDeleteFolder:
if (!fileDeleted) {
if (needsStupidWritePermissions(path)) {
handleSAFDialog(path) {
trySAFFileDelete(fileDirItem, allowDeleteFolder, callback)
if (it) {
trySAFFileDelete(fileDirItem, allowDeleteFolder, callback)
}
}
}
}
@ -539,6 +548,10 @@ fun Activity.rescanPaths(paths: ArrayList<String>, callback: (() -> Unit)? = nul
fun BaseSimpleActivity.renameFile(oldPath: String, newPath: String, callback: ((success: Boolean) -> Unit)? = null) {
if (needsStupidWritePermissions(newPath)) {
handleSAFDialog(newPath) {
if (!it) {
return@handleSAFDialog
}
val document = getSomeDocumentFile(oldPath)
if (document == null || (File(oldPath).isDirectory != document.isDirectory)) {
runOnUiThread {
@ -618,6 +631,10 @@ fun Activity.hideKeyboard(view: View) {
fun BaseSimpleActivity.getFileOutputStream(fileDirItem: FileDirItem, allowCreatingNewFile: Boolean = false, callback: (outputStream: OutputStream?) -> Unit) {
if (needsStupidWritePermissions(fileDirItem.path)) {
handleSAFDialog(fileDirItem.path) {
if (!it) {
return@handleSAFDialog
}
var document = getDocumentFile(fileDirItem.path)
if (document == null && allowCreatingNewFile) {
document = getDocumentFile(fileDirItem.getParentPath())
@ -684,8 +701,13 @@ fun BaseSimpleActivity.getFileOutputStreamSync(path: String, mimeType: String, p
return null
}
val newDocument = documentFile.createFile(mimeType, path.getFilenameFromPath())
applicationContext.contentResolver.openOutputStream(newDocument!!.uri)
try {
val newDocument = documentFile.createFile(mimeType, path.getFilenameFromPath())
applicationContext.contentResolver.openOutputStream(newDocument!!.uri)
} catch (e: Exception) {
showErrorToast(e)
null
}
} else {
if (targetFile.parentFile?.exists() == false) {
targetFile.parentFile.mkdirs()
@ -701,9 +723,9 @@ fun BaseSimpleActivity.getFileOutputStreamSync(path: String, mimeType: String, p
}
fun BaseSimpleActivity.getFileInputStreamSync(path: String): InputStream? {
return if (isPathOnOTG(path)) {
return if (needsStupidWritePermissions(path)) {
val fileDocument = getSomeDocumentFile(path)
applicationContext.contentResolver.openInputStream(fileDocument?.uri)
applicationContext.contentResolver.openInputStream(fileDocument?.uri!!)
} else {
FileInputStream(File(path))
}
@ -778,7 +800,7 @@ fun Activity.updateSharedTheme(sharedTheme: SharedTheme) {
fun Activity.copyToClipboard(text: String) {
val clip = ClipData.newPlainText(getString(R.string.simple_commons), text)
(getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager).primaryClip = clip
(getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager).setPrimaryClip(clip)
toast(R.string.value_copied_to_clipboard)
}
@ -815,7 +837,9 @@ fun Activity.setupDialogStuff(view: View, dialog: AlertDialog, titleId: Int = 0,
getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(baseConfig.textColor)
getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(baseConfig.textColor)
getButton(AlertDialog.BUTTON_NEUTRAL).setTextColor(baseConfig.textColor)
window?.setBackgroundDrawable(ColorDrawable(baseConfig.backgroundColor))
val bgDrawable = resources.getColoredDrawableWithColor(R.drawable.dialog_bg, baseConfig.backgroundColor)
window?.setBackgroundDrawable(bgDrawable)
}
callback?.invoke()
}

View file

@ -2,6 +2,7 @@ package com.simplemobiletools.commons.extensions
import android.content.ContentValues
import android.content.Context
import android.content.Intent
import android.hardware.usb.UsbConstants
import android.hardware.usb.UsbManager
import android.media.MediaScannerConnection
@ -23,7 +24,7 @@ import java.util.regex.Pattern
// http://stackoverflow.com/a/40582634/1967672
fun Context.getSDCardPath(): String {
val directories = getStorageDirectories().filter {
it != getInternalStoragePath() && (baseConfig.OTGPartition.isEmpty() || !it.endsWith(baseConfig.OTGPartition))
!it.equals(getInternalStoragePath()) && !it.equals("/storage/emulated/0", true) && (baseConfig.OTGPartition.isEmpty() || !it.endsWith(baseConfig.OTGPartition))
}
val fullSDpattern = Pattern.compile(SD_OTG_PATTERN)
@ -82,7 +83,7 @@ fun Context.getStorageDirectories(): Array<String> {
if (TextUtils.isEmpty(rawExternalStorage)) {
paths.addAll(physicalPaths)
} else {
paths.add(rawExternalStorage)
paths.add(rawExternalStorage!!)
}
}
} else {
@ -98,14 +99,14 @@ fun Context.getStorageDirectories(): Array<String> {
val rawUserId = if (isDigit) lastFolder else ""
if (TextUtils.isEmpty(rawUserId)) {
paths.add(rawEmulatedStorageTarget)
paths.add(rawEmulatedStorageTarget!!)
} else {
paths.add(rawEmulatedStorageTarget + File.separator + rawUserId)
}
}
if (!TextUtils.isEmpty(rawSecondaryStoragesStr)) {
val rawSecondaryStorages = rawSecondaryStoragesStr.split(File.pathSeparator.toRegex()).dropLastWhile(String::isEmpty).toTypedArray()
val rawSecondaryStorages = rawSecondaryStoragesStr!!.split(File.pathSeparator.toRegex()).dropLastWhile(String::isEmpty).toTypedArray()
Collections.addAll(paths, *rawSecondaryStorages)
}
return paths.map { it.trimEnd('/') }.toTypedArray()
@ -129,13 +130,16 @@ fun Context.humanizePath(path: String): String {
}
}
fun Context.getInternalStoragePath() = Environment.getExternalStorageDirectory().absolutePath.trimEnd('/')
fun Context.getInternalStoragePath() = if (File("/storage/emulated/0").exists()) "/storage/emulated/0" else Environment.getExternalStorageDirectory().absolutePath.trimEnd('/')
fun Context.isPathOnSD(path: String) = sdCardPath.isNotEmpty() && path.startsWith(sdCardPath)
fun Context.isPathOnOTG(path: String) = otgPath.isNotEmpty() && path.startsWith(otgPath)
fun Context.needsStupidWritePermissions(path: String) = isPathOnSD(path) || isPathOnOTG(path)
// no need to use DocumentFile if an SD card is set as the default storage
fun Context.needsStupidWritePermissions(path: String) = (isPathOnSD(path) || isPathOnOTG(path)) && !isSDCardSetAsDefaultStorage()
fun Context.isSDCardSetAsDefaultStorage() = sdCardPath.isNotEmpty() && Environment.getExternalStorageDirectory().absolutePath.equals(sdCardPath, true)
fun Context.hasProperStoredTreeUri(isOTG: Boolean): Boolean {
val uri = if (isOTG) baseConfig.OTGTreeUri else baseConfig.treeUri
@ -167,7 +171,7 @@ fun Context.tryFastDocumentDelete(path: String, allowDeleteFolder: Boolean): Boo
val document = getFastDocumentFile(path)
return if (document?.isFile == true || allowDeleteFolder) {
try {
DocumentsContract.deleteDocument(contentResolver, document?.uri)
DocumentsContract.deleteDocument(contentResolver, document?.uri!!)
} catch (e: Exception) {
false
}
@ -215,7 +219,8 @@ fun Context.getDocumentFile(path: String): DocumentFile? {
}
return try {
var document = DocumentFile.fromTreeUri(applicationContext, Uri.parse(if (isOTG) baseConfig.OTGTreeUri else baseConfig.treeUri))
val treeUri = Uri.parse(if (isOTG) baseConfig.OTGTreeUri else baseConfig.treeUri)
var document = DocumentFile.fromTreeUri(applicationContext, treeUri)
val parts = relativePath.split("/").filter { it.isNotEmpty() }
for (part in parts) {
document = document?.findFile(part)
@ -259,6 +264,13 @@ fun Context.rescanPaths(paths: ArrayList<String>, callback: (() -> Unit)? = null
return
}
for (path in paths) {
Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE).apply {
data = Uri.fromFile(File(path))
sendBroadcast(this)
}
}
var cnt = paths.size
MediaScannerConnection.scanFile(applicationContext, paths.toTypedArray(), null) { s, uri ->
if (--cnt == 0) {
@ -286,7 +298,7 @@ fun Context.getFileUri(path: String) = when {
// these functions update the mediastore instantly, MediaScannerConnection.scanFileRecursively takes some time to really get applied
fun Context.deleteFromMediaStore(path: String) {
if (getDoesFilePathExist(path) || getIsPathDirectory(path)) {
if (getIsPathDirectory(path)) {
return
}
@ -338,7 +350,11 @@ fun Context.getOTGItems(path: String, shouldShowHidden: Boolean, getProperFileSi
val OTGTreeUri = baseConfig.OTGTreeUri
var rootUri = try {
DocumentFile.fromTreeUri(applicationContext, Uri.parse(OTGTreeUri))
} catch (ignored: Exception) {
} catch (e: Exception) {
showErrorToast(e)
baseConfig.OTGPath = ""
baseConfig.OTGTreeUri = ""
baseConfig.OTGPartition = ""
null
}

View file

@ -308,10 +308,10 @@ fun Context.getFilenameFromUri(uri: Uri): String {
}
fun Context.getMimeTypeFromUri(uri: Uri): String {
var mimetype = uri.path.getMimeType()
var mimetype = uri.path?.getMimeType() ?: ""
if (mimetype.isEmpty()) {
try {
mimetype = contentResolver.getType(uri)
mimetype = contentResolver.getType(uri) ?: ""
} catch (e: IllegalStateException) {
}
}
@ -539,7 +539,7 @@ fun Context.grantReadUriPermission(uriString: String) {
fun Context.storeNewYourAlarmSound(resultData: Intent): AlarmSound {
val uri = resultData.data
var filename = getFilenameFromUri(uri)
var filename = getFilenameFromUri(uri!!)
if (filename.isEmpty()) {
filename = getString(R.string.alarm)
}
@ -569,7 +569,7 @@ fun Context.saveImageRotation(path: String, degrees: Int): Boolean {
val documentFile = getSomeDocumentFile(path)
if (documentFile != null) {
val parcelFileDescriptor = contentResolver.openFileDescriptor(documentFile.uri, "rw")
val fileDescriptor = parcelFileDescriptor.fileDescriptor
val fileDescriptor = parcelFileDescriptor!!.fileDescriptor
saveExifRotation(ExifInterface(fileDescriptor), degrees)
return true
}

View file

@ -305,6 +305,10 @@ open class BaseConfig(val context: Context) {
get() = prefs.getBoolean(WAS_BEFORE_ASKING_SHOWN, false)
set(wasBeforeAskingShown) = prefs.edit().putBoolean(WAS_BEFORE_ASKING_SHOWN, wasBeforeAskingShown).apply()
var wasBeforeRateShown: Boolean
get() = prefs.getBoolean(WAS_BEFORE_RATE_SHOWN, false)
set(wasBeforeRateShown) = prefs.edit().putBoolean(WAS_BEFORE_RATE_SHOWN, wasBeforeRateShown).apply()
var wasInitialUpgradeToProShown: Boolean
get() = prefs.getBoolean(WAS_INITIAL_UPGRADE_TO_PRO_SHOWN, false)
set(wasInitialUpgradeToProShown) = prefs.edit().putBoolean(WAS_INITIAL_UPGRADE_TO_PRO_SHOWN, wasInitialUpgradeToProShown).apply()
@ -359,4 +363,12 @@ open class BaseConfig(val context: Context) {
var lastRenamePatternUsed: String
get() = prefs.getString(LAST_RENAME_PATTERN_USED, "")!!
set(lastRenamePatternUsed) = prefs.edit().putString(LAST_RENAME_PATTERN_USED, lastRenamePatternUsed).apply()
var lastExportedSettingsFolder: String
get() = prefs.getString(LAST_EXPORTED_SETTINGS_FOLDER, "")!!
set(lastExportedSettingsFolder) = prefs.edit().putString(LAST_EXPORTED_SETTINGS_FOLDER, lastExportedSettingsFolder).apply()
var lastExportedSettingsFile: String
get() = prefs.getString(LAST_EXPORTED_SETTINGS_FILE, "")!!
set(lastExportedSettingsFile) = prefs.edit().putString(LAST_EXPORTED_SETTINGS_FILE, lastExportedSettingsFile).apply()
}

View file

@ -109,6 +109,7 @@ const val WIDGET_ID_TO_MEASURE = "widget_id_to_measure"
const val WAS_ORANGE_ICON_CHECKED = "was_orange_icon_checked"
const val WAS_APP_ON_SD_SHOWN = "was_app_on_sd_shown"
const val WAS_BEFORE_ASKING_SHOWN = "was_before_asking_shown"
const val WAS_BEFORE_RATE_SHOWN = "was_before_rate_shown"
const val WAS_INITIAL_UPGRADE_TO_PRO_SHOWN = "was_initial_upgrade_to_pro_shown"
const val WAS_APP_ICON_CUSTOMIZATION_WARNING_SHOWN = "was_app_icon_customization_warning_shown"
const val APP_SIDELOADING_STATUS = "app_sideloading_status"
@ -120,6 +121,8 @@ const val WAS_SORTING_BY_NUMERIC_VALUE_ADDED = "was_sorting_by_numeric_value_add
const val WAS_FOLDER_LOCKING_NOTICE_SHOWN = "was_folder_locking_notice_shown"
const val LAST_RENAME_USED = "last_rename_used"
const val LAST_RENAME_PATTERN_USED = "last_rename_pattern_used"
const val LAST_EXPORTED_SETTINGS_FOLDER = "last_exported_settings_folder"
const val LAST_EXPORTED_SETTINGS_FILE = "last_exported_settings_file"
// licenses
internal const val LICENSE_KOTLIN = 1

View file

@ -23,7 +23,7 @@ class ColorPickerSquare(context: Context, attrs: AttributeSet) : View(context, a
val dalam = LinearGradient(0f, 0f, measuredWidth.toFloat(), 0f, Color.WHITE, rgb, TileMode.CLAMP)
val shader = ComposeShader(luar, dalam, PorterDuff.Mode.MULTIPLY)
paint!!.shader = shader
canvas.drawRect(0f, 0f, measuredWidth.toFloat(), measuredHeight.toFloat(), paint)
canvas.drawRect(0f, 0f, measuredWidth.toFloat(), measuredHeight.toFloat(), paint!!)
}
fun setHue(hue: Float) {

View file

@ -52,8 +52,14 @@ class RenamePatternTab(context: Context, attrs: AttributeSet) : RelativeLayout(c
activity?.baseConfig?.lastRenamePatternUsed = rename_items_value.value
activity?.handleSAFDialog(sdFilePath) {
if (!it) {
return@handleSAFDialog
}
ignoreClicks = true
var currentIncrementalNumber = 1
var pathsCnt = validPaths.size
val numbersCnt = pathsCnt.toString().length
for (path in validPaths) {
val exif = ExifInterface(path)
var dateTime = if (isNougatPlus()) {
@ -71,7 +77,7 @@ class RenamePatternTab(context: Context, attrs: AttributeSet) : RelativeLayout(c
val pattern = if (dateTime.substring(4, 5) == "-") "yyyy-MM-dd kk:mm:ss" else "yyyy:MM:dd kk:mm:ss"
val simpleDateFormat = SimpleDateFormat(pattern, Locale.ENGLISH)
val dt = simpleDateFormat.parse(dateTime)
val dt = simpleDateFormat.parse(dateTime.replace("T", " "))
val cal = Calendar.getInstance()
cal.time = dt
val year = cal.get(Calendar.YEAR).toString()
@ -88,6 +94,7 @@ class RenamePatternTab(context: Context, attrs: AttributeSet) : RelativeLayout(c
.replace("%h", hours, false)
.replace("%m", minutes, false)
.replace("%s", seconds, false)
.replace("%i", String.format("%0${numbersCnt}d", currentIncrementalNumber))
if (newName.isEmpty()) {
continue
@ -114,6 +121,7 @@ class RenamePatternTab(context: Context, attrs: AttributeSet) : RelativeLayout(c
newPath = "${path.getParentPath()}/$name~$currentIndex$extension"
}
currentIncrementalNumber++
activity?.renameFile(path, newPath) {
if (it) {
pathsCnt--

View file

@ -46,6 +46,10 @@ class RenameSimpleTab(context: Context, attrs: AttributeSet) : RelativeLayout(co
}
activity?.handleSAFDialog(sdFilePath) {
if (!it) {
return@handleSAFDialog
}
ignoreClicks = true
var pathsCnt = validPaths.size
for (path in validPaths) {

View file

@ -5,7 +5,7 @@
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<solid android:color="@color/default_actionmode_color" />
<solid android:color="@color/dark_grey" />
<stroke
android:width="2dp"
android:color="?attr/colorPrimary" />

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="10dp" />
</shape>

View file

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<group>
<clip-path android:pathData="M0,0h24v24H0V0z M 0,0" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M20,9H4v2h16V9zM4,15h16v-2H4v2z" />
</group>
</vector>

File diff suppressed because it is too large Load diff

View file

@ -605,8 +605,10 @@
<string name="purchase">Ödəniş Et</string>
<string name="update_thank_you">Xahiş olunur Sadə Təşəkkür tətbiqini ən son versiyaya yeniləyin</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -605,8 +605,10 @@
<string name="purchase">Purchase</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Reanomenat simple</string>
<string name="pattern_renaming">Patró</string>
<string name="string_to_add">Cadena per afegir</string>
<string name="rename_date_time_pattern">%Y - any\n%M - mes\n%D - dia\n%h - hora\n%m - minut\n%s - segon\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - any\n%M - mes\n%D - dia\n%h - hora\n%m - minut\n%s - segon\n%i - nombre augmentant des de 1</string>
<!-- Copy / Move -->
<string name="copy">Copiar</string>
@ -605,8 +605,10 @@
<string name="purchase">Comprar</string>
<string name="update_thank_you">Si us plau, actualitzeu Simple Thank You a la darrera versió</string>
<string name="before_asking_question_read_faq">Abans de fer una pregunta, llegiu les Preguntes més freqüents. Potser la solució hi és.</string>
<string name="before_rate_read_faq">Abans de fer-nos una valoració, comproveu la configuració de l\'aplicació i llegiu les preguntes més freqüents. Si teniu problemes, potser la solució hi és.</string>
<string name="make_sure_latest">Assegureu-vos també que utilitzeu la versió més recent de l\'aplicació.</string>
<string name="read_it">Llegiu</string>
<string name="read_faq">Llegir Preguntes Freqüents</string>
<string name="rate_us_prompt">Hola,\n\nsembla que esteu utilitzant aquesta aplicació ja des de fa molt de temps, i ho agraïm realment.\n\nSi us demanem un favor, cal que ens puntueu a Google Play. En realitat, això ens ajudarà molt.\n\nNo importa que decidiu, no tornareu a veure aquest missatge.\n\nGràcies</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -64,10 +64,10 @@
<string name="source_file_doesnt_exist">Zdrojový soubor %s neexistuje</string>
<string name="prepend_filenames">Přidat před názvy souborů</string>
<string name="append_filenames">Přidat za názvy souborů</string>
<string name="simple_renaming">Simple renaming</string>
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="simple_renaming">Jednoduché přejmenování</string>
<string name="pattern_renaming">Vzor</string>
<string name="string_to_add">Přidat řetězec</string>
<string name="rename_date_time_pattern">%Y - rok\n%M - měsíc\n%D - den\n%h - hodina\n%m - minuta\n%s - sekunda\n%i - číslo narůstající od 1</string>
<!-- Copy / Move -->
<string name="copy">Kopírovat</string>
@ -94,8 +94,8 @@
<string name="saving">Ukládání…</string>
<string name="could_not_create_folder">Nepodařilo se vytvořit složku %s</string>
<string name="could_not_create_file">Nepodařilo se vytvořit soubor %s</string>
<string name="no_new_items">No new items have been found</string>
<string name="no_space">The destination does not have enough space available.\nRequired %1$s, available %2$s</string>
<string name="no_new_items">Nenalezeny žádné nové položky</string>
<string name="no_space">V cíli není dostatek místa.\nPotřeba %1$s, k dispozici %2$s</string>
<!-- Create new -->
<string name="create_new">Nový</string>
@ -172,8 +172,8 @@
<string name="camera">Fotoaparát</string>
<string name="exif">EXIF</string>
<string name="song_title">Název skladby</string>
<string name="gps_coordinates">GPS coordinates</string>
<string name="altitude">Altitude</string>
<string name="gps_coordinates">GPS souřadnice</string>
<string name="altitude">Nadmořská výška</string>
<!-- Color customization -->
<string name="background_color">Barva pozadí</string>
@ -183,18 +183,18 @@
<string name="app_icon_color">Barva ikony aplikace</string>
<string name="bottom_navigation_bar_color">Barva spodní navigační lišty</string>
<string name="restore_defaults">Obnovit výchozí</string>
<string name="use_default">Use default</string>
<string name="default_color">Default</string>
<string name="use_default">Použít výchozí</string>
<string name="default_color">Výchozí</string>
<string name="change_color">Změnit barvu</string>
<string name="theme">Motiv</string>
<string name="changing_color_description">Změna barvy změní motiv na Vlastní</string>
<string name="save">Uložit</string>
<string name="discard">Zahodit</string>
<string name="undo_changes">Vrátit změny zpět</string>
<string name="undo_changes_confirmation">Opravdu chcete vrátit změny zpět?</string>
<string name="undo_changes">Vrátit změny</string>
<string name="undo_changes_confirmation">Opravdu chcete vrátit změny?</string>
<string name="save_before_closing">Máte neuložené změny. Uložit před zavřením?</string>
<string name="apply_to_all_apps">Použít barvy na všechny Simple Apps</string>
<string name="app_icon_color_warning">UPOZORNĚNÍ: Některé launchers nepodporují změnu ikony. V případě, že ikona aplikace zmizí, zkuste ji spustit skrze Obchod Google Play, nebo nějaký widget, pokud je dostupný.
<string name="app_icon_color_warning">UPOZORNĚNÍ: Některé spouštěče nepodporují změnu ikony. V případě, že ikona aplikace zmizí, zkuste ji spustit skrze Obchod Google Play, nebo některý widget, pokud je dostupný.
Po spuštění aplikace zkuste nastavit původní oranžovou barvu ikony #F57C00. V nejhorším případě budete muset aplikaci přeinstalovat.</string>
<string name="share_colors_success">Barvy úspěšně aktualizovány. Byl přidán nový motiv \'Sdílená\', v budoucnu jej prosím použijte pro úpravu barev u všech Jednoduchých aplikací zárověň.</string>
<string name="purchase_thank_you">
@ -234,7 +234,7 @@
<string name="undo">Zpět</string>
<string name="redo">Znovu</string>
<string name="print">Tisk</string>
<string name="create_shortcut">Create shortcut</string>
<string name="create_shortcut">Vytvořit zkratku</string>
<!-- Sorting -->
<string name="sort_by">Seřadit dle</string>
@ -250,7 +250,7 @@
<string name="ascending">Vzestupně</string>
<string name="descending">Sestupně</string>
<string name="use_for_this_folder">Použít pouze pro tuto složku</string>
<string name="sort_numeric_parts">Sort numeric parts by actual value</string>
<string name="sort_numeric_parts">Řadit části s čísly podle hodnoty</string>
<!-- Confirmation dialog -->
<string name="proceed_with_deletion">Opravdu chcete smazat dané soubory/složky?</string>
@ -288,9 +288,9 @@
<string name="go_to_settings">Přejít do Nastavení</string>
<string name="protection_setup_successfully">Heslo bylo úspěšně nastaveno. Pokud jej zapomenete, prosím přeinstalujte aplikaci.</string>
<string name="fingerprint_setup_successfully">Ochrana byla úspěšně nastavena. V případě problémů s její změnou prosím přeinstalujte aplikaci.</string>
<string name="lock_folder">Lock folder</string>
<string name="unlock_folder">Unlock folder</string>
<string name="lock_folder_notice">This protection works in this app only, it is not supposed to replace a real systemwide folder encryption.</string>
<string name="lock_folder">Uzamknout složku</string>
<string name="unlock_folder">Odemknout složku</string>
<string name="lock_folder_notice">Tato ochrana funguje pouze v této aplikaci, nemá za cíl nahradit šifrování fungující napříč systémem.</string>
<!-- Times -->
<string name="yesterday">Včera</string>
@ -602,8 +602,8 @@
<string name="sunday_short">Ne</string>
<!-- Pro version -->
<string name="upgrade_to_pro_long">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements.</string>
<string name="upgrade_to_pro_long_click">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements by clicking here.</string>
<string name="upgrade_to_pro_long">Tato verze aplikace již není podporována. Pro nové opravy a jiná vylepšení prosím přejděte na Pro verzi.</string>
<string name="upgrade_to_pro_long_click">Tato verze aplikace již nebude dále aktualizována. Pro nové opravy a jiná vylepšení prosím přejděte na Pro verzi kliknutím sem.</string>
<string name="it_is_free">Bude bezplatná do: %s. Pokud si ji do té doby stáhnete, budete ji moci používat bezplatně navždy.</string>
<string name="more_info">Více informací</string>
<string name="upgrade">Stáhnout</string>
@ -638,8 +638,10 @@
<string name="purchase">Koupit</string>
<string name="update_thank_you">Prosím aktualizujte Jednoduché děkuji na nejnovější verzi</string>
<string name="before_asking_question_read_faq">Před položením otázky se prosím podívejte do nastavení aplikace a přečtěte si často kladené otázky. Možná v nich naleznete svou odpověď.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Také se ujistěte, že používáte nejnovější verzi aplikace.</string>
<string name="read_it">Přečíst</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Zdravím,\n\nzdá se, že již tuto aplikaci používáte nějaký čas a velmi si toho ceníme.\n\nMůžeme-li vás proto požádat o laskavost, prosím ohodnoťte nás na Google Play. Moc by nám to pomohlo.\n\nBez ohledu na to, jak se rozhodnete, tato zpráva se vám již nezobrazí.\n\nĎěkuji!</string>
<!-- New app (do not translate anything on the 4th line) -->
@ -673,16 +675,16 @@
<string name="faq_4_title_commons">Nelíbí se mi barvy widgetu, mohu je změnit?</string>
<string name="faq_4_text_commons">Ano, po přidání widgetu na domovskou obrazovku se zobrazí obrazovka s konfigurací. Ťuknutím na barevné čtverečky v levém dolním rohu můžete navolit nové barvy. Tažením posuvníku můžete upravit i průhlednost.</string>
<string name="faq_5_title_commons">Mohu nějakým způsobem obnovit smazané soubory?</string>
<string name="faq_5_text_commons">If they were really deleted, you cannot. However, there is a Recycle Bin enabled by default, it will cause the files just be moved in the Bin instead of deleting them.</string>
<string name="faq_5_text_commons">Pokud byly skutečně smazány, bohužel nijak. Ve výchozím nastavení je však povolen koš, díky kterému jsou soubory pouze přesunuty do něj, namísto okamžitého vymazání.</string>
<string name="faq_6_title_commons">Ikona aplikace zmizela z domovské obrazovky. Co s tím?</string>
<string name="faq_6_text_commons">Bude to způsobeno tím, že váš launcher nepodporuje úpravu ikon korektně. Zkuste aplikaci spustit skrze Obchod Play nebo nějaký widget, pokud je dostupný.
Po spuštění aplikace zkuste nastavit původní oranžovou barvu ikony #F57C00. V nejhorším případě budete muset aplikaci přeinstalovat.</string>
<string name="faq_7_title_commons">The money has been deducted from my bank account, but I cannot download the app. What can I do?</string>
<string name="faq_7_text_commons">Payments are fully handled by Google, their system glitches from time to time. Just clear your Google Play app cache and restart your device, then retry downloading it.</string>
<string name="faq_8_title_commons">Why should I upgrade to the Pro version?</string>
<string name="faq_8_text_commons">As your app version is no longer updated, the bugs you have maybe spotted will never be fixed. There will also be no new functions added. You can purchase the Pro version on Google Play for a small sum of money.
It is a one time payment, which means that once you purchase it, you will never have to pay again. Not even after getting a new device. If you won\'t like the Pro version, you can just uninstall it within a few hours and you will automatically get your money back.
If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it.</string>
<string name="faq_7_title_commons">Peníze mi byly z bankovního účtu odepsány, aplikaci však nemohu stáhnout. Co s tím?</string>
<string name="faq_7_text_commons">Platby jsou plně spravovány Googlem, jejich systém však občas nefunguje tak jak by měl. Zkuste vymazat mezipaměť aplikace Obchod Play, restartujte zařízení a zkuste aplikaci stáhnout znovu.</string>
<string name="faq_8_title_commons">Proč bych měl přejít na Pro verzi?</string>
<string name="faq_8_text_commons">Tato verze aplikace již nebude aktualizována. Chyby, které jste možná objevili, proto nebudou nikdy opraveny. Také již nepřibudou žádné nové funkce. Pro verzi získáte za malý poplatek v Obchodě Google Play.
Jde o jednorázovou platbu, což znamená, že po zakoupení již nebudete muset nic platit znovu. Ani při koupi nového zařízení. Pokud se vám Pro verze nebude líbit, můžete ji do pár hodin odinstalovat a peníze vám budou automaticky vráceny.
Pokud budete chtít aplikaci vrátit kdykoliv později, stačí nám napsat na hello@simplemobiletools.com a peníze vám vrátíme.</string>
<!-- License -->
<string name="notice">Tato aplikace používá pro ulehčení mé práce následující knihovny třetích stran. Děkuji.</string>

View file

@ -729,8 +729,10 @@
<string name="purchase">Prynu</string>
<string name="update_thank_you">Diweddara Simple Thank You i\'r fersiwn diweddaraf</string>
<string name="before_asking_question_read_faq">Cyn gofyn cwestiwn, gwiria osodiadau\'r ap a\'r atebion i Gwestiynau Cyffredin yn gyntaf. Gall fod y datrysiad yno.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Simple omdøbning</string>
<string name="pattern_renaming">Mønster</string>
<string name="string_to_add">Tekststreng der skal tilføjes</string>
<string name="rename_date_time_pattern">%Y - år\n%M - måned\n%D - dag\n%h - time\n%m - minut\n%s - sekund\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - år\n%M - måned\n%D - dag\n%h - time\n%m - minut\n%s - sekund\n%i - tal stigende fra 1</string>
<!-- Copy / Move -->
<string name="copy">Kopier</string>
@ -605,8 +605,10 @@
<string name="purchase">Køb</string>
<string name="update_thank_you">Opdater venligst Simple Thank You til den seneste version</string>
<string name="before_asking_question_read_faq">Inden du stiller et spørgsmål bedes du først tjekke appens indstillinger og læse de \"Ofte stillede spørgsmål\", måske finder du svaret der.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Læs det</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hej\n\nDet ser ud til at du har brugt denne app et godt stykke tid, og det er vi virkelig glade for.\n\nHvis vi til gengæld må bede om en tjeneste, vil vi sætte stor pris på din vurdering på Google Play. Det ville være en kæmpe hjælp.\n\nUanset hvad du beslutter dig for, vil du ikke se denne besked igen.\n\nPå forhånd tak!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -605,8 +605,10 @@
<string name="purchase">Kaufen</string>
<string name="update_thank_you">Bitte Simple Thank You auf die neueste Version aktualisieren</string>
<string name="before_asking_question_read_faq">Bevor du eine Frage stellst, überprüfe bitte die App-Einstellungen und lese dir die häufig gestellten Fragen (FAQ) durch. Vielleicht findest du dort eine Lösung.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Bitte lesen</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hallo,\n\nes sieht so aus, als würdest du diese App schon einige Zeit benutzen und wir schätzen das sehr.\n\nWenn wir dich um einen Gefallen bitten können, bitte bewerte uns auf Google Play. Das würde uns wirklich sehr helfen.\n\nEgal wie du dich entscheidest, wirst du diese Nachricht nicht noch einmal bekommen.\n\nDanke!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Απλή μετονομασία</string>
<string name="pattern_renaming">Μοτίβο</string>
<string name="string_to_add">Συμβολοσειρά για προσθήκη</string>
<string name="rename_date_time_pattern">%Y - έτος\n%M - μήνας\n%D - ημέρα\n%h - ώρα\n%m - λεπτό\n%s - δευτ/το\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - έτος\n%M - μήνας\n%D - ημέρα\n%h - ώρα\n%m - λεπτό\n%s - δευτ/το\n%i - αύξηση αριθμού από 1</string>
<!-- Copy / Move -->
<string name="copy">Αντιγραφή</string>
@ -196,7 +196,7 @@
<string name="share_colors_success">Τα χρώματα ενημερώθηκαν με επιτυχία. Ένα νέο θέμα που ονομάζεται \"Κοινόχρηστο\" έχει προστεθεί, παρακαλούμε να χρησιμοποιήστε το για την ενημέρωση των χρωμάτων όλων των εφαρμ. στο μέλλον.</string>
<string name="purchase_thank_you">
<![CDATA[
Παρακαλώ αγοράστε <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> για να ξεκλειδώσετε αυτή τη λειτουργία και να υποστηρίξει την ανάπτυξη. Ευχαριστώ!
Παρακαλώ αγοράστε <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> για να ξεκλειδώσετε αυτή τη λειτουργία για να υποστηρίξετε την ανάπτυξη. Ευχαριστώ!
]]>
</string>
@ -605,8 +605,10 @@
<string name="purchase">Αγορά</string>
<string name="update_thank_you">Παρακαλώ ενημερώστε την Simple Thank You στην τελευταία έκδοση</string>
<string name="before_asking_question_read_faq">Πριν κάνετε μια ερώτηση, ελέγξτε τις ρυθμίσεις της εφαρμογής και διαβάστε πρώτα τις Συχνές Ερωτήσεις. Ίσως η λύση είναι εκεί.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Επίσης, βεβαιωθείτε ότι χρησιμοποιείτε την τελευταία έκδοση της εφαρμογής.</string>
<string name="read_it">Διαβάστε τις</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Γειά σας,\n\nφαίνεται ότι χρησιμοποιείτε αυτήν την εφαρμογή για αρκετό καιρό ήδη, και το εκτιμούμε πραγματικά.\n\nΑν μπορούμε να σας ζητήσουμε μια χάρη, παρακαλούμε αξιολογήστε μας στο Google Play. Αυτό θα μας βοηθούσε πολύ.\n\nΑνεξάρτητα τι αποφασίσατε, δεν θα εμφανιστεί ξανά αυτό το μήνυμα.\n\nΕυχαριστώ!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -38,11 +38,11 @@
<!-- Filters -->
<string name="filter">Filtrar</string>
<string name="no_items_found">No se encontraron artículos.</string>
<string name="no_items_found">No se encontraron elementos</string>
<string name="change_filter">Cambiar filtro</string>
<!-- Permissions -->
<string name="no_storage_permissions">Se requiere permiso de almacenamiento</string>
<string name="no_storage_permissions">Se requiere permiso de Almacenamiento</string>
<string name="no_contacts_permission">Se requiere permiso de Contactos</string>
<string name="no_camera_permissions">Se requiere permiso para la Cámara</string>
<string name="no_audio_permissions">Se requiere permiso de Audio</string>
@ -67,7 +67,7 @@
<string name="simple_renaming">Renombrado simple</string>
<string name="pattern_renaming">Modelo</string>
<string name="string_to_add">Cadena para agregar</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - Año\n%M - Mes\n%D - Día\n%h - Hora\n%m - Minuto\n%s - Segundo\n%i - número aumentando desde 1</string>
<!-- Copy / Move -->
<string name="copy">Copiar</string>
@ -94,8 +94,8 @@
<string name="saving">Guardando…</string>
<string name="could_not_create_folder">No se puede crear la carpeta %s</string>
<string name="could_not_create_file">No se puede crear el fichero %s</string>
<string name="no_new_items">No new items have been found</string>
<string name="no_space">The destination does not have enough space available.\nRequired %1$s, available %2$s</string>
<string name="no_new_items">No se han encontrado elementos nuevos</string>
<string name="no_space">El destino no tiene suficiente espacio libre.\nRequerido: %1$s, Disponible: %2$s</string>
<!-- Create new -->
<string name="create_new">Crear nueva</string>
@ -109,7 +109,7 @@
<!-- File operation conflicts -->
<string name="file_already_exists">El archivo \"%s\" ya existe</string>
<string name="file_already_exists_overwrite">El archivo \"%s\" ya existe. Sobreescribir?</string>
<string name="file_already_exists_overwrite">El archivo \"%s\" ya existe. ¿Sobreescribir?</string>
<string name="folder_already_exists">La carpeta \"%s\" ya existe</string>
<string name="merge">Fusionar</string>
<string name="keep_both">Mantener ambos</string>
@ -184,14 +184,14 @@
<string name="default_color">Por defecto</string>
<string name="change_color">Cambiar de color</string>
<string name="theme">Tema</string>
<string name="changing_color_description">Cambiar un color hará que cambie a tema personalizado</string>
<string name="changing_color_description">Cambiar un color hará que cambie al tema personalizado</string>
<string name="save">Guardar</string>
<string name="discard">Deshacer</string>
<string name="undo_changes">Deshacer cambios</string>
<string name="undo_changes_confirmation">¿Seguro que quiere deshacer los cambios?</string>
<string name="save_before_closing">Tiene cambios sin aplicar. ¿Guardar antes de salir?</string>
<string name="apply_to_all_apps">Aplicar colores a todas las aplicaciones Simple Apps</string>
<string name="app_icon_color_warning">ADVERTENCIA: Algunos lanzadores no manejan correctamente la personalización del icono de la aplicación. En caso de que el icono desaparezca, intente iniciar la aplicación a través de Google Play o algún widget, si está disponible.
<string name="app_icon_color_warning">ADVERTENCIA: Algunos launchers no manejan correctamente la personalización del icono de la aplicación. En caso de que el icono desaparezca, intente iniciar la aplicación a través de Google Play o algún widget, si está disponible.
Una vez iniciado, simplemente vuelva a establecer el ícono naranja predeterminado #F57C00. Es posible que tengas que volver a instalar la aplicación en el peor de los casos.</string>
<string name="share_colors_success">Colores actualizados correctamente. Se ha añadido un nuevo tema llamado \'Shared\', Por favor utilicelo para actualizar los colores de todas las aplicaciones en el futuro.</string>
<string name="purchase_thank_you">
@ -203,9 +203,9 @@
<!-- Themes -->
<string name="light_theme">Claro</string>
<string name="dark_theme">Oscuro</string>
<string name="solarized">Solarized</string>
<string name="solarized">Solarizado</string>
<string name="dark_red">Rojo Oscuro</string>
<string name="black_white">Blanco &amp; Negro</string>
<string name="black_white">Blanco y Negro</string>
<string name="custom">Personalizado</string>
<string name="shared">Compartido</string>
@ -215,7 +215,7 @@
<!-- Actionbar items -->
<string name="delete">Eliminar</string>
<string name="remove">Remove</string>
<string name="remove">Remover</string>
<string name="rename">Renombrar</string>
<string name="share">Compartir</string>
<string name="share_via">Compartir con</string>
@ -231,7 +231,7 @@
<string name="undo">Deshacer</string>
<string name="redo">Rehacer</string>
<string name="print">Imprimir</string>
<string name="create_shortcut">Create shortcut</string>
<string name="create_shortcut">Crear atajo</string>
<!-- Sorting -->
<string name="sort_by">Ordenar por</string>
@ -247,11 +247,11 @@
<string name="ascending">Ascendente</string>
<string name="descending">Descendente</string>
<string name="use_for_this_folder">Sólo para esta carpeta</string>
<string name="sort_numeric_parts">Sort numeric parts by actual value</string>
<string name="sort_numeric_parts">Ordenar partes numéricas por su valor</string>
<!-- Confirmation dialog -->
<string name="proceed_with_deletion">¿Está seguro de querer continuar con la eliminación?</string>
<string name="deletion_confirmation">Estas seguro que quieres borrar %s?</string> <!-- Are you sure you want to delete 5 items? -->
<string name="deletion_confirmation">¿Estas seguro que quieres borrar %s?</string> <!-- Are you sure you want to delete 5 items? -->
<string name="move_to_recycle_bin_confirmation">¿Estás seguro de que quieres mover %s a la papelera de reciclaje?</string> <!-- Are you sure you want to move 3 items into the Recycle Bin? -->
<string name="are_you_sure_delete">¿Seguro que quieres eliminar este elemento?</string>
<string name="are_you_sure_recycle_bin">¿Seguro que quieres enviar este elemento a la papelera?</string>
@ -569,8 +569,8 @@
<string name="sunday_short">Dom</string>
<!-- Pro version -->
<string name="upgrade_to_pro_long">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements.</string>
<string name="upgrade_to_pro_long_click">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements by clicking here.</string>
<string name="upgrade_to_pro_long">La versión de tu aplicación ya no será actualizada. Por favor, mejora a la versión Pro para recibir nuevas correcciones y otras mejoras.</string>
<string name="upgrade_to_pro_long_click">La versión de tu aplicación ya no será actualizada. Por favor, mejora a la versión Pro para recibir nuevas correcciones y otras mejoras clickeando aquí.</string>
<string name="it_is_free">Es gratis hasta: %s. Si lo descargas hasta entonces, podrás usarlo gratis para siempre..</string>
<string name="more_info">Más informanción</string>
<string name="upgrade">Actualizar</string>
@ -586,15 +586,15 @@
<string name="invite_friends_underlined"><u>Invitar a amigos</u></string>
<string name="share_text">Hola, ven y mira %1$s en %2$s</string>
<string name="invite_via">Invitar con</string>
<string name="rate_us_underlined"><u>Vótanos en Play Store</u></string>
<string name="rate">Rate</string>
<string name="rate_us_underlined"><u>Califícanos en Play Store</u></string>
<string name="rate">Puntuar</string>
<string name="donate">Donar</string>
<string name="donate_underlined"><u>Donar</u></string>
<string name="follow_us">Síguenos</string>
<string name="copyright">v %1$s\nCopyright © Simple Mobile Tools %2$d</string>
<string name="additional_info">Información adicional</string>
<string name="app_version">App version: %s</string>
<string name="device_os">Device OS: %s</string>
<string name="app_version">Versión de la app: %s</string>
<string name="device_os">SO del dispositivo: %s</string>
<string name="donate_please">
<![CDATA[
Hola,<br><br>
@ -605,9 +605,11 @@
<string name="purchase">Comprar</string>
<string name="update_thank_you">Por favor, actualice Simple Tank You a la última versión</string>
<string name="before_asking_question_read_faq">Antes de hacer una pregunta, lea las Preguntas más frecuentes. Quizás la solución esté allí.</string>
<string name="before_rate_read_faq">Antes de calificarnos, verifique la configuración de la aplicación y lea primero las Preguntas frecuentes. Si tiene algún problema, tal vez la solución esté ahí.</string>
<string name="make_sure_latest">También asegúrese de estar utilizando la última versión de la aplicación.</string>
<string name="read_it">Leer</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<string name="read_faq">Leer Preguntas Frecuentes</string>
<string name="rate_us_prompt">Hola,\n\nparece que ya has usado esta aplicación, y realmente lo apreciamos.\n\nSi te podemos pedir un favor, por favor, puntúanos en Google Play. Eso realmente nos ayudaría mucho.\n\nNo importa lo que decidas, no verás este mensaje de nuevo.\n\n!Gracias!</string>
<!-- New app (do not translate anything on the 4th line) -->
<string name="new_app">
@ -640,46 +642,46 @@
<string name="faq_4_title_commons">No me gustan los colores del widget, ¿puedo cambiarlos?</string>
<string name="faq_4_text_commons">Sí, al arrastrar un widget en la pantalla de inicio aparece una pantalla de configuración de widgets. Verá cuadrados de colores en la esquina inferior izquierda, solo presione para elegir un nuevo color. Puede usar el control deslizante para ajustar el alfa también.</string>
<string name="faq_5_title_commons">¿Puedo de alguna manera restaurar archivos borrados?</string>
<string name="faq_5_text_commons">If they were really deleted, you cannot. However, there is a Recycle Bin enabled by default, it will cause the files just be moved in the Bin instead of deleting them.</string>
<string name="faq_5_text_commons">Si realmente fueron eliminados, no puedes. Sin embargo, hay una Papelera de Reciclaje activada por defecto, esta hará que los archivos solo seán movidos a la papelera en lugar de eliminarlos.</string>
<string name="faq_6_title_commons">El icono del iniciador de aplicaciones desapareció. ¿Que puedo hacer?</string>
<string name="faq_6_text_commons">Esto se debe a que el iniciador no admite correctamente la personalización de iconos. Intenta lanzar la aplicación a través de Google Play o algún widget, si está disponible.
Una vez iniciado, simplemente vuelva a establecer el ícono naranja predeterminado #F57C00. Es posible que tenga que volver a instalar la aplicación en el peor de los casos.</string>
<string name="faq_7_title_commons">El dinero se ha deducido de mi cuenta bancaria, pero no puedo descargar la aplicación. ¿Que puedo hacer?</string>
<string name="faq_7_text_commons">Los pagos son manejados completamente por Google, su sistema falla de vez en cuando. Simplemente borre el caché de su aplicación Google Play y reinicie su dispositivo, luego intente descargarlo nuevamente.</string>
<string name="faq_8_title_commons">Why should I upgrade to the Pro version?</string>
<string name="faq_8_text_commons">As your app version is no longer updated, the bugs you have maybe spotted will never be fixed. There will also be no new functions added. You can purchase the Pro version on Google Play for a small sum of money.
It is a one time payment, which means that once you purchase it, you will never have to pay again. Not even after getting a new device. If you won\'t like the Pro version, you can just uninstall it within a few hours and you will automatically get your money back.
If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it.</string>
<string name="faq_8_title_commons">¿Por qué debería actualziar a la versión Pro?</string>
<string name="faq_8_text_commons">Ya que la versión de tu aplicación ya no será actualizada, los errores que tiene podrían nunca ser arreglados. Tampoco se añadirán nuevas funciones. Puedes comprar la versión Pro en Google Play por una pequeña cantidad de dinero.
Solo pagas una vez, lo que significa que, una vez que la hayas comprado, nunca tendrás que pagar de nuevo. Incluso cuando consigas un nuevo dispositivo. Si no te gusta la versión Pro, puedes solo desisntalarla en un periodo de unas horas y automáticamente recibirás tu dinero de vuelta.
Si quieres un rembolso en cualquier otro momento, solo contáctanos en hello@simplemobiletools.com y lo tendrás.</string>
<!-- License -->
<string name="notice">Esta aplicación usa las siguientes bibliotecas de terceros que hacen mi vida más fácil. Gracias.</string>
<string name="third_party_licences">Licencias de terceros</string>
<string name="kotlin_title">Kotlin (Programming language)</string>
<string name="subsampling_title">Subsampling Scale Image View (zoomable imageviews)</string>
<string name="glide_title">Glide (image loading and caching)</string>
<string name="picasso_title">Picasso (image loading and caching)</string>
<string name="cropper_title">Android Image Cropper (image crop and rotate)</string>
<string name="rtl_viewpager_title">RtlViewPager (right to left swiping)</string>
<string name="joda_title">Joda-Time (Java date replacement)</string>
<string name="stetho_title">Stetho (debugging databases)</string>
<string name="otto_title">Otto (event bus)</string>
<string name="photoview_title">PhotoView (zoomable GIFs)</string>
<string name="pattern_title">PatternLockView (pattern protection)</string>
<string name="reprint_title">Reprint (fingerprint protection)</string>
<string name="gif_drawable_title">Gif Drawable (loading GIFs)</string>
<string name="autofittextview_title">AutoFitTextView (resizing text)</string>
<string name="robolectric_title">Robolectric (testing framework)</string>
<string name="espresso_title">Espresso (testing helper)</string>
<string name="gson_title">Gson (JSON parser)</string>
<string name="leak_canary_title">Leak Canary (memory leak detector)</string>
<string name="kotlin_title">Kotlin (Lenguaje de programación)</string>
<string name="subsampling_title">Subsampling Scale Image View (Visor de imágenes con zoom)</string>
<string name="glide_title">Glide (Carga y almacenamiento en caché de imágenes)</string>
<string name="picasso_title">Picasso (Carga y almacenamiento en caché de imágenes)</string>
<string name="cropper_title">Android Image Cropper (Recortador y rotador de imágenes)</string>
<string name="rtl_viewpager_title">RtlViewPager (Desplazamiento de izquierda a derecha)</string>
<string name="joda_title">Joda-Time (Remplazo a la fecha de Java)</string>
<string name="stetho_title">Stetho (Debugger de bases de datos)</string>
<string name="otto_title">Otto (Bus de eventos)</string>
<string name="photoview_title">PhotoView (GIFs con zoom)</string>
<string name="pattern_title">PatternLockView (Protección con patrón)</string>
<string name="reprint_title">Reprint (Protección con huella digital)</string>
<string name="gif_drawable_title">Gif Drawable (Carga de GIFs)</string>
<string name="autofittextview_title">AutoFitTextView (Redimensionador de texto)</string>
<string name="robolectric_title">Robolectric (Framework de pruebas)</string>
<string name="espresso_title">Espresso (Auxiliar de pruebas)</string>
<string name="gson_title">Gson (Convertidor de JSON)</string>
<string name="leak_canary_title">Leak Canary (Detector de falta de memoria)</string>
<string name="number_picker_title">Selector de número (selector de número personalizable)</string>
<string name="exoplayer_title">ExoPlayer (video player)</string>
<string name="panorama_view_title">VR Panorama View (displaying panoramas)</string>
<string name="sanselan_title">Apache Sanselan (reading image metadata)</string>
<string name="filters_title">Android Photo Filters (image filters)</string>
<string name="gesture_views_title">Gesture Views (zoomable images)</string>
<string name="exoplayer_title">ExoPlayer (Reproductor de video)</string>
<string name="panorama_view_title">VR Panorama View (Mostrador de panoramas)</string>
<string name="sanselan_title">Apache Sanselan (Lector de metadatos de imagen)</string>
<string name="filters_title">Android Photo Filters (Filtros de imagen)</string>
<string name="gesture_views_title">Gesture Views (Imágenes con zoom)</string>
<!-- Google Play listing -->
<string name="deprecated_app">DEPRECATED: This version of the app is no longer maintained, get the Pro version at https://play.google.com/store/apps/details?id=com.simplemobiletools.xxx.pro</string>
<string name="pro_app_refund">Don\'t forget that if you uninstall any paid app within 2 hours, you will automatically be refunded. If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it. That makes it easy to try it out :)</string>
<string name="deprecated_app">OBSOLETO: Esta versión de la aplicación ya no es mantenida, obtén la versión Pro en https://play.google.com/store/apps/details?id=com.simplemobiletools.xxx.pro</string>
<string name="pro_app_refund">No olvides que si desisntalas cualquier aplicación de paga dentro de un periodo de 2 horas, automáticamente recibirás un rembolso. Si quieres un rembolso en cualquier otro momento, solo contáctanos en hello@simplemobiletools.com y lo recibirás. Eso hace que sea fácil probarlo :)</string>
</resources>

View file

@ -605,8 +605,10 @@
<string name="purchase">Osta</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Simple</string>
<string name="pattern_renaming">Modèle</string>
<string name="string_to_add">Caractères à ajouter</string>
<string name="rename_date_time_pattern">%Y - année\n%M - mois\n%D - jour\n%h - heure\n%m - minute\n%s - seconde\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - année\n%M - mois\n%D - jour\n%h - heure\n%m - minute\n%s - seconde\n%i - Incrémentation depuis 1</string>
<!-- Copy / Move -->
<string name="copy">Copier</string>
@ -451,7 +451,7 @@
<string name="password_protect_hidden_items">Protéger les éléments cachés par mot de passe</string>
<string name="password_protect_whole_app">Protéger l\'application par mot de passe</string>
<string name="password_protect_file_deletion">Protéger la suppression et le déplacement de fichiers par mot de passe</string>
<string name="keep_last_modified">Garder la date de modification après les oprérations de fichier</string>
<string name="keep_last_modified">Garder la date de modification après les opérations de fichier</string>
<string name="show_info_bubble">Afficher une bulle d\'information pendant l\'utilisation de la barre de défilement</string>
<string name="prevent_phone_from_sleeping">Ne pas mettre en veille tant que l\'application est active</string>
<string name="skip_delete_confirmation">Cacher la fenêtre de confirmation de suppression</string>
@ -484,11 +484,11 @@
<string name="migrating">Migration</string>
<!-- Recycle Bin -->
<string name="restore_this_file">Récupérer ce fichier</string>
<string name="restore_selected_files">Récupérer les fichiers sélectionnés</string>
<string name="restore_all_files">Récupérer tous les fichiers</string>
<string name="restore_this_file">Restaurer ce fichier</string>
<string name="restore_selected_files">Restaurer les fichiers sélectionnés</string>
<string name="restore_all_files">Restaurer tous les fichiers</string>
<string name="recycle_bin_emptied">Corbeille vidée</string>
<string name="files_restored_successfully">Fichiers récupérés avec succès</string>
<string name="files_restored_successfully">Fichiers restaurés avec succès</string>
<string name="empty_recycle_bin_confirmation">Voulez-vous vraiment vider la corbeille ? Les fichiers seront définitivement supprimés.</string>
<string name="recycle_bin_empty">La corbeille est vide</string>
<string name="moving_recycle_bin_items_disabled">Le déplacement des éléments de la corbeille est désactivé, veuillez utiliser la fonction de restauration.</string>
@ -514,7 +514,7 @@
<!-- OTG devices -->
<string name="usb">USB</string>
<string name="usb_detected">You seem to have an USB device attached to your device. To make sure its files appear properly, you need to grant additional permissions.</string>
<string name="usb_detected">Il semblerait qu\'un périphérique USB soit connecté à votre périphérique. Pour que les fichiers de ce périphérique s\'affichent correctement, vous devez accorder des autorisations supplémentaires.</string>
<string name="confirm_usb_storage_access_text">Veuillez sélectionner le répertoire racine du périphérique USB sur l\'écran suivant afin de pouvoir y accéder</string>
<string name="wrong_root_selected_usb">Mauvais répertoire sélectionné. Veuillez sélectionner le répertoire racine du périphérique USB.</string>
@ -571,12 +571,12 @@
<string name="sunday_short">Dim</string>
<!-- Pro version -->
<string name="upgrade_to_pro_long">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements.</string>
<string name="upgrade_to_pro_long_click">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements by clicking here.</string>
<string name="upgrade_to_pro_long">La version de votre application ne sera plus mise à jour. Veuillez installer la version Pro pour recevoir des correctifs et autres améliorations.</string>
<string name="upgrade_to_pro_long_click">La version de votre application ne sera plus mise à jour. Veuillez installer la version Pro pour recevoir des correctifs et autres améliorations en cliquant ici.</string>
<string name="it_is_free">C\'est gratuit jusqu\'au : %s. Si vous la téléchargez jusque-là, vous pourrez définitivement l\'utiliser gratuitement.</string>
<string name="more_info">Plus d\'information</string>
<string name="upgrade">Passer à la version Pro</string>
<string name="upgrade_calendar">You have to migrate locally stored events manually via exporting in an .ics file, then importing. You can find both export/import buttons at the main screen menu.</string>
<string name="upgrade_calendar">Vous devez migrer manuellement les événements stockés localement via une exportation dans un fichier .ics, puis une importation. Vous pouvez trouver les boutons d\'exportation/importation dans le menu de l\'écran principal.</string>
<!-- About -->
<string name="about">À propos</string>
@ -607,8 +607,10 @@
<string name="purchase">Acheter</string>
<string name="update_thank_you">Veuillez mettre à jour Simple Thank You</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Consulter</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->
@ -647,10 +649,10 @@
Une fois lancé, il vous suffit de redéfinir l\'icône orange par défaut #F57C00. Dans le pire des cas, vous devrez peut-être réinstaller l\'application.</string>
<string name="faq_7_title_commons">L\'argent a été débiter de mon compte bancaire, mais je ne peux pas télécharger l\'application. Que puis-je faire ?</string>
<string name="faq_7_text_commons">Les paiements sont entièrement gérés par Google, leur système se heurte parfois à des problèmes. Effacez simplement le cache de votre application Google Play, redémarrez votre appareil, puis réessayez de télécharger.</string>
<string name="faq_8_title_commons">Why should I upgrade to the Pro version?</string>
<string name="faq_8_text_commons">As your app version is no longer updated, the bugs you have maybe spotted will never be fixed. There will also be no new functions added. You can purchase the Pro version on Google Play for a small sum of money.
It is a one time payment, which means that once you purchase it, you will never have to pay again. Not even after getting a new device. If you won\'t like the Pro version, you can just uninstall it within a few hours and you will automatically get your money back.
If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it.</string>
<string name="faq_8_title_commons">Pourquoi devrais-je passer à la version Pro ?</string>
<string name="faq_8_text_commons">La version de votre application n\'étant plus mise à jour, les bugs que vous avez peut-être repérés ne seront jamais corrigés. Il n\'y aura pas non plus de nouvelles fonctions ajoutées. Vous pouvez acheter la version Pro sur Google Play pour une petite somme d\'argent.
C\'est un paiement unique, ce qui signifie qu\'une fois que vous l\'achetez, vous n\'aurez plus jamais à payer. Pas même après avoir acheté un nouvel appareil. Si vous naimez pas la version Pro, vous pouvez simplement la désinstaller après quelques heures et vous serez automatiquement remboursé.
Si vous souhaitez un remboursement à tout moment, contactez-nous à l\'adresse hello@simplemobiletools.com et vous l\'obtiendrez. </string>
<!-- License -->
<string name="notice">Cette application utilise les bibliothèques tierces suivantes pour me simplifier la vie. Merci.</string>
@ -681,6 +683,6 @@
<string name="gesture_views_title">Gesture Views (zoomable images)</string>
<!-- Google Play listing -->
<string name="deprecated_app">DEPRECATED: This version of the app is no longer maintained, get the Pro version at https://play.google.com/store/apps/details?id=com.simplemobiletools.xxx.pro</string>
<string name="pro_app_refund">Don\'t forget that if you uninstall any paid app within 2 hours, you will automatically be refunded. If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it. That makes it easy to try it out :)</string>
<string name="deprecated_app">ATTENTION : cette version de l\'application n\'est plus maintenue. Procurez-vous la version Pro à l\'adresse https://play.google.com/store/apps/details?id=com.simplemobiletools.xxx.pro</string>
<string name="pro_app_refund">Noubliez pas que si vous désinstallez une application payante dans les 2 heures, vous serez automatiquement remboursé. Si vous souhaitez un remboursement à tout moment, contactez-nous à hello@simplemobiletools.com et vous l\'obtiendrez. Alors n\'hésitez pas à l\'essayer :)</string>
</resources>

View file

@ -605,8 +605,10 @@
<string name="purchase">Comprar</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -605,8 +605,10 @@
<string name="purchase">Purchase</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -636,8 +636,10 @@
<string name="purchase">Kupi</string>
<string name="update_thank_you">Molim ažurirajte Jednostavno hvala na najnoviju verziju</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Pročitajte</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -63,11 +63,11 @@
<string name="extension_cannot_be_empty">A kiterjesztés nem lehet üres</string>
<string name="source_file_doesnt_exist">A forrás fájl %s nem létezik</string>
<string name="prepend_filenames">Fájlnevek megadása</string>
<string name="append_filenames">Fájlnevek csatolása</string>
<string name="simple_renaming">Simple renaming</string>
<string name="pattern_renaming">Pattern</string>
<string name="append_filenames">Fájlnevek hozzáadása</string>
<string name="simple_renaming">Egyszerű átnevezés</string>
<string name="pattern_renaming">Minta</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%É - év\\n%H - hónap\\n%N - nap\\n%ó - óra\\n%p - perc\\n%mp - másodperc\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%É - év\n%H - hónap\n%N - nap\n%ó - óra\n%p - perc\n%mp - másodperc\n%i - number increasing from 1</string>
<!-- Copy / Move -->
<string name="copy">Másolás</string>
@ -169,8 +169,8 @@
<string name="camera">Kamera</string>
<string name="exif">EXIF</string>
<string name="song_title">Dal címe</string>
<string name="gps_coordinates">GPS coordinates</string>
<string name="altitude">Altitude</string>
<string name="gps_coordinates">GPS koordináták</string>
<string name="altitude">Magasság</string>
<!-- Color customization -->
<string name="background_color">Háttérszín</string>
@ -180,8 +180,8 @@
<string name="app_icon_color">Alkalmazás ikon színe</string>
<string name="bottom_navigation_bar_color">Alsó navigációs sáv színe</string>
<string name="restore_defaults">Alapértelmezések visszaállítása</string>
<string name="use_default">Use default</string>
<string name="default_color">Default</string>
<string name="use_default">Alapértelmezett használata</string>
<string name="default_color">Alapértelmezett</string>
<string name="change_color">Szín változtatása</string>
<string name="theme">Téma</string>
<string name="changing_color_description">A szín megváltoztatásával átvált az Egyéni témára</string>
@ -230,7 +230,7 @@
<string name="undo">Visszavonás</string>
<string name="redo">Mégis</string>
<string name="print">Nyomtatás</string>
<string name="create_shortcut">Parancsikon létrehozása</string>
<string name="create_shortcut">Parancsikon készítése</string>
<!-- Sorting -->
<string name="sort_by">Rendezés</string>
@ -283,8 +283,8 @@
<string name="go_to_settings">Ugrás a Beállításokhoz</string>
<string name="protection_setup_successfully">A jelszó beállítása sikerült. Ha elfelejteti, akkor újra kell telepíteni az alkalmazást.</string>
<string name="fingerprint_setup_successfully">A védelem beállítása sikerült. Az újraindítással kapcsolatos problémák esetén telepítse újra az alkalmazást.</string>
<string name="lock_folder">Lock folder</string>
<string name="unlock_folder">Unlock folder</string>
<string name="lock_folder">Mappa zárolása</string>
<string name="unlock_folder">Mappa zárolás feloldása</string>
<string name="lock_folder_notice">This protection works in this app only, it is not supposed to replace a real systemwide folder encryption.</string>
<!-- Times -->
@ -454,7 +454,7 @@
<string name="skip_delete_confirmation">Mindig ugorja át a törlés megerősítése kérdést</string>
<string name="enable_pull_to_refresh">Felülről lefelé húzásos frissítés engedélyezése</string>
<string name="use_24_hour_time_format">24 órás idő formátum használata</string>
<string name="change_date_and_time_format">Dátum és időformátum módosítása</string>
<string name="change_date_and_time_format">Dátum és idő formátum módosítása</string>
<string name="sunday_first">A hét kezdete vasárnap</string>
<string name="widgets">Widgetek</string>
<string name="use_same_snooze">Mindig ugyanazt a szundi időt használja</string>
@ -478,7 +478,7 @@
<string name="saving_label">Mentés</string>
<string name="startup">Indítás</string>
<string name="text">Szöveg</string>
<string name="migrating">Átköltöztetés</string>
<string name="migrating">Áttelepítés</string>
<!-- Recycle Bin -->
<string name="restore_this_file">Fájl visszaállítása</string>
@ -595,22 +595,24 @@
<string name="app_version">Alkalmazás verzió: %s</string>
<string name="device_os">Eszköz OS: %s</string>
<string name="donate_please">
<![CDATA[
<![CDATA[
Hello,<br><br>
remélem tetszett az alkalmazás. Nem tartalmaz hirdetéseket. Kérem támogasd a fejlesztést a <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> megvásárlásával. Utána ez a párbeszédablak sem látszik újra.<br><br>
Köszönöm!
]]>
</string>
</string>
<string name="purchase">Vásárlás</string>
<string name="update_thank_you">Kérjük frissítse a Simple Thank You alkalmazást a legújabb verzióra</string>
<string name="before_asking_question_read_faq">Mielőtt kérdezne, ellenőrizze az alkalmazás beállításait, és először olvassa el a Gyakran Ismételt Kérdéseket. Talán ott van a megoldás.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Olvassa el</string>
<string name="rate_us_prompt">Hello,\\n\\Úgy tűnik elég régen használja ezt az alkalmazést és ezt mi igazán nagyra értékeljük.\\n\\nHa megkérhetjük egy szívességre, kérjük, értékeljen minket a Google Playen. Ez igazán segítene nekünk.\\n\\nFüggetlenül attól, hogy hogyan dönt, nem fogja látni ezt az üzenetet újra.\\n\\nKöszönjük!</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nÚgy tűnik elég régen használja ezt az alkalmazést és ezt mi igazán nagyra értékeljük.\n\nHa megkérhetjük egy szívességre, kérjük, értékeljen minket a Google Playen. Ez igazán segítene nekünk.\n\nFüggetlenül attól, hogy hogyan dönt, nem fogja látni ezt az üzenetet újra.\n\nKöszönjük!</string>
<!-- New app (do not translate anything on the 4th line) -->
<string name="new_app">
<![CDATA[
<![CDATA[
Szia!<br><br>
csak tájékoztatni szeretnélek, hogy megjelent egy új alkalmazás:<br><br>
<a href="%1$s">%2$s</a><br><br>

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Ubah nama</string>
<string name="pattern_renaming">Pola</string>
<string name="string_to_add">Kata untuk ditambahkan</string>
<string name="rename_date_time_pattern">%Y - tahun\n%M - bulan\n%D - hari\n%h - jam\n%m - menit\n%s - detik\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - tahun\n%M - bulan\n%D - hari\n%h - jam\n%m - menit\n%s - detik\n%i - angka bertambah mulai dari 1</string>
<!-- Copy / Move -->
<string name="copy">Salin</string>
@ -572,8 +572,10 @@
<string name="purchase">Beli</string>
<string name="update_thank_you">Silakan perbarui Simple Thank You ke versi terbaru</string>
<string name="before_asking_question_read_faq">Sebelum anda bertanya, silakan periksa pengaturan aplikasi dan baca Pertanyaan yang Paling Sering Ditanyakan terlebih dahulu. Mungkin solusi yang anda cari ada di sana.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Pastikan juga anda menggunakan versi aplikasi terbaru.</string>
<string name="read_it">Baca</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Halo,\n\nsepertinya anda sudah menggunakan aplikasi ini cukup lama, dan kami sangat menghargainya.\n\nJika anda tidak keberatan, silakan nilai kami di Google Play. Itu akan sangat membantu kami.\n\nApapun keputusan anda, anda tidak akan melihat pesan ini lagi.\n\nTerima kasih!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Ubah nama</string>
<string name="pattern_renaming">Pola</string>
<string name="string_to_add">Kata untuk ditambahkan</string>
<string name="rename_date_time_pattern">%Y - tahun\n%M - bulan\n%D - hari\n%h - jam\n%m - menit\n%s - detik\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - tahun\n%M - bulan\n%D - hari\n%h - jam\n%m - menit\n%s - detik\n%i - angka bertambah mulai dari 1</string>
<!-- Copy / Move -->
<string name="copy">Salin</string>
@ -572,8 +572,10 @@
<string name="purchase">Beli</string>
<string name="update_thank_you">Silakan perbarui Simple Thank You ke versi terbaru</string>
<string name="before_asking_question_read_faq">Sebelum anda bertanya, silakan periksa pengaturan aplikasi dan baca Pertanyaan yang Paling Sering Ditanyakan terlebih dahulu. Mungkin solusi yang anda cari ada di sana.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Pastikan juga anda menggunakan versi aplikasi terbaru.</string>
<string name="read_it">Baca</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Halo,\n\nsepertinya anda sudah menggunakan aplikasi ini cukup lama, dan kami sangat menghargainya.\n\nJika anda tidak keberatan, silakan nilai kami di Google Play. Itu akan sangat membantu kami.\n\nApapun keputusan anda, anda tidak akan melihat pesan ini lagi.\n\nTerima kasih!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -184,7 +184,7 @@
<string name="default_color">Predefinito</string>
<string name="change_color">Cambia colore</string>
<string name="theme">Tema</string>
<string name="changing_color_description">Modificando un colore, il tema diventerà personale</string>
<string name="changing_color_description">Modificando un colore, il tema diventerà personalizzato</string>
<string name="save">Salva</string>
<string name="discard">Scarta</string>
<string name="undo_changes">Annulla modifiche</string>
@ -206,7 +206,7 @@
<string name="solarized">Solarizzato</string>
<string name="dark_red">Rosso scuro</string>
<string name="black_white">Bianco e nero</string>
<string name="custom">Personale</string>
<string name="custom">Personalizzato</string>
<string name="shared">Condiviso</string>
<!-- What's new -->
@ -569,8 +569,8 @@
<string name="sunday_short">Dom</string>
<!-- Pro version -->
<string name="upgrade_to_pro_long">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements.</string>
<string name="upgrade_to_pro_long_click">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements by clicking here.</string>
<string name="upgrade_to_pro_long">La versione della tua app non verrà più aggiornata. Aggiorna alla versione Pro per ricevere nuove correzioni ed altri miglioramenti.</string>
<string name="upgrade_to_pro_long_click">La versione della tua app non verrà più aggiornata. Aggiorna alla versione Pro per ricevere nuove correzioni ed altri miglioramenti cliccando qui.</string>
<string name="it_is_free">È gratuita fino a: %s. Se la si scarica entro quella data, essa sarà gratuita per sempre.</string>
<string name="more_info">Maggiori informazioni</string>
<string name="upgrade">Aggiorna</string>
@ -605,8 +605,10 @@
<string name="purchase">Acquista</string>
<string name="update_thank_you">Aggiornare Semplice Ringraziamento all\'ultima versione</string>
<string name="before_asking_question_read_faq">Prima di fare una domanda, controlla le impostazioni dell\'app e le domande frequenti. Magari si trova la soluzione.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Assicurati anche che stai usando la versione più recente dell\'app.</string>
<string name="read_it">Leggi</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Ciao,\n\nstai utilizzando questa app da un po\' di tempo e ne siamo veramente grati..\n\nValutaci su Google Play se vuoi farci un favore, ci aiuterà tantissimo.\n\nNon è importante cosa sceglierai, non vedrai più questo messaggio una volta ancora.\n\nGrazie!</string>
<!-- New app (do not translate anything on the 4th line) -->
@ -646,10 +648,10 @@
Una volta avviata, impostare l\'icona predefinita col colore arancione #F57C00. Potrebbe essere necessario reinstallare l\'applicazione se proprio non funziona.</string>
<string name="faq_7_title_commons">I soldi sono stati detratti dal mio conto corrente, ma non posso scaricare l\'app. Cosa posso fare?</string>
<string name="faq_7_text_commons">I pagamenti sono gestiti totalmente da Google, il loro sistema si guasta di tanto in tanto. Svuota la cache dell\'app Google Play e riavvia il tuo dispositivo, poi riprova a scaricare.</string>
<string name="faq_8_title_commons">Why should I upgrade to the Pro version?</string>
<string name="faq_8_text_commons">As your app version is no longer updated, the bugs you have maybe spotted will never be fixed. There will also be no new functions added. You can purchase the Pro version on Google Play for a small sum of money.
It is a one time payment, which means that once you purchase it, you will never have to pay again. Not even after getting a new device. If you won\'t like the Pro version, you can just uninstall it within a few hours and you will automatically get your money back.
If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it.</string>
<string name="faq_8_title_commons">Perchè dovrei aggiornare alla versione Pro?</string>
<string name="faq_8_text_commons">Dato che la tua versione non verrà più aggiornata, gli errori che potresti trovare non verranno mai corretti. Non ci saranno inoltre nuove funzioni aggiuntive. Puoi acquistare la versione Pro su Google Play per una piccola cifra.
Si paga una sola volta, ciò significa che quando la acquisti non dovrai mai più pagare. Neanche quando userai un nuovo dispositivo. Se non ti piacerà la versione Pro, ti basta disinstallarla entro alcune ore e otterrai automaticamente un rimborso.
Se vuoi chiedere un rimborso in un momento successivo, contattaci su hello@simplemobiletools.com e lo otterrai.</string>
<!-- License -->
<string name="notice">Questa app usa le seguenti librerie di terze parti per semplificarmi la vita. Vi ringrazio.</string>

View file

@ -605,8 +605,10 @@
<string name="purchase">Purchase</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -572,8 +572,10 @@
<string name="purchase">Purchase</string>
<string name="update_thank_you">\"Simple Thank You\" アプリを最新版に更新してください</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -573,8 +573,10 @@
<string name="purchase">구매</string>
<string name="update_thank_you">Simple Thank You를 최신 버전으로 업데이트 해 주세요.</string>
<string name="before_asking_question_read_faq">질문하기 전에 FAQ를 먼저 읽어 주세요. 해답이 있을지도 모릅니다.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">읽어보기</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">이 앱을 자주 사용하시는군요! 혹시 시간이 되신다면 구글 플레이스토어에서 평점을 부탁드립니다. 평점은 저희에게 많은 도움이 됩니다. 감사합니다! (이 메시지는 다시 표시되지 않습니다)</string>
<!-- New app (do not translate anything on the 4th line) -->
<string name="new_app">

View file

@ -629,8 +629,10 @@
<string name="purchase">Purchase</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -605,8 +605,10 @@
<string name="purchase">Kjøp</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Eenvoudig hernoemen</string>
<string name="pattern_renaming">Patroon</string>
<string name="string_to_add">Tekens toevoegen</string>
<string name="rename_date_time_pattern">%Y - jaar\n%M - maand\n%D - dag\n%h - uur\n%m - minuut\n%s - seconde\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - jaar\n%M - maand\n%D - dag\n%h - uur\n%m - minuut\n%s - seconde\n%i - getal oplopend vanaf 1</string>
<!-- Copy / Move -->
<string name="copy">Kopiëren</string>
@ -605,8 +605,10 @@
<string name="purchase">Kopen</string>
<string name="update_thank_you">Er is een nieuwe versie van Simple Thank You</string>
<string name="before_asking_question_read_faq">Controleer bij problemen eerst de instellingen van de app en neem de Veelgestelde vragen door. Wellicht is de oplossing daar reeds te vinden.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Zorg er ook voor dat de laatste versie van de app is geïnstalleerd.</string>
<string name="read_it">Nu lezen</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hallo,\n\nhet lijkt erop dat u deze app al een tijdje gebruikt, iets wat wij enorm waarderen.\n\nMogen we zo vrij zijn om u te vragen ons een beoordeling te geven op Google Play? Daarmee kunt u ons enorm helpen.\n\nDit bericht zal niet nogmaals worden getoond, ongeacht welke keuze u nu maakt.\n\nHartelijk dank!</string>
<!-- New app (do not translate anything on the 4th line) -->
@ -628,7 +630,7 @@
<!-- FAQ -->
<string name="frequently_asked_questions">Veelgestelde vragen</string>
<string name="before_asking_question">Voor het stellen van een vraag, lees eerst de</string>
<string name="before_asking_question">Lees vóór het insturen van een vraag eerst de</string>
<string name="faq_1_title_commons">Waarom zie ik de widget van deze app niet in de lijst met widgets?</string>
<string name="faq_1_text_commons">Waarschijnlijk is de app verplaatst naar de SD-kaart. Android verbergt widgets van apps die zich bevinden op de SD-kaart. De enige oplossing is het verplaatsen van de app naar de Interne Opslag via de instellingen van Android.</string>
<string name="faq_2_title_commons">Ik wil een bijdrage leveren, maar ik kan geen geld doneren. Kan ik iets anders doen?</string>

View file

@ -605,8 +605,10 @@
<string name="purchase">Purchase</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -634,8 +634,10 @@
   <string name="purchase">Kup</string>
<string name="update_thank_you">Zaktualizuj aplikcję Proste Podziękowanie do najnowszej wersji</string>
<string name="before_asking_question_read_faq">Zanim zadasz pytanie, zajrzyj do sekcji często zadawanych pytań (FAQ) w ustawieniach aplikacji. Być może jest tam już rozwiązanie Twojego problemu.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Przeczytaj</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -603,8 +603,10 @@
<string name="purchase">Comprar</string>
<string name="update_thank_you">Por favor, atualize o Simple Thank You para a versão mais recente</string>
<string name="before_asking_question_read_faq">Antes de fazer uma pergunta, por favor verifique as configurações do aplicativo e a nossa lista de Perguntas Frequentes.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Ler</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Olá,\n\nParece que você já está utilizando este app a algum tempo, e nós agradecemos a você por isso.\n\nPor favor, considere nos avaliar na loja do Google Play. Isso iria nos ajudar bastante.\n\nDe uma forma ou de outra, não iremos pedir novamente.\n\nObrigado!
</string>

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Mudar nome</string>
<string name="pattern_renaming">Padrão</string>
<string name="string_to_add">Texto a adicionar</string>
<string name="rename_date_time_pattern">%Y - ano\n%M - mês\n%D - dia\n%h - horas\n%m - minutos\n%s - segundos\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - ano\n%M - mês\n%D - dia\n%h - horas\n%m - minutos\n%s - segundos\n%i - incremento númerico a partir de 1</string>
<!-- Copy / Move -->
<string name="copy">Copiar</string>
@ -95,7 +95,7 @@
<string name="could_not_create_folder">Não foi possível criar a pasta %s</string>
<string name="could_not_create_file">Não foi possível criar o ficheiro %s</string>
<string name="no_new_items">Não foram encontrados novos itens</string>
<string name="no_space">Não existe espaço livre suficiente no local de destino.\nPrecisa de %1$s e apenas existe %2$s</string>
<string name="no_space">Não existe espaço livre suficiente destino.\nPrecisa de %1$s e apenas existe %2$s</string>
<!-- Create new -->
<string name="create_new">Criar</string>
@ -605,8 +605,10 @@
<string name="purchase">Comprar</string>
<string name="update_thank_you">Por favor atualize a aplicação Simple Thank You para a versão mais recente</string>
<string name="before_asking_question_read_faq">Antes de colocar uma questão, verifique as FAQ. Pode ser que a solução esteja lá.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Certifique-se de que está a utilizar a versão mais recente.</string>
<string name="read_it">Ler</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Olá,\n\nparece que está a utilizar esta aplicação há algum tempo, o que nos deixa satisfeitos.\n\nGostaríamos de lhe pedir o favor de nos avaliar na Google Play. Isso iria ajudar-nos bastante.\n\nIndependentemente da sua escolha, esta mensagem não será mostrada novamente.\n\nObrigado!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -638,8 +638,10 @@
<string name="purchase">Купить</string>
<string name="update_thank_you">Пожалуйста, обновите \"Simple Thank You\" до последней версии.</string>
<string name="before_asking_question_read_faq">Прежде чем задать вопрос, пожалуйста, проверьте настройки приложения и прочтите FAQ (часто задаваемые вопросы). Возможно, решение есть.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Также убедитесь, что используете последнюю версию приложения.</string>
<string name="read_it">Прочитать</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Привет,\n\nпохоже, вы уже давно используете данное приложение и мы очень ценим это.\n\nНе могли бы вы оказать нам услугу и оценить его в Google Play? Это действительно очень нам поможет.\n\nНезависимо от вашего решения данное сообщение больше не появится.\n\nСпасибо!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -638,8 +638,10 @@
<string name="purchase">Zakúpiť</string>
<string name="update_thank_you">Prosím aktualizujte Jednoduché Ďakujem na najnovšiu verziu</string>
<string name="before_asking_question_read_faq">Predtým, ako sa niečo opýtate, si prosím prejdite nastavenia aplikácie a prečítajte Často Kladené Otázky. Možno v nich nájdete svoju odpoveď.</string>
<string name="before_rate_read_faq">Predtým, ako nás ohodnotíte, si prosím prejdite nastavenia aplikácie a prečítajte Často Kladené Otázky. Ak máte nejaké problémy, možno v nich nájdete riešenia.</string>
<string name="make_sure_latest">Taktiež sa uistite, že používate najnovšiu verziu apky.</string>
<string name="read_it">Prečítať</string>
<string name="read_faq">Prečítať ČKO</string>
<string name="rate_us_prompt">Zdravím,\n\nzdá sa, že už nejaký čas používate túto aplikáciu a to si veľmi ceníme.\n\nAk Vás môžeme požiadať o láskavosť, prosím ohodnoťte nás na Google Play. Naozaj by nám to veľmi pomohlo.\n\nBez ohľadu na to, ako sa rozhodnete, túto správu už neuvidíte.\n\nVďaka!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -670,8 +670,10 @@
<string name="purchase">Kupi</string>
<string name="update_thank_you">Prosimo nadgradite Simple Thank You na zadnjo verzijo</string>
<string name="before_asking_question_read_faq">Pred zastavljanjem vprašanje preverite nastavitve aplikacije in preberite pogosta vprašanja in odgovore. Morda je rešitev že tam.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Preberite</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Živjo,\n\nizgleda, da že nekaj časa uporabljate aplikacijo. To zares cenimo.\n\nLahko nam naredite uslugo in nas ocenite na Google Play. To bi nam res pomagalo.\n\nKakorkoli se že boste odločili, tega sporočila ne bomo več prikazovali.\n\nHvala!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -604,8 +604,10 @@
<string name="purchase">Купите</string>
<string name="update_thank_you">Молимо вас ажурирајте Simple Thank You на најскорију верзију</string>
<string name="before_asking_question_read_faq">Пре постављања питања проверите подешавања апликације и прочитајте најчешће постављана питања. Можда су решења већ ту.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Прочитајте</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -605,8 +605,10 @@
<string name="purchase">Köp</string>
<string name="update_thank_you">Uppdatera Simple Thank You till den senaste versionen</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">Basit yeniden adlandırma</string>
<string name="pattern_renaming">Desen</string>
<string name="string_to_add">Eklenecek dize</string>
<string name="rename_date_time_pattern">%Y - yıl\n%M - ay\n%D - gün\n%h - saat\n%m - dakika\n%s - saniye\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - yıl\n%M - ay\n%D - gün\n%h - saat\n%m - dakika\n%s - saniye\n%i - 1\'den artan sayı</string>
<!-- Copy / Move -->
<string name="copy">Kopyala</string>
@ -569,8 +569,8 @@
<string name="sunday_short">Paz</string>
<!-- Pro version -->
<string name="upgrade_to_pro_long">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements.</string>
<string name="upgrade_to_pro_long_click">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements by clicking here.</string>
<string name="upgrade_to_pro_long">Uygulama sürümünüz artık güncellenmeyecek. Yeni düzeltmeler ve diğer iyileştirmeleri almak için lütfen Pro sürümüne yükseltin.</string>
<string name="upgrade_to_pro_long_click">Uygulama sürümünüz artık güncellenmeyecek. Buraya tıklayarak yeni düzeltmeler ve diğer iyileştirmeleri almak için lütfen Pro sürümüne yükseltin.</string>
<string name="it_is_free">Şu süre kadar ücretsiz: %s. O zamana kadar indirirseniz, sonsuza dek ücretsiz olarak kullanabileceksiniz.</string>
<string name="more_info">Daha fazla bilgi</string>
<string name="upgrade">Yükselt</string>
@ -605,8 +605,10 @@
<string name="purchase">Satın al</string>
<string name="update_thank_you">Lütfen Basit Teşekkürler\'i son sürüme güncelleyin</string>
<string name="before_asking_question_read_faq">Bir soru sormadan önce, lütfen uygulama ayarlarını kontrol edin ve önce Sık Sorulan Sorular bölümünü okuyun. Belki çözüm oradadır.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Ayrıca uygulamanın en son sürümünü kullandığınızdan emin olun.</string>
<string name="read_it">Oku</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Merhaba,\n\nzaten bir süredir bu uygulamayı kullanıyor gibi görünüyorsunuz ve gerçekten takdir ediyoruz.\n\nSizden bir iyilik isteyebilirsek, lütfen bizi Google Play\'de oylayın. Bu bize gerçekten çok yardımcı olacak.\n\nNasıl karar verirseniz verin, bu mesajı bir daha görmeyeceksiniz.\n\nTeşekkürler!</string>
<!-- New app (do not translate anything on the 4th line) -->
@ -645,10 +647,10 @@
Başlatıldıktan sonra, sadece varsayılan turuncu simgeyi #F57C00 geri ayarlayın. En kötü durumda uygulamayı yeniden yüklemeniz gerekebilir.</string>
<string name="faq_7_title_commons">Para banka hesabımdan düşüldü, ancak uygulamayı indiremiyorum. Ne yapabilirim?</string>
<string name="faq_7_text_commons">Ödemeler tamamen Google tarafından işlenir, zaman zaman sistemleri aksar. Sadece Google Play uygulama önbelleğinizi temizleyin ve cihazınızı yeniden başlatın, ardından yeniden indirmeyi deneyin.</string>
<string name="faq_8_title_commons">Why should I upgrade to the Pro version?</string>
<string name="faq_8_text_commons">As your app version is no longer updated, the bugs you have maybe spotted will never be fixed. There will also be no new functions added. You can purchase the Pro version on Google Play for a small sum of money.
It is a one time payment, which means that once you purchase it, you will never have to pay again. Not even after getting a new device. If you won\'t like the Pro version, you can just uninstall it within a few hours and you will automatically get your money back.
If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it.</string>
<string name="faq_8_title_commons">Neden Pro sürümüne yükseltmeliyim?</string>
<string name="faq_8_text_commons">Uygulama sürümünüz artık güncellenmediğinden, tespit ettiğiniz hatalar asla düzeltilmeyecektir. Ayrıca yeni işlevler eklenmeyecektir. Pro sürümünü Google Play\'den az miktarda para karşılığında satın alabilirsiniz.
Bir kerelik ödeme, yani bir kez satın aldığınızda, bir daha asla ödeme yapmanız gerekmeyeceği anlamına gelir. Yeni bir cihaz aldıktan sonra bile. Pro sürümünü beğenmediyseniz, birkaç saat içinde kaldırabilirsiniz ve paranızı otomatik olarak geri alırsınız.
Daha sonra istediğiniz zaman geri ödeme almak isterseniz, hello@simplemobiletools.com adresinden bizimle iletişime geçmeniz yeterlidir.</string>
<!-- License -->
<string name="notice">Bu uygulama hayatımı kolaylaştırmak için aşağıdaki üçüncü taraf kitaplıklarını kullanır. Teşekkürler.</string>

View file

@ -605,8 +605,10 @@
<string name="purchase">Придбати</string>
<string name="update_thank_you">Будь ласка, оновіть Simple Thank You до останньої версії</string>
<string name="before_asking_question_read_faq">Перш ніж запитувати, будь ласка, ознайомтесь із налаштуваннями додатка та прочитайте Часті Питання. Можливо, відповідь там.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Прочитати</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Привіт,\n\nздається, ви вже давно користуєтесь цим додатком, і ми це високо цінуємо.\n\nЧи могли б ви зробити нам послугу і оцінити додаток в Google Play? Це дійсно дуже нам допоможе.\n\nНезалежно від того, що ви вирішите, ви не побачите знову це повідомлення.\n\nСпасибі!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -0,0 +1,687 @@
<resources>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<string name="save_as">Save as</string>
<string name="file_saved">File saved successfully</string>
<string name="invalid_file_format">Invalid file format</string>
<string name="out_of_memory_error">Out of memory error</string>
<string name="an_error_occurred">An error occurred: %s</string>
<string name="open_with">Open with</string>
<string name="edit_with">Edit with</string>
<string name="no_app_found">No valid app found</string>
<string name="set_as">Set as</string>
<string name="value_copied_to_clipboard">Value copied to clipboard</string>
<string name="unknown">Unknown</string>
<string name="always">Always</string>
<string name="never">Never</string>
<string name="details">Details</string>
<string name="notes">Notes</string>
<string name="deleting_folder">Deleting folder \'%s\'</string>
<string name="none">None</string>
<string name="label">Label</string>
<string name="transparent">Transparent</string>
<string name="transparent_color">Transparent color</string>
<string name="select_a_different_color">Select a different color</string>
<string name="download">Download</string>
<string name="notification">Notification</string>
<string name="email">Email</string>
<!-- Favorites -->
<string name="favorites">Favorites</string>
<string name="add_favorites">Add favorites</string>
<string name="add_to_favorites">Add to favorites</string>
<string name="remove_from_favorites">Remove from favorites</string>
<!-- Search -->
<string name="search">Search</string>
<string name="type_2_characters">Type in at least 2 characters to start the search.</string>
<!-- Filters -->
<string name="filter">Filter</string>
<string name="no_items_found">No items found.</string>
<string name="change_filter">Change filter</string>
<!-- Permissions -->
<string name="no_storage_permissions">Storage permission is required</string>
<string name="no_contacts_permission">Contacts permission is required</string>
<string name="no_camera_permissions">Camera permission is required</string>
<string name="no_audio_permissions">Audio permission is required</string>
<!-- Renaming -->
<string name="rename_file">Rename file</string>
<string name="rename_folder">Rename folder</string>
<string name="rename_file_error">Could not rename the file</string>
<string name="rename_folder_error">Could not rename the folder</string>
<string name="rename_folder_empty">Folder name must not be empty</string>
<string name="rename_folder_exists">A folder with that name already exists</string>
<string name="rename_folder_root">Cannot rename the root folder of a storage</string>
<string name="rename_folder_ok">Folder renamed successfully</string>
<string name="renaming_folder">Renaming folder</string>
<string name="filename_cannot_be_empty">Filename cannot be empty</string>
<string name="filename_invalid_characters">Filename contains invalid characters</string>
<string name="filename_invalid_characters_placeholder">Filename \'%s\' contains invalid characters</string>
<string name="extension_cannot_be_empty">Extension cannot be empty</string>
<string name="source_file_doesnt_exist">Source file %s doesn\'t exist</string>
<string name="prepend_filenames">Prepend filenames</string>
<string name="append_filenames">Append filenames</string>
<string name="simple_renaming">Simple renaming</string>
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<!-- Copy / Move -->
<string name="copy">Copy</string>
<string name="move">Move</string>
<string name="copy_move">Copy / Move</string>
<string name="copy_to">Copy to</string>
<string name="move_to">Move to</string>
<string name="source">Source</string>
<string name="destination">Destination</string>
<string name="select_destination">Select destination</string>
<string name="click_select_destination">Click here to select destination</string>
<string name="invalid_destination">Could not write to the selected destination</string>
<string name="please_select_destination">Please select a destination</string>
<string name="source_and_destination_same">Source and destination cannot be the same</string>
<string name="copy_failed">Could not copy the files</string>
<string name="copying">Copying…</string>
<string name="copying_success">Files copied successfully</string>
<string name="copy_move_failed">An error occurred</string>
<string name="moving">Moving…</string>
<string name="moving_success">Files moved successfully</string>
<string name="moving_success_partial">Some files could not be moved</string>
<string name="copying_success_partial">Some files could not be copied</string>
<string name="no_files_selected">No files selected</string>
<string name="saving">Saving…</string>
<string name="could_not_create_folder">Could not create folder %s</string>
<string name="could_not_create_file">Could not create file %s</string>
<string name="no_new_items">No new items have been found</string>
<string name="no_space">The destination does not have enough space available.\nRequired %1$s, available %2$s</string>
<!-- Create new -->
<string name="create_new">Create new</string>
<string name="folder">Folder</string>
<string name="file">File</string>
<string name="create_new_folder">Create new folder</string>
<string name="name_taken">A file or folder with that name already exists</string>
<string name="invalid_name">The name contains invalid characters</string>
<string name="empty_name">Please enter a name</string>
<string name="unknown_error_occurred">An unknown error occurred</string>
<!-- File operation conflicts -->
<string name="file_already_exists">File \"%s\" already exists</string>
<string name="file_already_exists_overwrite">File \"%s\" already exists. Overwrite?</string>
<string name="folder_already_exists">Folder \"%s\" already exists</string>
<string name="merge">Merge</string>
<string name="keep_both">Keep both</string>
<string name="overwrite">Overwrite</string>
<string name="skip">Skip</string>
<string name="append">Append with \'_1\'</string>
<string name="apply_to_all">Apply to all</string>
<!-- File picker -->
<string name="select_folder">Select a folder</string>
<string name="select_file">Select a file</string>
<string name="confirm_storage_access_title">Confirm external storage access</string>
<string name="confirm_storage_access_text">Please choose the top folder of the SD card on the next screen, to grant write access</string>
<string name="confirm_storage_access_text_sd">If you don\'t see the SD card, try this</string>
<string name="confirm_selection">Confirm selection</string>
<plurals name="items">
<item quantity="one">%d item</item>
<item quantity="other">%d items</item>
</plurals>
<!-- Are you sure you want to delete 5 items? -->
<plurals name="delete_items">
<item quantity="one">%d item</item>
<item quantity="other">%d items</item>
</plurals>
<plurals name="deleting_items">
<item quantity="one">Deleting %d item</item>
<item quantity="other">Deleting %d items</item>
</plurals>
<!-- Storages -->
<string name="select_storage">Select storage</string>
<string name="internal">Internal</string>
<string name="sd_card">SD Card</string>
<string name="root">Root</string>
<string name="wrong_root_selected">Wrong folder selected, please select the root folder of your SD card</string>
<string name="sd_card_usb_same">SD card and USB device paths cannot be the same</string>
<string name="app_on_sd_card">You seem to have the app installed on an SD card, that makes the app widgets unavailable. You won\'t even see them on the list of available widgets.
It is a system limitation, so if you want to use the widgets, you have to move the app back on the internal storage.</string>
<!-- File properties -->
<string name="properties">Properties</string>
<string name="path">Path</string>
<string name="items_selected">Items selected</string>
<string name="direct_children_count">Direct children count</string>
<string name="files_count">Total files count</string>
<string name="resolution">Resolution</string>
<string name="duration">Duration</string>
<string name="artist">Artist</string>
<string name="album">Album</string>
<string name="focal_length">Focal length</string>
<string name="exposure_time">Exposure time</string>
<string name="iso_speed">ISO speed</string>
<string name="f_number">F-number</string>
<string name="camera">Camera</string>
<string name="exif">EXIF</string>
<string name="song_title">Song title</string>
<string name="gps_coordinates">GPS coordinates</string>
<string name="altitude">Altitude</string>
<!-- Color customization -->
<string name="background_color">Background color</string>
<string name="text_color">Text color</string>
<string name="primary_color">Primary color</string>
<string name="foreground_color">Foreground color</string>
<string name="app_icon_color">App icon color</string>
<string name="bottom_navigation_bar_color">Bottom navigation bar color</string>
<string name="restore_defaults">Restore defaults</string>
<string name="use_default">Use default</string>
<string name="default_color">Default</string>
<string name="change_color">Change color</string>
<string name="theme">Theme</string>
<string name="changing_color_description">Changing a color will make it switch to Custom theme</string>
<string name="save">Save</string>
<string name="discard">Discard</string>
<string name="undo_changes">Undo changes</string>
<string name="undo_changes_confirmation">Are you sure you want to undo your changes?</string>
<string name="save_before_closing">You have unsaved changes. Save before exit?</string>
<string name="apply_to_all_apps">Apply colors to all Simple Apps</string>
<string name="app_icon_color_warning">WARNING: Some launchers do not handle app icon customization properly. In case the icon will disappear, try launching the app via Google Play or some widget, if available.
Once launched, just set back the default orange icon #F57C00. You might have to reinstall the app in the worst case.</string>
<string name="share_colors_success">Colors updated successfully. A new Theme called \'Shared\' has been added, please use that for updating all app colors in the future.</string>
<string name="purchase_thank_you">
<![CDATA[
Please purchase <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> to unlock this function and support the development. Thanks!
]]>
</string>
<!-- Themes -->
<string name="light_theme">Light</string>
<string name="dark_theme">Dark</string>
<string name="solarized">Solarized</string>
<string name="dark_red">Dark red</string>
<string name="black_white">Black &amp; White</string>
<string name="custom">Custom</string>
<string name="shared">Shared</string>
<!-- What's new -->
<string name="whats_new">What\'s new</string>
<string name="whats_new_disclaimer">* only the bigger updates are listed here, there are always some smaller improvements too</string>
<!-- Actionbar items -->
<string name="delete">Delete</string>
<string name="remove">Remove</string>
<string name="rename">Rename</string>
<string name="share">Share</string>
<string name="share_via">Share via</string>
<string name="select_all">Select all</string>
<string name="hide">Hide</string>
<string name="unhide">Unhide</string>
<string name="hide_folder">Hide folder</string>
<string name="unhide_folder">Unhide folder</string>
<string name="temporarily_show_hidden">Temporarily show hidden</string>
<string name="stop_showing_hidden">Stop showing hidden media</string>
<string name="maximum_share_reached">You cannot share this much content at once</string>
<string name="empty_and_disable_recycle_bin">Empty and disable the Recycle Bin</string>
<string name="undo">Undo</string>
<string name="redo">Redo</string>
<string name="print">Print</string>
<string name="create_shortcut">Create shortcut</string>
<!-- Sorting -->
<string name="sort_by">Sort by</string>
<string name="name">Name</string>
<string name="size">Size</string>
<string name="last_modified">Last modified</string>
<string name="date_taken">Date taken</string>
<string name="title">Title</string>
<string name="filename">Filename</string>
<string name="extension">Extension</string>
<string name="random">Random</string>
<string name="sort_randomly">Sort randomly</string>
<string name="ascending">Ascending</string>
<string name="descending">Descending</string>
<string name="use_for_this_folder">Use for this folder only</string>
<string name="sort_numeric_parts">Sort numeric parts by actual value</string>
<!-- Confirmation dialog -->
<string name="proceed_with_deletion">Are you sure you want to proceed with the deletion?</string>
<string name="deletion_confirmation">Are you sure you want to delete %s?</string> <!-- Are you sure you want to delete 5 items? -->
<string name="move_to_recycle_bin_confirmation">Are you sure you want to move %s into the Recycle Bin?</string> <!-- Are you sure you want to move 3 items into the Recycle Bin? -->
<string name="are_you_sure_delete">Are you sure you want to delete this item?</string>
<string name="are_you_sure_recycle_bin">Are you sure you want to move this item into the Recycle Bin?</string>
<string name="do_not_ask_again">Do not ask again in this session</string>
<string name="yes">Yes</string>
<string name="no">No</string>
<string name="maybe">Maybe</string>
<plurals name="delete_warning">
<item quantity="one">WARNING: You are deleting %d folder</item>
<item quantity="other">WARNING: You are deleting %d folders</item>
</plurals>
<!-- Password protection -->
<string name="pin">PIN</string>
<string name="enter_pin">Enter PIN</string>
<string name="please_enter_pin">Please enter a PIN</string>
<string name="wrong_pin">Wrong PIN</string>
<string name="repeat_pin">Repeat PIN</string>
<string name="pattern">Pattern</string>
<string name="insert_pattern">Insert pattern</string>
<string name="wrong_pattern">Wrong pattern</string>
<string name="repeat_pattern">Repeat pattern</string>
<string name="fingerprint">Fingerprint</string>
<string name="add_fingerprint">Add fingerprint</string>
<string name="place_finger">Please place your finger on the fingerprint sensor</string>
<string name="authentication_failed">Authentication failed</string>
<string name="authentication_blocked">Authentication blocked, please try again in a moment</string>
<string name="no_fingerprints_registered">You have no fingerprints registered, please add some in the Settings of your device</string>
<string name="go_to_settings">Go to Settings</string>
<string name="protection_setup_successfully">Password setup successfully. Please reinstall the app in case you forget it.</string>
<string name="fingerprint_setup_successfully">Protection setup successfully. Please reinstall the app in case of problems with reseting it.</string>
<string name="lock_folder">Lock folder</string>
<string name="unlock_folder">Unlock folder</string>
<string name="lock_folder_notice">This protection works in this app only, it is not supposed to replace a real systemwide folder encryption.</string>
<!-- Times -->
<string name="yesterday">Yesterday</string>
<string name="today">Today</string>
<string name="tomorrow">Tomorrow</string>
<string name="seconds_raw">seconds</string>
<string name="minutes_raw">minutes</string>
<string name="hours_raw">hours</string>
<string name="days_raw">days</string>
<plurals name="seconds">
<item quantity="one">%d second</item>
<item quantity="other">%d seconds</item>
</plurals>
<plurals name="minutes">
<item quantity="one">%d minute</item>
<item quantity="other">%d minutes</item>
</plurals>
<plurals name="hours">
<item quantity="one">%d hour</item>
<item quantity="other">%d hours</item>
</plurals>
<plurals name="days">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
</plurals>
<plurals name="weeks">
<item quantity="one">%d week</item>
<item quantity="other">%d weeks</item>
</plurals>
<plurals name="months">
<item quantity="one">%d month</item>
<item quantity="other">%d months</item>
</plurals>
<plurals name="years">
<item quantity="one">%d year</item>
<item quantity="other">%d years</item>
</plurals>
<!-- For example: I will be there in 5 minutes -->
<plurals name="in_seconds">
<item quantity="one">%d second</item>
<item quantity="other">%d seconds</item>
</plurals>
<plurals name="in_minutes">
<item quantity="one">%d minute</item>
<item quantity="other">%d minutes</item>
</plurals>
<plurals name="in_hours">
<item quantity="one">%d hour</item>
<item quantity="other">%d hours</item>
</plurals>
<plurals name="in_days">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
</plurals>
<plurals name="in_weeks">
<item quantity="one">%d week</item>
<item quantity="other">%d weeks</item>
</plurals>
<plurals name="in_months">
<item quantity="one">%d month</item>
<item quantity="other">%d months</item>
</plurals>
<plurals name="in_years">
<item quantity="one">%d year</item>
<item quantity="other">%d years</item>
</plurals>
<!-- For example: Event reminder: 3 minutes before -->
<plurals name="seconds_before">
<item quantity="one">%d second before</item>
<item quantity="other">%d seconds before</item>
</plurals>
<plurals name="minutes_before">
<item quantity="one">%d minute before</item>
<item quantity="other">%d minutes before</item>
</plurals>
<plurals name="hours_before">
<item quantity="one">%d hour before</item>
<item quantity="other">%d hours before</item>
</plurals>
<plurals name="days_before">
<item quantity="one">%d day before</item>
<item quantity="other">%d days before</item>
</plurals>
<plurals name="weeks_before">
<item quantity="one">%d week before</item>
<item quantity="other">%d weeks before</item>
</plurals>
<plurals name="months_before">
<item quantity="one">%d month before</item>
<item quantity="other">%d months before</item>
</plurals>
<plurals name="years_before">
<item quantity="one">%d year before</item>
<item quantity="other">%d years before</item>
</plurals>
<!-- For example: Postpone reminder by 3 minutes -->
<plurals name="by_seconds">
<item quantity="one">%d second</item>
<item quantity="other">%d seconds</item>
</plurals>
<plurals name="by_minutes">
<item quantity="one">%d minute</item>
<item quantity="other">%d minutes</item>
</plurals>
<plurals name="by_hours">
<item quantity="one">%d hour</item>
<item quantity="other">%d hours</item>
</plurals>
<plurals name="by_days">
<item quantity="one">%d day</item>
<item quantity="other">%d days</item>
</plurals>
<plurals name="by_weeks">
<item quantity="one">%d week</item>
<item quantity="other">%d weeks</item>
</plurals>
<plurals name="by_months">
<item quantity="one">%d month</item>
<item quantity="other">%d months</item>
</plurals>
<plurals name="by_years">
<item quantity="one">%d year</item>
<item quantity="other">%d years</item>
</plurals>
<!-- For example: Time remaining till the alarm goes off: 6 hours, 5 minutes -->
<string name="alarm_goes_off_in">Time remaining till the alarm goes off:\n%s</string>
<string name="reminder_triggers_in">Time remaining till the reminder triggers:\n%s</string>
<string name="alarm_warning">Please make sure the alarm works properly before relying on it. It could misbehave due to system restrictions related to battery saving.</string>
<string name="reminder_warning">Please make sure the reminders work properly before relying on them. They could misbehave due to system restrictions related to battery saving.</string>
<string name="notifications_disabled">Notifications of this application are disabled. Please go in your device settings for enabling them.</string>
<!-- Alarms -->
<string name="alarm">Alarm</string>
<string name="snooze">Snooze</string>
<string name="dismiss">Dismiss</string>
<string name="no_reminder">No reminder</string>
<string name="at_start">At start</string>
<string name="system_sounds">System sounds</string>
<string name="your_sounds">Your sounds</string>
<string name="add_new_sound">Add a new sound</string>
<string name="no_sound">No sound</string>
<!-- Settings -->
<string name="settings">Settings</string>
<string name="purchase_simple_thank_you">Purchase Simple Thank You</string>
<string name="customize_colors">Customize colors</string>
<string name="customize_widget_colors">Customize widget colors</string>
<string name="use_english_language">Use English language</string>
<string name="show_hidden_items">Show hidden items</string>
<string name="font_size">Font size</string>
<string name="small">Small</string>
<string name="medium">Medium</string>
<string name="large">Large</string>
<string name="extra_large">Extra large</string>
<string name="password_protect_hidden_items">Password protect hidden item visibility</string>
<string name="password_protect_whole_app">Password protect the whole application</string>
<string name="password_protect_file_deletion">Password protect file deletion and moving</string>
<string name="keep_last_modified">Keep old last-modified value at file operations</string>
<string name="show_info_bubble">Show an info bubble at scrolling items by scrollbar dragging</string>
<string name="prevent_phone_from_sleeping">Prevent phone from sleeping while the app is in foreground</string>
<string name="skip_delete_confirmation">Always skip delete confirmation dialog</string>
<string name="enable_pull_to_refresh">Enable pull-to-refresh from the top</string>
<string name="use_24_hour_time_format">Use 24-hour time format</string>
<string name="change_date_and_time_format">Change date and time format</string>
<string name="sunday_first">Start week on Sunday</string>
<string name="widgets">Widgets</string>
<string name="use_same_snooze">Always use same snooze time</string>
<string name="snooze_time">Snooze time</string>
<string name="vibrate_on_button_press">Vibrate on button press</string>
<string name="move_items_into_recycle_bin">Move items into the Recycle Bin instead of deleting</string>
<string name="recycle_bin_cleaning_interval">Recycle Bin cleaning interval</string>
<string name="empty_recycle_bin">Empty the Recycle Bin</string>
<string name="force_portrait_mode">Force portrait mode</string>
<string name="export_settings">Export settings</string>
<string name="import_settings">Import settings</string>
<string name="settings_exported_successfully">Settings exported successfully</string>
<string name="settings_imported_successfully">Settings imported successfully</string>
<!-- Setting sections -->
<string name="visibility">Visibility</string>
<string name="security">Security</string>
<string name="scrolling">Scrolling</string>
<string name="file_operations">File operations</string>
<string name="recycle_bin">Recycle Bin</string>
<string name="saving_label">Saving</string>
<string name="startup">Startup</string>
<string name="text">Text</string>
<string name="migrating">Migrating</string>
<!-- Recycle Bin -->
<string name="restore_this_file">Restore this file</string>
<string name="restore_selected_files">Restore selected files</string>
<string name="restore_all_files">Restore all files</string>
<string name="recycle_bin_emptied">The Recycle Bin has been emptied successfully</string>
<string name="files_restored_successfully">Files have been restored successfully</string>
<string name="empty_recycle_bin_confirmation">Are you sure you want to empty the Recycle Bin? The files will be permanently lost.</string>
<string name="recycle_bin_empty">The Recycle Bin is empty</string>
<string name="moving_recycle_bin_items_disabled">Moving Recycle bin items is disabled, please use Restore</string>
<string name="show_the_recycle_bin">Show the Recycle Bin</string>
<string name="hide_the_recycle_bin">Hide the Recycle Bin</string>
<plurals name="moving_items_into_bin">
<item quantity="one">Moving %d item into the Recycle Bin</item>
<item quantity="other">Moving %d items into the Recycle Bin</item>
</plurals>
<!-- Import / Export -->
<string name="importing">Importing…</string>
<string name="exporting">Exporting…</string>
<string name="importing_successful">Importing successful</string>
<string name="exporting_successful">Exporting successful</string>
<string name="importing_failed">Importing failed</string>
<string name="exporting_failed">Exporting failed</string>
<string name="importing_some_entries_failed">Importing some entries failed</string>
<string name="exporting_some_entries_failed">Exporting some entries failed</string>
<string name="no_entries_for_importing">No entries for importing have been found</string>
<string name="no_entries_for_exporting">No entries for exporting have been found</string>
<!-- OTG devices -->
<string name="usb">USB</string>
<string name="usb_detected">You seem to have an USB device attached to your device. To make sure its files appear properly, you need to grant additional permissions.</string>
<string name="confirm_usb_storage_access_text">Please choose the top folder of the USB device on the next screen, to grant access</string>
<string name="wrong_root_selected_usb">Wrong folder selected, please select the root folder of your USB device</string>
<!-- Dates -->
<string name="january">January</string>
<string name="february">February</string>
<string name="march">March</string>
<string name="april">April</string>
<string name="may">May</string>
<string name="june">June</string>
<string name="july">July</string>
<string name="august">August</string>
<string name="september">September</string>
<string name="october">October</string>
<string name="november">November</string>
<string name="december">December</string>
<!-- in January -->
<string name="in_january">in January</string>
<string name="in_february">in February</string>
<string name="in_march">in March</string>
<string name="in_april">in April</string>
<string name="in_may">in May</string>
<string name="in_june">in June</string>
<string name="in_july">in July</string>
<string name="in_august">in August</string>
<string name="in_september">in September</string>
<string name="in_october">in October</string>
<string name="in_november">in November</string>
<string name="in_december">in December</string>
<string name="monday">Monday</string>
<string name="tuesday">Tuesday</string>
<string name="wednesday">Wednesday</string>
<string name="thursday">Thursday</string>
<string name="friday">Friday</string>
<string name="saturday">Saturday</string>
<string name="sunday">Sunday</string>
<string name="monday_letter">M</string>
<string name="tuesday_letter">T</string>
<string name="wednesday_letter">W</string>
<string name="thursday_letter">T</string>
<string name="friday_letter">F</string>
<string name="saturday_letter">S</string>
<string name="sunday_letter">S</string>
<string name="monday_short">Mon</string>
<string name="tuesday_short">Tue</string>
<string name="wednesday_short">Wed</string>
<string name="thursday_short">Thu</string>
<string name="friday_short">Fri</string>
<string name="saturday_short">Sat</string>
<string name="sunday_short">Sun</string>
<!-- Pro version -->
<string name="upgrade_to_pro_long">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements.</string>
<string name="upgrade_to_pro_long_click">Your app version will not be updated anymore. Please upgrade to the Pro version to receive new fixes and other improvements by clicking here.</string>
<string name="it_is_free">It is free till: %s. If you download it till then, you will be able to use it for free forever.</string>
<string name="more_info">More info</string>
<string name="upgrade">Upgrade</string>
<string name="upgrade_calendar">You have to migrate locally stored events manually via exporting in an .ics file, then importing. You can find both export/import buttons at the main screen menu.</string>
<!-- About -->
<string name="about">About</string>
<string name="website_label">For the source codes visit</string>
<string name="email_label">Send your feedback or suggestions to</string>
<string name="upgrade_to_pro">Upgrade to Pro</string>
<string name="more_apps_underlined"><u>More apps</u></string>
<string name="third_party_licences_underlined"><u>Third party licences</u></string>
<string name="invite_friends_underlined"><u>Invite friends</u></string>
<string name="share_text">Hey, come check out %1$s at %2$s</string>
<string name="invite_via">Invite via</string>
<string name="rate_us_underlined"><u>Rate us</u></string>
<string name="rate">Rate</string>
<string name="donate">Donate</string>
<string name="donate_underlined"><u>Donate</u></string>
<string name="follow_us">Follow us</string>
<string name="copyright">v %1$s\nCopyright © Simple Mobile Tools %2$d</string>
<string name="additional_info">Additional info</string>
<string name="app_version">App version: %s</string>
<string name="device_os">Device OS: %s</string>
<string name="donate_please">
<![CDATA[
Hello,<br><br>
hope you are enjoying the app. It contains no ads, please support its development by purchasing the <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> app, it will also prevent this dialog from showing up again.<br><br>
Thank you!
]]>
</string>
<string name="purchase">Purchase</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->
<string name="new_app">
<![CDATA[
Hey,<br><br>
just letting you know that a new app has been released recently:<br><br>
<a href="%1$s">%2$s</a><br><br>
You can download it by pressing the title.<br><br>
Thanks
]]>
</string>
<string name="sideloaded_app">
<![CDATA[
It looks like your app version is corrupt. Please download the original version <a href="%s">here</a>.
]]>
</string>
<!-- FAQ -->
<string name="frequently_asked_questions">Frequently asked questions</string>
<string name="before_asking_question">Before you ask a question, please first read the</string>
<string name="faq_1_title_commons">How come I don\'t see this apps widget on the list of widgets?</string>
<string name="faq_1_text_commons">It is most likely because you moved the app on an SD card. There is an Android system limitation which hides the given app widgets
in that case. The only solution is to move the app back onto the Internal Storage via your device settings.</string>
<string name="faq_2_title_commons">I want to support you, but I cannot donate money. Is there anything else I can do?</string>
<string name="faq_2_text_commons">Yes, of course. You can spread the word about the apps or give good feedback and ratings. You can also help by translating the apps in a new language, or just update some existing translations.
You can find the guide at https://github.com/SimpleMobileTools/General-Discussion , or just shoot me a message at hello@simplemobiletools.com if you need help.</string>
<string name="faq_3_title_commons">I deleted some files by mistake, how can I recover them?</string>
<string name="faq_3_text_commons">Sadly, you cannot. Files are deleted instantly after the confirmation dialog, there is no trashbin available.</string>
<string name="faq_4_title_commons">I don\'t like the widget colors, can I change them?</string>
<string name="faq_4_text_commons">Yep, as you drag a widget on your home screen a widget config screen appears. You will see colored squares at the bottom left corner, just press them to pick a new color. You can use the slider for adjusting the alpha too.</string>
<string name="faq_5_title_commons">Can I somehow restore deleted files?</string>
<string name="faq_5_text_commons">If they were really deleted, you cannot. However, there is a Recycle Bin enabled by default, it will cause the files just be moved in the Bin instead of deleting them.</string>
<string name="faq_6_title_commons">The app launcher icon disappeared. What can I do?</string>
<string name="faq_6_text_commons">It is caused by your launcher not supporting icon customization properly. Try launching the app via Google Play or some widget, if available.
Once launched, just set back the default orange icon #F57C00. You might have to reinstall the app in the worst case.</string>
<string name="faq_7_title_commons">The money has been deducted from my bank account, but I cannot download the app. What can I do?</string>
<string name="faq_7_text_commons">Payments are fully handled by Google, their system glitches from time to time. Just clear your Google Play app cache and restart your device, then retry downloading it.</string>
<string name="faq_8_title_commons">Why should I upgrade to the Pro version?</string>
<string name="faq_8_text_commons">As your app version is no longer updated, the bugs you have maybe spotted will never be fixed. There will also be no new functions added. You can purchase the Pro version on Google Play for a small sum of money.
It is a one time payment, which means that once you purchase it, you will never have to pay again. Not even after getting a new device. If you won\'t like the Pro version, you can just uninstall it within a few hours and you will automatically get your money back.
If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it.</string>
<!-- License -->
<string name="notice">This app uses the following third party libraries to make my life easier. Thank you.</string>
<string name="third_party_licences">Third party licences</string>
<string name="kotlin_title">Kotlin (programming language)</string>
<string name="subsampling_title">Subsampling Scale Image View (zoomable imageviews)</string>
<string name="glide_title">Glide (image loading and caching)</string>
<string name="picasso_title">Picasso (image loading and caching)</string>
<string name="cropper_title">Android Image Cropper (image crop and rotate)</string>
<string name="rtl_viewpager_title">RtlViewPager (right to left swiping)</string>
<string name="joda_title">Joda-Time (Java date replacement)</string>
<string name="stetho_title">Stetho (debugging databases)</string>
<string name="otto_title">Otto (event bus)</string>
<string name="photoview_title">PhotoView (zoomable GIFs)</string>
<string name="pattern_title">PatternLockView (pattern protection)</string>
<string name="reprint_title">Reprint (fingerprint protection)</string>
<string name="gif_drawable_title">Gif Drawable (loading GIFs)</string>
<string name="autofittextview_title">AutoFitTextView (resizing text)</string>
<string name="robolectric_title">Robolectric (testing framework)</string>
<string name="espresso_title">Espresso (testing helper)</string>
<string name="gson_title">Gson (JSON parser)</string>
<string name="leak_canary_title">Leak Canary (memory leak detector)</string>
<string name="number_picker_title">Number Picker (customizable number picker)</string>
<string name="exoplayer_title">ExoPlayer (video player)</string>
<string name="panorama_view_title">VR Panorama View (displaying panoramas)</string>
<string name="sanselan_title">Apache Sanselan (reading image metadata)</string>
<string name="filters_title">Android Photo Filters (image filters)</string>
<string name="gesture_views_title">Gesture Views (zoomable images)</string>
<!-- Google Play listing -->
<string name="deprecated_app">DEPRECATED: This version of the app is no longer maintained, get the Pro version at https://play.google.com/store/apps/details?id=com.simplemobiletools.xxx.pro</string>
<string name="pro_app_refund">Don\'t forget that if you uninstall any paid app within 2 hours, you will automatically be refunded. If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it. That makes it easy to try it out :)</string>
</resources>

View file

@ -252,7 +252,7 @@
<string name="move_to_recycle_bin_confirmation">你确定要移动 %s到回收站</string> <!-- Are you sure you want to move 3 items into the Recycle Bin? -->
<string name="are_you_sure_delete">你确定要删除此项目吗?</string>
<string name="are_you_sure_recycle_bin">你确定要移动此项目到回收站吗?</string>
<string name="do_not_ask_again">不再提醒</string>
<string name="do_not_ask_again">重启前不再提醒</string>
<string name="yes"></string>
<string name="no"></string>
<string name="maybe">也许</string>
@ -572,8 +572,10 @@
<string name="purchase">购买</string>
<string name="update_thank_you">请更新 Simple Thank You 到最新版本</string>
<string name="before_asking_question_read_faq">提问之前,请先打开应用设置并阅读常见问题。也许你可以在那里找到答案。</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">阅读</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">您好,\n\n看来您使用这个应用已经有一段时间了我们真的很感激。\n\n如果您喜欢请在Google Play上为我们评分。这对我们很有帮助。\n\n无论你做何决定你都不会再看到这个消息了。\n\n感谢</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -67,7 +67,7 @@
<string name="simple_renaming">簡易重新命名</string>
<string name="pattern_renaming">格式重新命名</string>
<string name="string_to_add">添加文字</string>
<string name="rename_date_time_pattern">%Y - 年\n%M - 月\n%D - 日\n%h - 小時\n%m - 分鐘\n%s - 秒鐘\n%i - number increasing from 1</string>
<string name="rename_date_time_pattern">%Y - 年\n%M - 月\n%D - 日\n%h - 小時\n%m - 分鐘\n%s - 秒鐘\n%i - 數字從1增加起</string>
<!-- Copy / Move -->
<string name="copy">複製</string>
@ -572,8 +572,10 @@
<string name="purchase">購買</string>
<string name="update_thank_you">請更新[Simple Thank You]至最新版本</string>
<string name="before_asking_question_read_faq">在您發問前,請先檢查程式設定及閱讀[常見問題]。或許解決方法就在那裡。</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">並且確保您正使用最新的應用程式版本。</string>
<string name="read_it">讀它</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">哈囉\n\n您似乎已經使用這應用程式一段時間了我們相當感激。\n\n如果我們能請您幫個忙請在Google Play上為我們評分。這對我們很有幫助。\n\n無論您的決定如何都不會再看到這則訊息。\n\n感謝!</string>
<!-- New app (do not translate anything on the 4th line) -->

View file

@ -8,7 +8,10 @@
<color name="activated_item_foreground">#44888888</color>
<color name="divider_grey">#40808080</color>
<color name="gradient_grey_start">#CC000000</color>
<color name="default_actionmode_color">#FF383838</color>
<color name="dark_grey">#FF333333</color>
<color name="hint_white">#99FFFFFF</color>
<color name="hint_black">#66000000</color>
<!-- Color Customization -->
<color name="theme_light_text_color">@color/md_grey_600</color>

View file

@ -605,8 +605,10 @@
<string name="purchase">Purchase</string>
<string name="update_thank_you">Please update Simple Thank You to the latest version</string>
<string name="before_asking_question_read_faq">Before you ask a question, please check the app settings and read the Frequently Asked Questions first. Maybe the solution is there.</string>
<string name="before_rate_read_faq">Before you rate us, please check the app settings and read the Frequently Asked Questions first. If you have any problems, maybe the solution is there.</string>
<string name="make_sure_latest">Also make sure that you are using the latest app version.</string>
<string name="read_it">Read it</string>
<string name="read_faq">Read FAQ</string>
<string name="rate_us_prompt">Hello,\n\nit looks like you are using this app for quite a while already, and we really appreciate it.\n\nIf we can ask you a favor, please rate us on Google Play. That would really help us a lot.\n\nNo matter how you decide, you will not see this message again.\n\nThanks!</string>
<!-- New app (do not translate anything on the 4th line) -->

File diff suppressed because it is too large Load diff

View file

@ -29,6 +29,10 @@ class StringsAdapter(activity: BaseSimpleActivity, var strings: MutableList<Stri
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.list_item, parent)
override fun onActionModeCreated() {}
override fun onActionModeDestroyed() {}
override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) {
val item = strings[position]
holder.bindView(item, true, true) { itemView, layoutPosition ->