Merge branch 'android13' of https://github.com/seedvault-app/seedvault into lineage-20.0

* 'android13' of https://github.com/seedvault-app/seedvault:
  Bump version to 13-3.3
  Mark Nextcloud as not recommended
  Warn before turning off backups
  Always start a new RestoreSet when initializing the device
  Translated using Weblate (English (Australia))
  Translated using Weblate (Italian)
  Translated using Weblate (Hebrew)
  Translated using Weblate (Russian)
  Translated using Weblate (Ukrainian)
  Translated using Weblate (German)
  Translated using Weblate (Turkish)
  Translated using Weblate (Spanish)
  Translated using Weblate (German)
  Translated using Weblate (Chinese (Simplified))
  Translated using Weblate (Lithuanian)
  Pre-grant ACCESS_MEDIA_LOCATION permission
  Show foreground notification right away when doing manual backup
  Bump version to 13-3.2 (#487)
  gh-actions: Upload debug apks as artifacts
  Translated using Weblate (Greek)
  Translated using Weblate (French (Canada))
  Translated using Weblate (Portuguese (Portugal))
  Translated using Weblate (Lithuanian)
  Translated using Weblate (Korean)
  Translated using Weblate (German)
  Translated using Weblate (Georgian)
  Translated using Weblate (Spanish)
  Translated using Weblate (Spanish (American))
  Translated using Weblate (Portuguese (Brazil))
  Translated using Weblate (Vietnamese)
  Translated using Weblate (French)
  Translated using Weblate (French)
  Translated using Weblate (Catalan)
  Translated using Weblate (Russian)
  Translated using Weblate (Czech)
  Translated using Weblate (Italian)
  Translated using Weblate (Vietnamese)
  Translated using Weblate (Greek)
  Translated using Weblate (Spanish)
  Translated using Weblate (Arabic)
  Translated using Weblate (Chinese (Simplified))
  Translated using Weblate (Hebrew)
  Translated using Weblate (German)
  Translated using Weblate (Turkish)
  Translated using Weblate (Marathi)
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Japanese)
  Added translation using Weblate (Asturian)
  Update permissions for log feature
  Remove some code warnings
  Add expert option to save logs
  Remove permission requirement in a better way for debug builds
  RecoveryCode: Allow screenshots on debug builds (#446)

Change-Id: I713707c404fce0f952691e1f26398c284464cadf
diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml
index be19d3b..6164d69 100644
--- a/.github/workflows/client.yml
+++ b/.github/workflows/client.yml
@@ -33,3 +33,12 @@
 
       - name: Build
         run: ./gradlew compileDebugAndroidTestSources check assemble ktlintCheck
+
+      - name: Upload APKs
+        uses: actions/upload-artifact@v3
+        with:
+          name: seedvault-${{ github.sha }}-apks
+          path: |
+            app/build/outputs/apk/debug/app-debug.apk
+            contactsbackup/build/outputs/apk/debug/contactsbackup-debug.apk
+            storage/demo/build/outputs/apk/debug/demo-debug.apk
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c08347f..365682b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,17 @@
+## [13-3.3] - 2023-01-11
+* Mark Nextcloud as "Not recommended"
+* Warn before turning off backups
+* Avoid corrupting old backups when turning off backups
+* Pre-grant `ACCESS_MEDIA_LOCATION` permission for Storage backups
+
+## [13-3.2] - 2022-12-29
+* Add expert option to save logs
+* Add more details about branching to README
+* Improvements for debug builds
+* Documentation improvements
+* Better error handling in some cases
+* Some Android 13 upgrades
+
 ## [13-3.1] - 2022-09-01
 * Initial release for Android 13
 * Don't attempt to restore app that is used as a backup location (e.g. Nextcloud),
diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml
index 0983626..0888d2f 100644
--- a/app/src/debug/AndroidManifest.xml
+++ b/app/src/debug/AndroidManifest.xml
@@ -7,13 +7,11 @@
         <activity
             android:name="com.stevesoltys.seedvault.settings.SettingsActivity"
             android:exported="true"
-            android:permission=""
-            tools:replace="android:permission" />
+            tools:remove="android:permission" />
         <activity
             android:name="com.stevesoltys.seedvault.restore.RestoreActivity"
             android:exported="true"
-            android:permission=""
-            tools:replace="android:permission" />
+            tools:remove="android:permission" />
     </application>
 
 </manifest>
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8e18f3e..c9210ac 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,8 +2,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     package="com.stevesoltys.seedvault"
-    android:versionCode="33000301"
-    android:versionName="13-3.1">
+    android:versionCode="33030030"
+    android:versionName="13-3.3">
     <!--
     The version code is the targeted SDK_VERSION plus 6 digits for our own version code.
     The version name is the targeted Android version followed by - and our own version name.
@@ -54,6 +54,16 @@
     <!-- Used to authenticate saving a new recovery code -->
     <uses-permission android:name="android.permission.USE_BIOMETRIC" />
 
+    <!-- This is needed to query content providers in other users -->
+    <uses-permission
+        android:name="android.permission.INTERACT_ACROSS_USERS_FULL"
+        tools:ignore="ProtectedPermissions" />
+
+    <!-- Used to get logcat for system part of backup API, gets permission dialog -->
+    <uses-permission
+        android:name="android.permission.READ_LOGS"
+        tools:ignore="ProtectedPermissions" />
+
     <!-- Permission used to open settings -->
     <permission
         android:name="com.stevesoltys.seedvault.OPEN_SETTINGS"
@@ -64,11 +74,6 @@
         android:name="com.stevesoltys.seedvault.RESTORE_BACKUP"
         android:protectionLevel="system|signature" />
 
-    <!-- This is needed to query content providers in other users -->
-    <uses-permission
-        android:name="android.permission.INTERACT_ACROSS_USERS_FULL"
-        tools:ignore="ProtectedPermissions" />
-
     <application
         android:name=".App"
         android:allowBackup="false"
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/ExpertSettingsFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/ExpertSettingsFragment.kt
index 05164d7..f4a2eff 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/ExpertSettingsFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/ExpertSettingsFragment.kt
@@ -1,15 +1,35 @@
 package com.stevesoltys.seedvault.settings
 
 import android.os.Bundle
+import androidx.activity.result.contract.ActivityResultContracts.CreateDocument
+import androidx.preference.Preference
 import androidx.preference.PreferenceFragmentCompat
 import com.stevesoltys.seedvault.R
 import com.stevesoltys.seedvault.permitDiskReads
+import com.stevesoltys.seedvault.transport.backup.PackageService
+import org.koin.android.ext.android.inject
+import org.koin.androidx.viewmodel.ext.android.sharedViewModel
 
 class ExpertSettingsFragment : PreferenceFragmentCompat() {
+
+    private val viewModel: SettingsViewModel by sharedViewModel()
+    private val packageService: PackageService by inject()
+    // TODO set mimeType when upgrading androidx lib
+    private val createFileLauncher = registerForActivityResult(CreateDocument()) { uri ->
+        viewModel.onLogcatUriReceived(uri)
+    }
+
     override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
         permitDiskReads {
             setPreferencesFromResource(R.xml.settings_expert, rootKey)
         }
+        findPreference<Preference>("logcat")?.setOnPreferenceClickListener {
+            val versionName = packageService.getVersionName(requireContext().packageName) ?: "ver"
+            val timestamp = System.currentTimeMillis()
+            val name = "seedvault-$versionName-$timestamp.txt"
+            createFileLauncher.launch(name)
+            true
+        }
     }
 
     override fun onStart() {
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsFragment.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsFragment.kt
index ff26c3a..eb41bd9 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsFragment.kt
@@ -63,14 +63,23 @@
                 return@OnPreferenceChangeListener false
             }
             // main key is present, so enable or disable normally
-            try {
-                backupManager.isBackupEnabled = enabled
-                if (enabled) viewModel.enableCallLogBackup()
-                return@OnPreferenceChangeListener true
-            } catch (e: RemoteException) {
-                Log.e(TAG, "Error setting backup enabled to $enabled", e)
-                backup.isChecked = !enabled
-                return@OnPreferenceChangeListener false
+            when (enabled) {
+                true -> return@OnPreferenceChangeListener trySetBackupEnabled(true)
+                false -> {
+                    AlertDialog.Builder(requireContext())
+                        .setIcon(R.drawable.ic_warning)
+                        .setTitle(R.string.settings_backup_dialog_title)
+                        .setMessage(R.string.settings_backup_dialog_message)
+                        .setPositiveButton(R.string.settings_backup_dialog_disable) { dialog, _ ->
+                            trySetBackupEnabled(false)
+                            dialog.dismiss()
+                        }
+                        .setNegativeButton(R.string.settings_backup_apk_dialog_cancel) { dialog,
+                            _ -> dialog.dismiss()
+                        }
+                        .show()
+                    return@OnPreferenceChangeListener false
+                }
             }
         }
 
@@ -105,7 +114,7 @@
                     dialog.dismiss()
                 }
                 .setNegativeButton(R.string.settings_backup_apk_dialog_disable) { dialog, _ ->
-                    apkBackup.isChecked = enable
+                    apkBackup.isChecked = false
                     dialog.dismiss()
                 }
                 .show()
@@ -130,14 +139,14 @@
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
 
-        viewModel.lastBackupTime.observe(viewLifecycleOwner, { time ->
+        viewModel.lastBackupTime.observe(viewLifecycleOwner) { time ->
             setAppBackupStatusSummary(time)
-        })
+        }
 
         val backupFiles: Preference = findPreference("backup_files")!!
-        viewModel.filesSummary.observe(viewLifecycleOwner, { summary ->
+        viewModel.filesSummary.observe(viewLifecycleOwner) { summary ->
             backupFiles.summary = summary
-        })
+        }
     }
 
     override fun onStart() {
@@ -160,10 +169,10 @@
         if (resources.getBoolean(R.bool.show_restore_in_settings)) {
             menuRestore?.isVisible = true
         }
-        viewModel.backupPossible.observe(viewLifecycleOwner, { possible ->
+        viewModel.backupPossible.observe(viewLifecycleOwner) { possible ->
             menuBackupNow?.isEnabled = possible
             menuRestore?.isEnabled = possible
-        })
+        }
     }
 
     override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
@@ -189,6 +198,19 @@
         else -> super.onOptionsItemSelected(item)
     }
 
+    private fun trySetBackupEnabled(enabled: Boolean): Boolean {
+        return try {
+            backupManager.isBackupEnabled = enabled
+            if (enabled) viewModel.enableCallLogBackup()
+            backup.isChecked = enabled
+            true
+        } catch (e: RemoteException) {
+            Log.e(TAG, "Error setting backup enabled to $enabled", e)
+            backup.isChecked = !enabled
+            false
+        }
+    }
+
     private fun setBackupEnabledState() {
         try {
             backup.isChecked = backupManager.isBackupEnabled
diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt
index 8da4f9f..3c19065 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt
@@ -11,6 +11,7 @@
 import android.net.NetworkCapabilities
 import android.net.NetworkRequest
 import android.net.Uri
+import android.os.Process.myUid
 import android.provider.Settings
 import android.util.Log
 import android.widget.Toast
@@ -35,8 +36,11 @@
 import com.stevesoltys.seedvault.ui.notification.BackupNotificationManager
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
 import org.calyxos.backup.storage.api.StorageBackup
 import org.calyxos.backup.storage.backup.BackupJobService
+import java.io.IOException
+import java.lang.Runtime.getRuntime
 import java.util.concurrent.TimeUnit.HOURS
 
 private const val TAG = "SettingsViewModel"
@@ -193,9 +197,9 @@
     @UiThread
     fun loadFilesSummary() = viewModelScope.launch {
         val uriSummary = storageBackup.getUriSummaryString()
-        _filesSummary.value = if (uriSummary.isEmpty()) {
+        _filesSummary.value = uriSummary.ifEmpty {
             app.getString(R.string.settings_backup_files_summary)
-        } else uriSummary
+        }
     }
 
     /**
@@ -233,4 +237,28 @@
         BackupJobService.cancelJob(app)
     }
 
+    fun onLogcatUriReceived(uri: Uri?) = viewModelScope.launch(Dispatchers.IO) {
+        if (uri == null) {
+            onLogcatError()
+            return@launch
+        }
+        // 1000 is system uid, needed to get backup logs from the OS code.
+        val command = "logcat -d --uid=1000,${myUid()} *:V"
+        try {
+            app.contentResolver.openOutputStream(uri, "wt")?.use { outputStream ->
+                getRuntime().exec(command).inputStream.use { inputStream ->
+                    inputStream.copyTo(outputStream)
+                }
+            } ?: throw IOException("OutputStream was null")
+        } catch (e: Exception) {
+            Log.e(TAG, "Error saving logcat ", e)
+            onLogcatError()
+        }
+    }
+
+    private suspend fun onLogcatError() = withContext(Dispatchers.Main) {
+        val str = app.getString(R.string.settings_expert_logcat_error)
+        Toast.makeText(app, str, LENGTH_LONG).show()
+    }
+
 }
diff --git a/app/src/main/java/com/stevesoltys/seedvault/transport/backup/BackupCoordinator.kt b/app/src/main/java/com/stevesoltys/seedvault/transport/backup/BackupCoordinator.kt
index 5d791fc..de4287b 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/transport/backup/BackupCoordinator.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/transport/backup/BackupCoordinator.kt
@@ -88,13 +88,16 @@
      * Starts a new [RestoreSet] with a new token (the current unix epoch in milliseconds).
      * Call this at least once before calling [initializeDevice]
      * which must be called after this method to properly initialize the backup transport.
+     *
+     * @return the token of the new [RestoreSet].
      */
     @Throws(IOException::class)
-    suspend fun startNewRestoreSet() {
+    private suspend fun startNewRestoreSet(): Long {
         val token = clock.time()
         Log.i(TAG, "Starting new RestoreSet with token $token...")
         settingsManager.setNewToken(token)
         plugin.startNewRestoreSet(token)
+        return token
     }
 
     /**
@@ -116,16 +119,14 @@
      * [TRANSPORT_ERROR] (to retry following network error or other failure).
      */
     suspend fun initializeDevice(): Int = try {
-        val token = settingsManager.getToken()
-        if (token == null) {
-            Log.i(TAG, "No RestoreSet started, initialization is no-op.")
-        } else {
-            Log.i(TAG, "Initialize Device!")
-            plugin.initializeDevice()
-            Log.d(TAG, "Resetting backup metadata for token $token...")
-            plugin.getMetadataOutputStream().use {
-                metadataManager.onDeviceInitialization(token, it)
-            }
+        // we don't respect the intended system behavior here by always starting a new [RestoreSet]
+        // instead of simply deleting the current one
+        val token = startNewRestoreSet()
+        Log.i(TAG, "Initialize Device!")
+        plugin.initializeDevice()
+        Log.d(TAG, "Resetting backup metadata for token $token...")
+        plugin.getMetadataOutputStream(token).use {
+            metadataManager.onDeviceInitialization(token, it)
         }
         // [finishBackup] will only be called when we return [TRANSPORT_OK] here
         // so we remember that we initialized successfully
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/notification/BackupNotificationManager.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/notification/BackupNotificationManager.kt
index de75460..35b412f 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/notification/BackupNotificationManager.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/notification/BackupNotificationManager.kt
@@ -15,6 +15,7 @@
 import android.util.Log
 import androidx.core.app.NotificationCompat.Action
 import androidx.core.app.NotificationCompat.Builder
+import androidx.core.app.NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE
 import androidx.core.app.NotificationCompat.PRIORITY_DEFAULT
 import androidx.core.app.NotificationCompat.PRIORITY_HIGH
 import androidx.core.app.NotificationCompat.PRIORITY_LOW
@@ -127,6 +128,7 @@
             setWhen(System.currentTimeMillis())
             setProgress(expected, transferred, false)
             priority = PRIORITY_DEFAULT
+            foregroundServiceBehavior = FOREGROUND_SERVICE_IMMEDIATE
         }.build()
         nm.notify(NOTIFICATION_ID_OBSERVER, notification)
     }
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeActivity.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeActivity.kt
index a6b3d3e..5923a14 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeActivity.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeActivity.kt
@@ -4,6 +4,7 @@
 import android.view.MenuItem
 import android.view.WindowManager.LayoutParams.FLAG_SECURE
 import com.stevesoltys.seedvault.R
+import com.stevesoltys.seedvault.isDebugBuild
 import com.stevesoltys.seedvault.ui.BackupActivity
 import com.stevesoltys.seedvault.ui.INTENT_EXTRA_IS_RESTORE
 import org.koin.androidx.viewmodel.ext.android.viewModel
@@ -15,7 +16,7 @@
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
 
-        window.addFlags(FLAG_SECURE)
+        if (!isDebugBuild()) window.addFlags(FLAG_SECURE)
 
         setContentView(R.layout.activity_recovery_code)
 
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeViewModel.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeViewModel.kt
index 02c6991..5dbc82e 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeViewModel.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/recoverycode/RecoveryCodeViewModel.kt
@@ -107,9 +107,6 @@
             storageBackup.deleteAllSnapshots()
             storageBackup.clearCache()
             try {
-                // will also generate a new backup token for the new restore set
-                backupCoordinator.startNewRestoreSet()
-
                 // initialize the new location
                 if (backupManager.isBackupEnabled) backupManager.initializeTransportsForUser(
                     UserHandle.myUserId(),
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt
index 2701526..4595468 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt
@@ -38,9 +38,6 @@
             storageBackup.deleteAllSnapshots()
             storageBackup.clearCache()
             try {
-                // will also generate a new backup token for the new restore set
-                backupCoordinator.startNewRestoreSet()
-
                 // initialize the new location (if backups are enabled)
                 if (backupManager.isBackupEnabled) backupManager.initializeTransportsForUser(
                     UserHandle.myUserId(),
diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/SafStorageOptions.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/SafStorageOptions.kt
index c0140b2..f3e9ba6 100644
--- a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/SafStorageOptions.kt
+++ b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/SafStorageOptions.kt
@@ -136,7 +136,8 @@
             rootId = "fake",
             documentId = "fake",
             icon = getIcon(context, AUTHORITY_NEXTCLOUD, "fake", 0),
-            title = context.getString(R.string.storage_fake_nextcloud_title),
+            title = context.getString(R.string.storage_not_recommended,
+                context.getString(R.string.storage_fake_nextcloud_title)),
             summary = context.getString(summaryRes),
             availableBytes = null,
             isUsb = false,
diff --git a/app/src/main/res/drawable/ic_bug_report.xml b/app/src/main/res/drawable/ic_bug_report.xml
new file mode 100644
index 0000000..dd702e2
--- /dev/null
+++ b/app/src/main/res/drawable/ic_bug_report.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z" />
+</vector>
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 5b48337..3c9f29b 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -2,7 +2,7 @@
 <resources>
     <string name="settings_auto_restore_title">استعادة تلقائية</string>
     <string name="settings_backup_location">موقع النسخ الاحتياطي</string>
-    <string name="settings_backup">احتفظ باحتياطي من معلوماتي</string>
+    <string name="settings_backup">النسخ الاحتياطي لتطبيقاتي</string>
     <string name="restore_backup_button">استرجاع النسخة الاحتياطية</string>
     <string name="current_destination_string">حالة النسخ الاحتياطي والإعدادات</string>
     <string name="backup">نسخ احتياطية</string>
@@ -13,4 +13,9 @@
     <string name="settings_info">كل النسخ الاحتياطية مشفرة على هاتفك. للإستعادة من النسخ الاحتياطي سوف تحتاج رمز الاسترداد المكون من 12 كلمة.</string>
     <string name="settings_backup_location_internal">التخزين الداخلي</string>
     <string name="settings_backup_location_none">لا شئ</string>
+    <string name="data_management_label">Seedvault النسخ الاحتياطي</string>
+    <string name="settings_backup_last_backup_never">أبداً</string>
+    <string name="settings_backup_apk_dialog_title">هل تريد حقًا تعطيل النسخ الاحتياطي للتطبيق؟</string>
+    <string name="settings_auto_restore_summary_usb">ملاحظة: يجب توصيل %1$s الخاص بك حتى يعمل.</string>
+    <string name="settings_category_apps">النسخ الاحتياطي للتطبيق</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-ast/strings.xml b/app/src/main/res/values-ast/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/app/src/main/res/values-ast/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index e94da86..b1542f1 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -182,4 +182,14 @@
     <string name="storage_internal_warning_use_anyway">Utilitzar de totes maneres</string>
     <string name="about_title">Quant a</string>
     <string name="about_version">Versió: %s</string>
+    <string name="notification_backup_disabled">Còpia de Seguretat deshabilitada</string>
+    <string name="backup_app_in_progress">Fent còpia de seguretat</string>
+    <string name="backup_app_success">Còpia de seguretat completada</string>
+    <string name="backup_app_warning">Avís de còpia de seguretat</string>
+    <string name="restore_app_status_installing">Reinstal·lant</string>
+    <string name="restore_app_status_installed">Reinstal·lat</string>
+    <string name="restore_app_status_install_error">No s\'ha pogut instal·lar</string>
+    <string name="restore_app_status_restored">Dades restaurades</string>
+    <string name="restore_app_status_failed">Ha fallat la restauració</string>
+    <string name="restore_app_status_warning">Avís de restrauració</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 9eb3d40..97f6401 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -181,4 +181,10 @@
 \nOmlouváme se za nepříjemnosti.</string>
     <string name="notification_error_no_main_key_title">Zálohy vypnuty</string>
     <string name="error_no_store">Chyba: Není nainstalovaný žádný obchod pro aplikace</string>
+    <string name="notification_backup_disabled">Zálohování není povoleno</string>
+    <string name="backup_app_in_progress">Zálohování</string>
+    <string name="backup_app_success">Zálohováno</string>
+    <string name="restore_app_status_restored">Data obnovena</string>
+    <string name="restore_app_status_failed">Obnovení selhalo</string>
+    <string name="restore_app_status_warning">Varování o obnovení</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/app/src/main/res/values-cy/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 30e8593..3a5b233 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -17,7 +17,7 @@
     <string name="notification_success_title">Sicherung fertiggestellt</string>
     <string name="notification_title">Sicherung läuft</string>
     <string name="notification_channel_title">Sicherungsbenachrichtigung</string>
-    <string name="recovery_code_error_checksum_word">Dein Wiederherstellungsschlüssel ist ungültig. Bitte prüfe alle Wörter sowie deren Position und versuche es erneut!</string>
+    <string name="recovery_code_error_checksum_word">Dein Code ist ungültig. Bitte prüfe alle Wörter sowie deren Position und versuche es erneut!</string>
     <string name="recovery_code_error_invalid_word">Falsches Wort.</string>
     <string name="recovery_code_error_empty_word">Du hast vergessen, dieses Wort einzugeben.</string>
     <string name="recovery_code_input_hint_12">Wort 12</string>
@@ -34,7 +34,7 @@
     <string name="recovery_code_input_hint_1">Wort 1</string>
     <string name="recovery_code_done_button">Überprüfen</string>
     <string name="recovery_code_input_intro">Gib deinen aus 12 Wörtern bestehenden Wiederherstellungscode ein, den du beim Konfigurieren der Sicherungen aufgeschrieben hast.</string>
-    <string name="recovery_code_confirm_intro">Gib deinen aus 12 Wörtern bestehenden Wiederherstellungsschlüssel ein, um sicher zu gehen, dass er funktionieren wird, wenn du ihn brauchst.</string>
+    <string name="recovery_code_confirm_intro">Gib deinen aus 12 Wörtern bestehenden Wiederherstellungscode ein, um sicher zu gehen, dass er funktionieren wird, wenn du ihn brauchst.</string>
     <string name="storage_available_bytes"><xliff:g example="1 GB" id="size">%1$s</xliff:g> frei</string>
     <string name="settings_backup_apk_dialog_message">Bei deaktivierter App-Sicherung werden die App-Daten weiterhin gesichert. Sie werden jedoch nicht automatisch wiederhergestellt.
 \n
@@ -73,7 +73,7 @@
     <string name="about_design">Design von: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
     <string name="about_author">Geschrieben von: <a href="https://github.com/stevesoltys">Steve Soltys</a> und <a href="https://blog.grobox.de">Torsten Grote</a></string>
     <string name="about_license">Lizenz: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache2</a></string>
-    <string name="about_summary">Eine Sicherungsanwendung, die die interne Sicherungs-API von Android verwendet.</string>
+    <string name="about_summary">Eine Sicherungsanwendung, welche die interne Sicherungs-API von Android verwendet.</string>
     <string name="about_title">Über</string>
     <string name="storage_internal_warning_use_anyway">Trotzdem verwenden</string>
     <string name="storage_internal_warning_choose_other">Anderen wählen</string>
@@ -182,4 +182,19 @@
     <string name="notification_error_no_main_key_title">Sicherungen deaktiviert</string>
     <string name="notification_error_no_main_key_text">Generiere einen neuen Wiederherstellungscode, um das Upgrade abzuschließen und weiterhin Sicherungen zu verwenden.</string>
     <string name="storage_fake_davx5_summary_unavailable">WebDAV-Verbindung nicht verfügbar. Richte eine ein.</string>
+    <string name="notification_backup_disabled">Sicherung nicht aktiviert</string>
+    <string name="backup_app_success">Daten gesichert</string>
+    <string name="backup_app_warning">Warnhinweis zur Sicherung</string>
+    <string name="restore_app_status_failed">Wiederherstellung fehlgeschlagen</string>
+    <string name="restore_app_status_warning">Warnhinweis zur Wiederherstellung</string>
+    <string name="backup_app_in_progress">Sichern der Daten</string>
+    <string name="restore_app_status_installing">Neuinstallation</string>
+    <string name="restore_app_status_installed">Neu installiert</string>
+    <string name="restore_app_status_install_error">Kann nicht installiert werden</string>
+    <string name="restore_app_status_restored">Daten wiederhergestellt</string>
+    <string name="settings_expert_logcat_summary">Entwickler können Fehler mit Hilfe dieser Protokolle diagnostizieren.
+\n
+\nAchtung: Die Protokolldatei kann personenbezogene identifizierbare Informationen enthalten. Vor der Weitergabe überprüfen und nach der Weitergabe löschen!</string>
+    <string name="settings_expert_logcat_title">Anwendungsprotokoll speichern</string>
+    <string name="settings_expert_logcat_error">Fehler: Konnte das Anwendungsprotokoll nicht speichern</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index c2de5e1..9ab40f7 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -182,4 +182,19 @@
 \nΟρισμένες εφαρμογές (π.χ. Signal ή WhatsApp) ενδέχεται να απαιτούν την πλήρη επαναφορά των αρχείων για την εισαγωγή ενός αντιγράφου ασφαλείας. Προσπαθήστε να αποφύγετε την εκκίνηση αυτών των εφαρμογών πριν ολοκληρωθεί η επαναφορά αρχείων.</string>
     <string name="storage_fake_davx5_summary_installed">Πατήστε για να ρυθμίσετε μια προσάρτηση WebDAV</string>
     <string name="storage_fake_davx5_summary_unavailable">Η προσάρτηση WebDAV δεν είναι διαθέσιμη. Ρυθμίστε μια.</string>
+    <string name="notification_backup_disabled">Η δημιουργία αντιγράφων ασφαλείας δεν είναι ενεργοποιημένη</string>
+    <string name="backup_app_warning">Προειδοποίηση δημιουργίας αντιγράφων ασφαλείας</string>
+    <string name="restore_app_status_restored">Τα δεδομένα αποκαταστάθηκαν</string>
+    <string name="restore_app_status_failed">Η επαναφορά απέτυχε</string>
+    <string name="backup_app_in_progress">Δημιουργία αντιγράφων ασφαλείας</string>
+    <string name="restore_app_status_installing">Επανεγκατάσταση</string>
+    <string name="restore_app_status_install_error">Δεν ήταν δυνατή η εγκατάσταση</string>
+    <string name="backup_app_success">Δημιουργήθηκε αντίγραφο ασφαλείας</string>
+    <string name="restore_app_status_installed">Επανεγκαταστάθηκε</string>
+    <string name="restore_app_status_warning">Προειδοποίηση επαναφοράς</string>
+    <string name="settings_expert_logcat_summary">Οι προγραμματιστές μπορούν να διαγνώσουν σφάλματα με τα αρχεία καταγραφής.
+\n
+\nΠροειδοποίηση: Το αρχείο καταγραφής ενδέχεται να περιέχει προσωπικά αναγνωρίσιμες πληροφορίες. Ελέγξτε πριν την κοινή χρήση και στη συνέχεια διαγράψτε το!</string>
+    <string name="settings_expert_logcat_title">Αποθήκευση αρχείου καταγραφής</string>
+    <string name="settings_expert_logcat_error">Σφάλμα: Δεν ήταν δυνατή η αποθήκευση του αρχείου καταγραφής</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-en-rAU/strings.xml b/app/src/main/res/values-en-rAU/strings.xml
index a6b3dae..8c06f51 100644
--- a/app/src/main/res/values-en-rAU/strings.xml
+++ b/app/src/main/res/values-en-rAU/strings.xml
@@ -1,2 +1,200 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="settings_backup_last_backup_never">Never</string>
+    <string name="settings_auto_restore_summary_usb">Note: Your %1$s needs to be plugged in for this to work.</string>
+    <string name="settings_category_app_data_backup">App data backup</string>
+    <string name="backup">Backup</string>
+    <string name="restore_backup_button">Restore backup</string>
+    <string name="settings_backup">Backup my apps</string>
+    <string name="current_destination_string">Backup status and settings</string>
+    <string name="settings_backup_location_internal">Internal storage</string>
+    <string name="settings_backup_location_none">None</string>
+    <string name="settings_info">All backups are encrypted on your phone. To restore from backup you will need your 12-word recovery code.</string>
+    <string name="settings_auto_restore_title">Automatic restore</string>
+    <string name="settings_auto_restore_summary">When reinstalling an app, restore backed up settings and data.</string>
+    <string name="data_management_label">Seedvault Backup</string>
+    <string name="settings_backup_location">Backup location</string>
+    <string name="settings_category_apps">App backup</string>
+    <string name="settings_backup_apk_summary">Back up the apps themselves. Otherwise, only app data would get backed up.</string>
+    <string name="settings_backup_apk_dialog_cancel">Cancel</string>
+    <string name="settings_backup_apk_dialog_title">Really disable app backup\?</string>
+    <string name="settings_backup_apk_dialog_disable">Disable app backup</string>
+    <string name="settings_backup_status_summary">Last backup: %1$s</string>
+    <string name="settings_backup_exclude_apps">Exclude apps</string>
+    <string name="settings_backup_now">Backup now</string>
+    <string name="storage_fragment_backup_title">Choose where to store backups</string>
+    <string name="notification_error_title">Backup error</string>
+    <string name="notification_error_text">A device backup failed to run.</string>
+    <string name="backup_section_system">System apps</string>
+    <string name="backup_sms">SMS text messages</string>
+    <string name="restore_app_not_yet_backed_up">Was not yet backed up</string>
+    <string name="storage_fake_nextcloud_summary">Tap to install</string>
+    <string name="backup_app_success">Backed up</string>
+    <string name="backup_app_no_data">App reported no data for backup</string>
+    <string name="restore_app_quota_exceeded">Backup quota was exceeded</string>
+    <string name="restore_app_not_installed">App not installed</string>
+    <string name="restore_restoring">Restoring backup</string>
+    <string name="storage_internal_warning_choose_other">Choose other</string>
+    <string name="about_summary">A backup application using Android\'s internal backup API.</string>
+    <string name="storage_internal_warning_title">Warning</string>
+    <string name="about_license">License: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache2</a></string>
+    <string name="settings_backup_apk_title">App backup</string>
+    <string name="restore_app_not_allowed">App didn\'t allow backup</string>
+    <string name="settings_expert_quota_summary">Do not impose a limitation on the size of app backups.
+\n
+\nWarning: This can fill up your storage location quickly. Not needed for most apps.</string>
+    <string name="settings_backup_status_title">Backup status</string>
+    <string name="storage_fake_nextcloud_summary_unavailable_market">Not installed</string>
+    <string name="storage_check_fragment_restore_title">Looking for backups…</string>
+    <string name="recovery_code_input_hint_5">Word 5</string>
+    <string name="recovery_code_verification_ok_title">Recovery code verified</string>
+    <string name="settings_backup_apk_dialog_message">Disabled app backup will still back up app data. However, it will not get restored automatically.
+\n
+\nYou will need to install all your apps manually while having \"Automatic Restore\" switched on.</string>
+    <string name="storage_check_fragment_backup_title">Initialising backup location…</string>
+    <string name="recovery_code_input_hint_4">Word 4</string>
+    <string name="settings_expert_logcat_summary">Developers can diagnose bugs with these logs.
+\n
+\nWarning: The log file might contain personally identifiable information. Review before and delete after sharing!</string>
+    <string name="storage_check_fragment_backup_error">An error occurred while accessing the backup location.</string>
+    <string name="storage_fragment_warning">People with access to your storage location can learn which apps you use, but do not get access to the apps\' data.</string>
+    <string name="storage_fake_drive_title">USB flash drive</string>
+    <string name="storage_fake_davx5_summary_unavailable">WebDAV mount not available. Set one up.</string>
+    <string name="recovery_code_confirm_intro">Enter your 12-word recovery code to ensure that it will work when you need it.</string>
+    <string name="recovery_code_input_hint_12">Word 12</string>
+    <string name="recovery_code_input_hint_10">Word 10</string>
+    <string name="recovery_code_verification_error_message">You have entered an invalid recovery code. Please try again!
+\n
+\nIf you have lost your code, tap on \'Generate new code\' below.</string>
+    <string name="recovery_code_recreated">New recovery code has been created successfully</string>
+    <string name="restore_set_empty_result">No suitable backups found at given location.
+\n
+\nThis is most likely due to a wrong recovery code or a storage error.</string>
+    <string name="restore_app_was_stopped">Was not backed up as it hadn\'t been used recently</string>
+    <string name="restore_choose_restore_set">Choose a backup to restore</string>
+    <string name="backup_app_warning">Backup warning</string>
+    <string name="notification_failed_title">Backup failed</string>
+    <string name="restore_title">Restore from backup</string>
+    <string name="restore_invalid_location_title">No backups found</string>
+    <string name="restore_app_status_installing">Re-installing</string>
+    <string name="error_no_store">Error: No app store installed</string>
+    <string name="backup_app_not_yet_backed_up">Waiting to back up…</string>
+    <string name="backup_section_not_allowed">Apps that do not allow data backup</string>
+    <string name="restore_app_status_installed">Re-installed</string>
+    <string name="restore_app_status_install_error">Could not install</string>
+    <string name="restore_invalid_location_message">We could not find any backups at this location.
+\n
+\nPlease choose another location that contains a %s folder.</string>
+    <string name="restore_set_error">An error occurred while loading the backups.</string>
+    <string name="restore_installing_tap_to_install">Tap to install</string>
+    <string name="restore_next">Next</string>
+    <string name="restore_installing_packages">Re-installing apps</string>
+    <string name="restore_app_status_restored">Data restored</string>
+    <string name="restore_app_status_failed">Restore failed</string>
+    <string name="restore_storage_skip">Skip restoring files</string>
+    <string name="about_title">About</string>
+    <string name="restore_storage_choose_snapshot">Choose a storage backup to restore (experimental)</string>
+    <string name="restore_storage_in_progress_title">Files are being restored…</string>
+    <string name="restore_storage_got_it">Got it</string>
+    <string name="storage_internal_warning_message">You have chosen internal storage for your backup. This will not be available when your phone is lost or broken.</string>
+    <string name="about_version">Version: %s</string>
+    <string name="about_source_code">Source code: https://github.com/seedvault-app/seedvault</string>
+    <string name="settings_backup_storage_dialog_message">Backing up files is still experimental and might not work. Do not rely on it for important data.</string>
+    <string name="settings_category_storage">Storage backup (experimental)</string>
+    <string name="settings_backup_storage_title">Backup my files</string>
+    <string name="settings_backup_files_title">Included files and folders</string>
+    <string name="settings_backup_files_summary">None</string>
+    <string name="settings_backup_recovery_code">Recovery code</string>
+    <string name="settings_backup_recovery_code_summary">Verify existing code or generate a new one</string>
+    <string name="settings_backup_storage_dialog_title">Experimental feature</string>
+    <string name="settings_backup_storage_dialog_ok">Enable anyway</string>
+    <string name="settings_expert_title">Expert settings</string>
+    <string name="settings_expert_quota_title">Unlimited app quota</string>
+    <string name="settings_backup_storage_battery_optimization">Warning: No automatic backups, because battery optimization is active.</string>
+    <string name="settings_backup_new_code_dialog_title">New recovery code required</string>
+    <string name="settings_backup_new_code_dialog_message">To continue using app backups, you need to generate a new recovery code.
+\n
+\nWe are sorry for the inconvenience.</string>
+    <string name="settings_backup_new_code_code_dialog_ok">New code</string>
+    <string name="recovery_code_input_hint_3">Word 3</string>
+    <string name="backup_settings">Device settings</string>
+    <string name="storage_internal_warning_use_anyway">Use anyway</string>
+    <string name="about_sponsor">Sponsored by: <a href="https://www.calyxinstitute.org">Calyx Institute</a> for use in <a href="https://calyxos.org">CalyxOS</a></string>
+    <string name="storage_fake_davx5_summary_installed">Tap to set up a WebDAV mount</string>
+    <string name="recovery_code_error_invalid_word">Wrong word.</string>
+    <string name="recovery_code_verification_ok_message">Your code is correct and will work for restoring your backup.</string>
+    <string name="recovery_code_error_checksum_word">Your code is invalid. Please check all words as well as their position and try again!</string>
+    <string name="recovery_code_verification_error_title">Incorrect recovery code</string>
+    <string name="settings_expert_logcat_title">Save app log</string>
+    <string name="settings_expert_logcat_error">Error: Could not save app log</string>
+    <string name="storage_fragment_restore_title">Where to find your backups\?</string>
+    <string name="storage_fragment_warning_delete">Existing backups in this location will be deleted.</string>
+    <string name="storage_fake_drive_summary">Needs to be plugged in</string>
+    <string name="storage_available_bytes"><xliff:g example="1 GB" id="size">%1$s</xliff:g> free</string>
+    <string name="storage_fake_nextcloud_summary_installed">Tap to set up account</string>
+    <string name="storage_fake_nextcloud_summary_unavailable">Account not available. Set one up (or disable passcode).</string>
+    <string name="storage_check_fragment_patience">This may take some time…</string>
+    <string name="storage_check_fragment_permission_error">Unable to get the permission to write to the backup location.</string>
+    <string name="storage_check_fragment_error_button">Back</string>
+    <string name="recovery_code_title">Recovery code</string>
+    <string name="recovery_code_12_word_intro">You need your 12-word recovery code to restore backed up data.</string>
+    <string name="recovery_code_write_it_down">Write it down on paper now!</string>
+    <string name="recovery_code_confirm_button">Confirm code</string>
+    <string name="recovery_code_input_intro">Enter your 12-word recovery code that you wrote down when setting up backups.</string>
+    <string name="recovery_code_done_button">Verify</string>
+    <string name="recovery_code_input_hint_1">Word 1</string>
+    <string name="recovery_code_input_hint_2">Word 2</string>
+    <string name="recovery_code_input_hint_7">Word 7</string>
+    <string name="recovery_code_input_hint_6">Word 6</string>
+    <string name="recovery_code_input_hint_8">Word 8</string>
+    <string name="recovery_code_input_hint_9">Word 9</string>
+    <string name="recovery_code_input_hint_11">Word 11</string>
+    <string name="recovery_code_error_empty_word">You forgot to enter this word.</string>
+    <string name="recovery_code_verification_try_again">Try again</string>
+    <string name="recovery_code_verification_generate_new">Generate new code</string>
+    <string name="recovery_code_verification_new_dialog_title">Wait one second…</string>
+    <string name="recovery_code_verification_new_dialog_message">Generating a new code will make your existing backups inaccessible. We\'ll try to delete them if possible.
+\n
+\nAre you sure you want to do this\?</string>
+    <string name="recovery_code_auth_title">Re-enter your screen lock</string>
+    <string name="recovery_code_auth_description">Enter your device credentials to continue</string>
+    <string name="notification_channel_title">Backup notification</string>
+    <string name="notification_title">Backup running</string>
+    <string name="notification_backup_already_running">Backup already in progress</string>
+    <string name="notification_backup_disabled">Backup not enabled</string>
+    <string name="notification_success_title">Backup finished</string>
+    <string name="notification_success_text">%1$d of %2$d apps backed up. Tap to learn more.</string>
+    <string name="notification_error_channel_title">Error notification</string>
+    <string name="notification_error_action">Fix</string>
+    <string name="notification_restore_error_channel_title">Auto restore flash drive error</string>
+    <string name="notification_restore_error_title">Could not restore data for %1$s</string>
+    <string name="notification_restore_error_text">Plug in your %1$s before installing the app to restore its data from backup.</string>
+    <string name="notification_restore_error_action">Uninstall app</string>
+    <string name="notification_error_no_main_key_title">Backups disabled</string>
+    <string name="notification_error_no_main_key_text">Generate a new recovery code to complete upgrade and continue to use backups.</string>
+    <string name="backup_call_log">Call history</string>
+    <string name="backup_contacts">Local contacts</string>
+    <string name="backup_section_user">Installed apps</string>
+    <string name="backup_app_in_progress">Backing up</string>
+    <string name="backup_app_was_stopped">Not backed up as it wasn\'t used recently</string>
+    <string name="backup_app_quota_exceeded">Backup quota exceeded</string>
+    <string name="restore_restore_set_times">Last backup %1$s · First %2$s.</string>
+    <string name="restore_skip">Don\'t restore</string>
+    <string name="restore_skip_apps">Skip restoring apps</string>
+    <string name="restore_app_status_warning">Restore warning</string>
+    <string name="restore_installing_error_title">Some apps not installed</string>
+    <string name="restore_installing_error_message">Data can only be restored if an app is installed.
+\n
+\nTap failed apps to try to install them manually before proceeding.</string>
+    <string name="restore_restoring_error_title">Unable to restore some apps</string>
+    <string name="restore_restoring_error_message">You can re-install these apps manually and Automatic restore will attempt to restore their data (when enabled).</string>
+    <string name="restore_magic_package">System package manager</string>
+    <string name="restore_finished_success">Restore complete</string>
+    <string name="restore_finished_error">An error occurred while restoring the backup.</string>
+    <string name="restore_finished_button">Finish</string>
+    <string name="restore_storage_in_progress_info">Your files are being restored in the background. You can start using your phone while this is running.
+\n
+\nSome apps (e.g. Signal or WhatsApp) might require files to be fully restored to import a backup. Try to avoid starting those apps before file restore is complete.</string>
+    <string name="about_author">Written by: <a href="https://github.com/stevesoltys">Steve Soltys</a> and <a href="https://blog.grobox.de">Torsten Grote</a></string>
+    <string name="about_design">Design by: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 29ff092..a5d46c1 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -38,9 +38,9 @@
     <string name="notification_error_action">Corregir</string>
     <string name="about_sponsor">Patrocinado por: <a href="https://www.calyxinstitute.org">Instituto Calyx</a> para usar en <a href="https://calyxos.org">CalyxOS</a></string>
     <string name="about_design">Diseño por: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
-    <string name="about_author">Escrito por: <a href="https://github.com/stevesoltys"> Steve Soltys </a> y <a href="https://blog.grobox.de"> Torsten Grote </a></string>
+    <string name="about_author">Realizada por: <a href="https://github.com/stevesoltys">Steve Soltys</a> y <a href="https://blog.grobox.de">Torsten Grote</a></string>
     <string name="about_license">Licencia: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache2</a></string>
-    <string name="about_summary">Una aplicación de copia de seguridad que utiliza la API de copia de seguridad interna de Android.</string>
+    <string name="about_summary">Una aplicación para copias de seguridad que utiliza la API interna de Android para ello.</string>
     <string name="storage_internal_warning_choose_other">Escoger otro</string>
     <string name="storage_internal_warning_message">Ha elegido almacenamiento interno para su copia de seguridad. Esto no estará disponible cuando su teléfono se pierda o se rompa.</string>
     <string name="restore_finished_error">Ocurrió un error al restaurar la copia de seguridad.</string>
@@ -113,7 +113,7 @@
     <string name="data_management_label">Copia de seguridad de Seedvault</string>
     <string name="restore_restoring_error_message">Puede reinstalar estas aplicaciones manualmente y la restauración automática intentará restaurar sus datos (cuando esté activada).</string>
     <string name="backup_app_not_yet_backed_up">Esperando para la copia de seguridad…</string>
-    <string name="about_version">Versión: %s</string>
+    <string name="about_version">Edición: %s</string>
     <string name="restore_restoring_error_title">No se pueden restaurar algunas aplicaciones</string>
     <string name="restore_installing_tap_to_install">Pulse para instalar</string>
     <string name="restore_installing_error_message">Los datos solo se pueden restaurar si se ha instalado una aplicación.
@@ -182,4 +182,19 @@
     <string name="error_no_store">Error: No hay ninguna tienda de aplicaciones instalada</string>
     <string name="storage_fake_davx5_summary_installed">Toque para configurar un montaje WebDAV</string>
     <string name="storage_fake_davx5_summary_unavailable">El montaje de WebDAV no está disponible. Configure uno.</string>
+    <string name="notification_backup_disabled">Copia de seguridad no activada</string>
+    <string name="backup_app_in_progress">Copia de seguridad en progreso</string>
+    <string name="backup_app_success">Datos guardados</string>
+    <string name="restore_app_status_failed">La restauración ha fallado</string>
+    <string name="restore_app_status_warning">Advertencia sobre la restauración</string>
+    <string name="restore_app_status_installing">Reinstalando</string>
+    <string name="backup_app_warning">Advertencia sobre la copia de seguridad</string>
+    <string name="restore_app_status_installed">Reinstalado</string>
+    <string name="restore_app_status_restored">Datos restaurados</string>
+    <string name="restore_app_status_install_error">No se ha podido instalar</string>
+    <string name="settings_expert_logcat_summary">Los desarrolladores pueden diagnosticar errores con estos registros.
+\n
+\nAdvertencia: el archivo de registro puede contener información personal. ¡Revíselo antes y elimínelo después de compartirlo!</string>
+    <string name="settings_expert_logcat_error">Error: no se pudo guardar el registro</string>
+    <string name="settings_expert_logcat_title">Guardar el registro de la aplicación</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-fr-rCA/strings.xml b/app/src/main/res/values-fr-rCA/strings.xml
index a6b3dae..8d7b88d 100644
--- a/app/src/main/res/values-fr-rCA/strings.xml
+++ b/app/src/main/res/values-fr-rCA/strings.xml
@@ -1,2 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="about_license">License: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache2</a></string>
+    <string name="about_design">Conception par: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
+    <string name="about_sponsor">Sponsorisé par: <a href="https://www.calyxinstitute.org">Calyx Institute</a>pour une utilisation sur <a href="https://calyxos.org">CalyxOs</a></string>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index c118e2b..09882d9 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -182,4 +182,14 @@
     <string name="notification_error_no_main_key_title">Sauvegardes désactivées</string>
     <string name="storage_fake_davx5_summary_unavailable">Le montage WebDAV n\'est pas disponible. Veuillez en configurer un.</string>
     <string name="error_no_store">Erreur\t : Aucun app store installé</string>
+    <string name="notification_backup_disabled">Sauvegardes désactivées</string>
+    <string name="backup_app_in_progress">Sauvegarde en cours</string>
+    <string name="backup_app_success">Sauvegardé</string>
+    <string name="backup_app_warning">Alerte de sauvegarde</string>
+    <string name="restore_app_status_installing">Ré-installation</string>
+    <string name="restore_app_status_installed">Ré-installé</string>
+    <string name="restore_app_status_install_error">Échec de l\'installation</string>
+    <string name="restore_app_status_restored">Données restaurées</string>
+    <string name="restore_app_status_failed">Échec de la restauration</string>
+    <string name="restore_app_status_warning">Alerte de restauration</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-gd/strings.xml b/app/src/main/res/values-gd/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/app/src/main/res/values-gd/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml
index c29e726..25b0e1e 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -126,7 +126,7 @@
     <string name="backup_section_not_allowed">יישומונים שלא מרשים גיבוי נתונים</string>
     <string name="restore_installing_tap_to_install">יש לגעת כדי להתקין</string>
     <string name="restore_restoring_error_title">לא ניתן לשחזר חלק מהיישומונים</string>
-    <string name="about_version">גירסה: %s</string>
+    <string name="about_version">גרסה: %s</string>
     <string name="storage_fragment_warning_delete">גיבויים קיימים במקום הזה יימחקו.</string>
     <string name="storage_fake_nextcloud_summary_unavailable_market">לא מותקן</string>
     <string name="storage_check_fragment_patience">עשוי לארוך זמן מה…</string>
@@ -182,4 +182,19 @@
 \nחלק מהיישומונים (כמו למשל סיגנל ו־WhatsApp) עשויים לדרוש שחזור מלא כדי לייבא גיבוי. מומלץ לנסות להימנע מהפעלת היישומונים האלו בטרם השלמת השחזור.</string>
     <string name="storage_fake_davx5_summary_installed">להקמת עיגון WebDAV יש לגעת כאן</string>
     <string name="storage_fake_davx5_summary_unavailable">עיגון WebDAV לא זמין. יש להקים אחד.</string>
+    <string name="notification_backup_disabled">גיבוי לא מופעל</string>
+    <string name="backup_app_in_progress">מתבצע גיבוי</string>
+    <string name="backup_app_success">הגיבוי הושלם</string>
+    <string name="restore_app_status_installing">מתבצעת התקנה מחדש</string>
+    <string name="restore_app_status_installed">הותקן מחדש</string>
+    <string name="restore_app_status_install_error">לא ניתן להתקין</string>
+    <string name="restore_app_status_restored">הנתונים שוחזרו</string>
+    <string name="restore_app_status_failed">השחזור נכשל</string>
+    <string name="restore_app_status_warning">אזהרת שחזור</string>
+    <string name="backup_app_warning">אזהרת גיבוי</string>
+    <string name="settings_expert_logcat_title">שמירת יומן היישומון</string>
+    <string name="settings_expert_logcat_error">שגיאה: לא ניתן לשמור את יומן היישומון</string>
+    <string name="settings_expert_logcat_summary">המפתחים יכולים לנתח תקלות בעזרת היומנים האלה.
+\n
+\nאזהרה: קובץ היומן יכול להכיל מידע שיכול לחשוף את זהותך. מוטב לעבור עליו לפני ולמחוק אותו לאחר השיתוף!</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 0544df6..1951fbb 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -8,7 +8,7 @@
     <string name="notification_success_title">Backup finito</string>
     <string name="notification_title">Backup in esecuzione</string>
     <string name="notification_channel_title">Notificazione backup</string>
-    <string name="recovery_code_error_checksum_word">Il tuo codice non è valido, Controlla tutte le parole e riprova!</string>
+    <string name="recovery_code_error_checksum_word">Il tuo codice non è valido. Controlla tutte le parole e le loro posizioni e riprova!</string>
     <string name="recovery_code_error_invalid_word">Parola sbagliata.</string>
     <string name="recovery_code_error_empty_word">Hai dimenticato di inserire questa parola.</string>
     <string name="recovery_code_input_hint_12">Parola 12</string>
@@ -23,7 +23,7 @@
     <string name="recovery_code_input_hint_3">Parola 3</string>
     <string name="recovery_code_input_hint_2">Parola 2</string>
     <string name="recovery_code_input_hint_1">Parola 1</string>
-    <string name="recovery_code_done_button">Fatto</string>
+    <string name="recovery_code_done_button">Verifica</string>
     <string name="recovery_code_confirm_button">Conferma Codice</string>
     <string name="recovery_code_title">Codice di Recupero</string>
     <string name="storage_check_fragment_error_button">Indietro</string>
@@ -72,7 +72,7 @@
     <string name="about_author">Scritto da: <a href="https://github.com/stevesoltys">Steve Soltys</a> e<a href="https://blog.grobox.de">Torsten Grote</a></string>
     <string name="about_license">Licenza: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache2</a></string>
     <string name="about_version">Versione: %s</string>
-    <string name="about_summary">Una applicazione di backup sta utilizzando la API interna di backup di Android.</string>
+    <string name="about_summary">Una applicazione di backup facente uso della API interna di backup di Android.</string>
     <string name="about_title">Ulteriori info</string>
     <string name="storage_internal_warning_use_anyway">Utilizza comunque</string>
     <string name="storage_internal_warning_choose_other">Scegliere altro</string>
@@ -115,7 +115,7 @@
     <string name="backup_call_log">Storico delle chiamate</string>
     <string name="backup_settings">opzioni del dispositivo</string>
     <string name="backup_sms">messaggi di testo SMS</string>
-    <string name="backup_section_system">App di Sistema</string>
+    <string name="backup_section_system">App di sistema</string>
     <string name="notification_restore_error_action">Disinstalla app</string>
     <string name="notification_restore_error_text">Connetti il tuo %1$s prima di installare l\'app per ripristinare i suoi dati dal backup.</string>
     <string name="notification_restore_error_title">Non e\' stato possibile ripristinare i dati per %1$s</string>
@@ -130,4 +130,71 @@
     <string name="recovery_code_input_intro">Inserisi il tuo codice di recupero composto da 12 parole che ti sei annotato quando hai inizializzato i backup.</string>
     <string name="storage_fake_nextcloud_summary_unavailable">Account non disponibile. Crearne uno ora (o disabilitare la passcode).</string>
     <string name="settings_backup_status_title">Stato del backup</string>
+    <string name="settings_backup_storage_dialog_title">Funzionalità sperimentale</string>
+    <string name="settings_backup_files_summary">Nessuno</string>
+    <string name="settings_category_storage">Backup archiviazione (sperimentale)</string>
+    <string name="settings_backup_files_title">Includi file e cartelle</string>
+    <string name="settings_backup_storage_dialog_ok">Abilita comunque</string>
+    <string name="recovery_code_verification_new_dialog_title">Aspetta un secondo…</string>
+    <string name="recovery_code_verification_generate_new">Genera nuovo codice</string>
+    <string name="recovery_code_verification_error_title">Codice di recupero errato</string>
+    <string name="recovery_code_verification_try_again">Prova di nuovo</string>
+    <string name="backup_app_success">Backup eseguito</string>
+    <string name="backup_app_warning">Avviso di backup</string>
+    <string name="restore_app_status_restored">Dati ripristinati</string>
+    <string name="restore_app_status_failed">Ripristino fallito</string>
+    <string name="restore_app_status_warning">Avviso di ripristino</string>
+    <string name="error_no_store">Errore: Nessun app store installato</string>
+    <string name="restore_storage_choose_snapshot">Scegli un backup di archiviazione da ripristinare (sperimentale)</string>
+    <string name="restore_storage_in_progress_title">I file stanno venendo ripristinati…</string>
+    <string name="settings_category_apps">Backup dell\'applicazione</string>
+    <string name="settings_backup_storage_title">Esegui backup dei miei file</string>
+    <string name="settings_expert_quota_title">Quota di app illimitata</string>
+    <string name="settings_expert_quota_summary">Non imporre limiti alle dimensioni dei backup delle app.
+\n
+\nAttenzione: Questo può riempire rapidamente la tua memoria di archiviazione. Non necessario per la maggior parte delle applicazioni.</string>
+    <string name="settings_backup_recovery_code">Codice di recupero</string>
+    <string name="settings_backup_recovery_code_summary">Verifica il codice esistente o genera un nuovo codice</string>
+    <string name="settings_backup_storage_dialog_message">Il backup dei file è ancora sperimentale e potrebbe non funzionare. Non fare affidamento su di esso per i dati importanti.</string>
+    <string name="settings_expert_title">Impostazioni per esperti</string>
+    <string name="recovery_code_verification_ok_title">Codice di recupero verificato</string>
+    <string name="settings_backup_storage_battery_optimization">Attenzione: Nessun backup automatico, perché l\'ottimizzazione della batteria è attiva.</string>
+    <string name="settings_backup_new_code_dialog_title">Nuovo codice di recupero richiesto</string>
+    <string name="settings_backup_new_code_dialog_message">Per continuare ad usare il backup delle applicazioni, devi generare un nuovo codice di recupero.
+\n
+\nCi dispiace per l\'inconvenienza.</string>
+    <string name="settings_backup_new_code_code_dialog_ok">Nuovo codice</string>
+    <string name="storage_check_fragment_patience">Questo potrebbe richiedere del tempo…</string>
+    <string name="restore_skip_apps">Salta ripristino applicazioni</string>
+    <string name="notification_backup_disabled">Backup non abilitato</string>
+    <string name="settings_expert_logcat_title">Salva log app</string>
+    <string name="settings_expert_logcat_summary">Gli sviluppatori possono diagnosticare bug con questi log.
+\n
+\nAttenzione: il file di registro potrebbe contenere informazioni di identificazione personale. Controlla prima ed elimina dopo la condivisione!</string>
+    <string name="settings_expert_logcat_error">Errore: impossibile salvare il log dell\'app</string>
+    <string name="storage_fragment_warning_delete">I backup esistenti in questa posizione verranno cancellati.</string>
+    <string name="storage_fake_nextcloud_summary_unavailable_market">Non installato</string>
+    <string name="storage_fake_davx5_summary_installed">Tocca per impostare un supporto WebDAV</string>
+    <string name="storage_fake_davx5_summary_unavailable">Supporto WebDAV non dipsonibile. Impostane uno.</string>
+    <string name="recovery_code_verification_ok_message">Il codice è corretto e funzionerà per ripristinare il backup.</string>
+    <string name="recovery_code_verification_error_message">Hai inserito un codice di recupero non valido. Riprova!
+\n
+\nSe hai perso il tuo codice, tocca \'Genera nuovo codice\' qui sotto.</string>
+    <string name="recovery_code_verification_new_dialog_message">Generare un nuovo codice renderà inaccessibili i backup esistenti. Se possibile, cercheremo di eliminarli.
+\n
+\nSei sicuro di volerlo fare\?</string>
+    <string name="recovery_code_recreated">Nuovo codice di recupero creato con successo</string>
+    <string name="recovery_code_auth_title">Reinserire il blocco dello schermo</string>
+    <string name="recovery_code_auth_description">Inserisci le credenziali del tuo dispositivo per continuare</string>
+    <string name="notification_error_no_main_key_title">Backup disabilitati</string>
+    <string name="notification_error_no_main_key_text">Genera un nuovo codice di recupero per completare l\'aggiornamento e continuare a utilizzare i backup.</string>
+    <string name="backup_app_in_progress">Eseguendo il backup</string>
+    <string name="restore_app_status_installing">Reinstallando</string>
+    <string name="restore_app_status_installed">Reinstallato</string>
+    <string name="restore_app_status_install_error">Impossibile installare</string>
+    <string name="restore_storage_skip">Salta ripristino file</string>
+    <string name="restore_storage_in_progress_info">I file stanno venendo ripristinati in background. Puoi iniziare a usare il telefono mentre è in esecuzione.
+\n
+\nAlcune app (ad es. Signal o WhatsApp) potrebbero richiedere il ripristino completo dei file per importare un backup. Cercate di evitare di avviare le applicazioni prima che il ripristino dei file è completo.</string>
+    <string name="restore_storage_got_it">Capito</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 54bcbe5..a6bee1f 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="notification_success_title">バックアップが完了しました</string>
-    <string name="notification_title">バックアップを実行しています</string>
-    <string name="notification_failed_title">バックアップが失敗しました</string>
-    <string name="notification_backup_already_running">バックアップはすでに進行しています</string>
-    <string name="recovery_code_verification_error_title">リカバリーコードが違っています</string>
+    <string name="notification_title">バックアップ中</string>
+    <string name="notification_failed_title">バックアップに失敗しました</string>
+    <string name="notification_backup_already_running">バックアップはすでに進行中です</string>
+    <string name="recovery_code_verification_error_title">リカバリーコードが正しくありません</string>
     <string name="recovery_code_verification_ok_title">リカバリーコードが確認されました</string>
-    <string name="recovery_code_verification_new_dialog_message">新しくコードを生成すると、作成済みのバックアップにアクセスできなくなります。システムはいままでのバックアップを削除します。
+    <string name="recovery_code_verification_new_dialog_message">新しいコードを生成すると、既存のバックアップにアクセスできなり、可能な場合、削除されます。
 \n
-\n本当に実行しますか?</string>
-    <string name="recovery_code_verification_new_dialog_title">ちょっと待って…</string>
+\n本当に、実行しますか?</string>
+    <string name="recovery_code_verification_new_dialog_title">少しお待ちください…</string>
     <string name="recovery_code_verification_error_message">リカバリーコードが無効です。もう一度入力してください!
 \n
 \nコードを紛失した場合は、下の「新しいコードを生成」をタップしてください。</string>
@@ -17,158 +17,169 @@
     <string name="recovery_code_title">リカバリーコード</string>
     <string name="storage_fake_drive_title">USBフラッシュドライブ</string>
     <string name="settings_backup_recovery_code">リカバリーコード</string>
-    <string name="settings_backup_now">バックアップを実行する</string>
-    <string name="settings_backup_exclude_apps">除外するアプリ</string>
-    <string name="settings_backup_status_summary">最後のバックアップ: %1$s</string>
-    <string name="settings_backup_status_title">バックアップ状態</string>
-    <string name="settings_backup_apk_dialog_disable">アプリのバックアップを無効化する</string>
+    <string name="settings_backup_now">今すぐバックアップ</string>
+    <string name="settings_backup_exclude_apps">アプリを除外する</string>
+    <string name="settings_backup_status_summary">最後のバックアップ: %1$s</string>
+    <string name="settings_backup_status_title">バックアップの状況</string>
+    <string name="settings_backup_apk_dialog_disable">アプリのバックアップを無効にする</string>
     <string name="settings_backup_apk_dialog_cancel">キャンセル</string>
     <string name="settings_backup_apk_title">アプリのバックアップ</string>
-    <string name="settings_category_app_data_backup">アプリのデータのバックアップ</string>
-    <string name="settings_auto_restore_summary_usb">注意:うまく動作するため、 %1$s を接続する必要があります。</string>
-    <string name="settings_auto_restore_summary">アプリを再インストールするとき、バックアップした設定とデータを復元する。</string>
+    <string name="settings_category_app_data_backup">アプリデータのバックアップ</string>
+    <string name="settings_auto_restore_summary_usb">注:これを機能させるには、%1$s を接続する必要があります。</string>
+    <string name="settings_auto_restore_summary">アプリを再インストールするとき、バックアップした設定とデータを復元します。</string>
     <string name="settings_auto_restore_title">自動復元</string>
-    <string name="settings_info">すべてのバックアップは端末に暗号化した状態で保存されています。バックアップから復元するため、12単語のリカバリーコードが必要です。</string>
+    <string name="settings_info">すべてのバックアップは端末に暗号化された状態で保存されています。バックアップから復元するため、12の単語のからなるリカバリーコードが必要です。</string>
     <string name="settings_backup_location_internal">内部ストレージ</string>
     <string name="settings_backup_location_none">なし</string>
-    <string name="settings_backup_location">バックアップの場所</string>
+    <string name="settings_backup_location">バックアップ先の場所</string>
     <string name="settings_backup">自分のアプリをバックアップする</string>
     <string name="restore_backup_button">バックアップを復元する</string>
-    <string name="current_destination_string">状態と設定をバックアップする</string>
+    <string name="current_destination_string">バックアップの状態と設定</string>
     <string name="data_management_label">SeedVault バックアップ</string>
     <string name="backup">バックアップ</string>
-    <string name="storage_fake_nextcloud_summary_installed">タップしてアカウントをセットアップする</string>
+    <string name="storage_fake_nextcloud_summary_installed">タップしてアカウントをセットアップ</string>
     <string name="storage_fake_nextcloud_summary">タップしてインストールする</string>
     <string name="settings_backup_apk_dialog_title">本当にアプリのバックアップを無効にしますか?</string>
     <string name="settings_backup_last_backup_never">未実施</string>
-    <string name="storage_check_fragment_backup_error">バックアップアクセス時にエラー発生。</string>
+    <string name="storage_check_fragment_backup_error">バックアップ先へのアクセス中にエラーが発生しました。</string>
     <string name="notification_error_title">バックアップエラー</string>
-    <string name="recovery_code_recreated">新規リカバリーコードの作成に成功しました</string>
-    <string name="recovery_code_verification_try_again">もう一度、入力してください</string>
-    <string name="recovery_code_error_checksum_word">入力したコードは無効です。すべての単語と、その位置をもう一度確認してください!</string>
+    <string name="recovery_code_recreated">新しいリカバリコードが正常に生成されました</string>
+    <string name="recovery_code_verification_try_again">もう一度試してください</string>
+    <string name="recovery_code_error_checksum_word">入力したコードは無効です。すべての単語と、その位置をもう一度確認してください!</string>
     <string name="recovery_code_done_button">確認する</string>
-    <string name="recovery_code_input_intro">バックアップの作成時に書いた12文字のリカバリーコードを入力してください。</string>
+    <string name="recovery_code_input_intro">バックアップの作成時に紙などに書き留めた 12 単語のリカバリーコードを入力してください。</string>
     <string name="recovery_code_confirm_button">コードを確認する</string>
-    <string name="recovery_code_write_it_down">紙などにリカバリーコードを書いてください!</string>
-    <string name="recovery_code_12_word_intro">データのバックアップを作成するために12文字のリカバリーコードが必要です。</string>
-    <string name="storage_fake_drive_summary">ケーブルを接続してください</string>
-    <string name="storage_fragment_backup_title">バックアップを保存する場所の選択してください</string>
-    <string name="settings_backup_recovery_code_summary">既存のコードで認証するか、新しいコードを生成する</string>
-    <string name="storage_fake_nextcloud_summary_unavailable">アカウントが見つかりません。新たなアカウントを作成する(もしくはパスコードを無効にする)。</string>
-    <string name="settings_backup_apk_summary">アプリそのものをバックアップする。さもなければアプリのデータのみがバックアップされます。</string>
-    <string name="about_title">このアプリに関して</string>
-    <string name="recovery_code_confirm_intro">必要な時に使えるように12文字のリカバリーコードを入力してください。</string>
-    <string name="storage_available_bytes"><xliff:g example="1 GB" id="size">%1$s</xliff:g> 空き</string>
+    <string name="recovery_code_write_it_down">今すぐ紙などに書き留めてください!</string>
+    <string name="recovery_code_12_word_intro">データのバックアップを作成するために 12 の単語からなるリカバリーコードが必要です。</string>
+    <string name="storage_fake_drive_summary">接続する必要があります</string>
+    <string name="storage_fragment_backup_title">バックアップを保存する場所を選択してください</string>
+    <string name="settings_backup_recovery_code_summary">既存のコードを確認するか、新しいコードを生成します</string>
+    <string name="storage_fake_nextcloud_summary_unavailable">アカウントが見つかりません。新しくセットアップします。 (またはパスコードを無効にします)。</string>
+    <string name="settings_backup_apk_summary">アプリ自体をバックアップします。そうしないと、アプリデータのみがバックアップされます。</string>
+    <string name="about_title">このアプリについて</string>
+    <string name="recovery_code_confirm_intro">12 単語のリカバリコードを入力して、必要なときに機能することを確認してください。</string>
+    <string name="storage_available_bytes"><xliff:g example="1 GB" id="size">%1$s</xliff:g> の空き</string>
     <string name="about_license">ライセンス: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache2</a></string>
-    <string name="about_author">筆者: <a href="https://github.com/stevesoltys">Steve Soltys</a> and <a href="https://blog.grobox.de">Torsten Grote</a></string>
+    <string name="about_author">コーディング: <a href="https://github.com/stevesoltys">Steve Soltys</a> と <a href="https://blog.grobox.de">Torsten Grote</a></string>
     <string name="about_design">デザイン: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
     <string name="about_source_code">ソースコード: https://github.com/seedvault-app/seedvault</string>
-    <string name="about_sponsor">スポンサー: <a href="https://www.calyxinstitute.org">Calyx Institute</a> <a href="https://calyxos.org">CalyxOS</a>の為に</string>
+    <string name="about_sponsor">スポンサー: <a href="https://www.calyxinstitute.org">Calyx Institute</a> <a href="https://calyxos.org">CalyxOS</a>に使われています</string>
     <string name="about_version">バージョン: %s</string>
-    <string name="about_summary">Androidに内蔵されているバックアップAPIを利用したバックアップアプリケーションです。</string>
+    <string name="about_summary">Android の内部バックアップ API を使用したバックアップアプリケーションです。</string>
     <string name="storage_internal_warning_use_anyway">とにかく使う</string>
-    <string name="storage_internal_warning_choose_other">それ以外を選ぶ</string>
-    <string name="storage_internal_warning_message">バックアップに内部ストレージを選択しました。スマホの紛失や故障の際には利用することができません。</string>
+    <string name="storage_internal_warning_choose_other">他の場所を選択</string>
+    <string name="storage_internal_warning_message">バックアップに内部ストレージを選択しました。お使いの携帯電話が紛失または破損した場合、これは利用できません。</string>
     <string name="storage_internal_warning_title">警告</string>
     <string name="restore_finished_button">終了</string>
     <string name="restore_finished_error">バックアップの復元中にエラーが発生しました。</string>
     <string name="restore_finished_success">復元完了</string>
     <string name="restore_magic_package">システムパッケージマネージャー</string>
-    <string name="restore_restoring_error_message">これらのアプリは手動で再インストールすることができ、自動復元ではデータの復元が試みられます(有効な場合)。</string>
+    <string name="restore_restoring_error_message">これらのアプリは手動で再インストールすることができ、自動復元ではデータの復元が試みられます(有効な場合)。</string>
     <string name="restore_restoring_error_title">一部のアプリを復元できません</string>
-    <string name="restore_restoring">バックアップの復元</string>
-    <string name="restore_next">次</string>
+    <string name="restore_restoring">バックアップの復元中</string>
+    <string name="restore_next">次へ</string>
     <string name="restore_installing_tap_to_install">タップしてインストール</string>
     <string name="restore_installing_error_message">データの復元は、アプリがインストールされている場合のみ可能です。
 \n
-\n 続行する前に、失敗したアプリをタップして手動でインストールしてみてください。</string>
+\n続行する前に、失敗したアプリをタップして手動でインストールしてみてください。</string>
     <string name="restore_installing_error_title">一部のアプリがインストールされていません</string>
     <string name="restore_installing_packages">アプリの再インストール</string>
     <string name="restore_set_empty_result">指定された場所に適切なバックアップが見つかりませんでした。
 \n
-\nリカバリーコードが間違っているか、ストレージのエラーが原因である可能性が高いです。</string>
+\n間違ったリカバリコード、またはストレージエラーが原因である可能性があります。</string>
     <string name="restore_set_error">バックアップの読み込み時にエラーが発生しました。</string>
     <string name="restore_invalid_location_message">この場所にはバックアップが見つかりませんでした。
 \n
 \n%sフォルダを含む別の場所を選択してください。</string>
     <string name="restore_invalid_location_title">バックアップが見つかりません</string>
     <string name="restore_skip">復元しない</string>
-    <string name="restore_restore_set_times">最後は%1$s · 最初は %2$s.</string>
-    <string name="restore_choose_restore_set">復元するバックアップを選ぶ</string>
-    <string name="backup_section_not_allowed">アプリはバックアップできません</string>
+    <string name="restore_restore_set_times">最後のバックアップ: %1$s・最初のバックアップ: %2$s</string>
+    <string name="restore_choose_restore_set">復元するバックアップを選択してください</string>
+    <string name="backup_section_not_allowed">データのバックアップを許可していないアプリ</string>
     <string name="restore_title">バックアップからの復元</string>
     <string name="restore_app_not_installed">アプリはインストールされていません</string>
     <string name="backup_app_quota_exceeded">バックアップの制限を超えました</string>
     <string name="restore_app_quota_exceeded">バックアップの制限を超えました</string>
-    <string name="backup_app_no_data">アプリにはバックアップのデータがありません</string>
-    <string name="backup_app_was_stopped">最近使われていないためバックアップがされていません</string>
-    <string name="restore_app_was_stopped">最近使っていなかったのでバックアップされませんでした</string>
-    <string name="restore_app_not_allowed">アプリがバックアップが許可しませんでした</string>
+    <string name="backup_app_no_data">アプリはバックアップ用のデータを提供しませんでした</string>
+    <string name="backup_app_was_stopped">最近使われていないため、バックアップされていません</string>
+    <string name="restore_app_was_stopped">最近使用されていなかったため、バックアップされませんでした</string>
+    <string name="restore_app_not_allowed">アプリはバックアップを許可しませんでした</string>
     <string name="restore_app_not_yet_backed_up">まだバックアップされていません</string>
     <string name="backup_app_not_yet_backed_up">バックアップを待っています…</string>
-    <string name="backup_section_user">インストールされたアプリ</string>
-    <string name="backup_contacts">連絡先</string>
+    <string name="backup_section_user">インストールされているアプリ</string>
+    <string name="backup_contacts">ローカル連絡先</string>
     <string name="backup_call_log">通話履歴</string>
     <string name="backup_settings">デバイスの設定</string>
-    <string name="backup_sms">SMSメッセージ</string>
+    <string name="backup_sms">SMS テキストメッセージ</string>
     <string name="backup_section_system">システムアプリ</string>
     <string name="notification_restore_error_action">アプリをアンインストールする</string>
-    <string name="notification_restore_error_channel_title">フラッシュドライブの復元に失敗しました</string>
-    <string name="notification_restore_error_text">アプリをインストールする前に%1$sを接続してバックアップからデータを復元してください。</string>
-    <string name="notification_restore_error_title">%1$sのデータを復元できませんでした</string>
+    <string name="notification_restore_error_channel_title">フラッシュドライブの自動復元に失敗しました</string>
+    <string name="notification_restore_error_text">アプリをインストールする前に %1$s を接続してバックアップからデータを復元してください。</string>
+    <string name="notification_restore_error_title">%1$s のデータを復元できませんでした</string>
     <string name="notification_error_action">修正する</string>
     <string name="notification_error_text">デバイスのバックアップを実行できませんでした。</string>
-    <string name="notification_error_channel_title">エラーのお知らせ</string>
-    <string name="notification_success_text">%2$dアプリの%1$dがバックアップされました。タップして詳細を確認してください。</string>
-    <string name="notification_channel_title">バックアップのお知らせ</string>
-    <string name="recovery_code_verification_ok_message">コードが正しく、バックアップを復元するために機能します。</string>
+    <string name="notification_error_channel_title">エラーの通知</string>
+    <string name="notification_success_text">%2$d 個の内 %1$d 個のアプリがバックアップされました。タップすると詳細が表示されます。</string>
+    <string name="notification_channel_title">バックアップの通知</string>
+    <string name="recovery_code_verification_ok_message">コードは正しく、バックアップを復元するために機能します。</string>
     <string name="recovery_code_error_invalid_word">単語が間違っています。</string>
-    <string name="recovery_code_error_empty_word">ワードの入力を忘れています。</string>
-    <string name="recovery_code_input_hint_12">ワード12</string>
-    <string name="recovery_code_input_hint_11">ワード11</string>
-    <string name="recovery_code_input_hint_10">ワード10</string>
-    <string name="recovery_code_input_hint_9">ワード9</string>
-    <string name="recovery_code_input_hint_8">ワード8</string>
-    <string name="recovery_code_input_hint_7">ワード7</string>
-    <string name="recovery_code_input_hint_6">ワード6</string>
-    <string name="recovery_code_input_hint_5">ワード5</string>
-    <string name="recovery_code_input_hint_4">ワード4</string>
-    <string name="recovery_code_input_hint_3">ワード3</string>
-    <string name="recovery_code_input_hint_2">ワード2</string>
-    <string name="recovery_code_input_hint_1">ワード1</string>
+    <string name="recovery_code_error_empty_word">単語の入力を忘れていますよ!</string>
+    <string name="recovery_code_input_hint_12">単語 12</string>
+    <string name="recovery_code_input_hint_11">単語 11</string>
+    <string name="recovery_code_input_hint_10">単語 10</string>
+    <string name="recovery_code_input_hint_9">単語9</string>
+    <string name="recovery_code_input_hint_8">単語8</string>
+    <string name="recovery_code_input_hint_7">単語7</string>
+    <string name="recovery_code_input_hint_6">単語6</string>
+    <string name="recovery_code_input_hint_5">単語5</string>
+    <string name="recovery_code_input_hint_4">単語4</string>
+    <string name="recovery_code_input_hint_3">単語3</string>
+    <string name="recovery_code_input_hint_2">単語2</string>
+    <string name="recovery_code_input_hint_1">単語1</string>
     <string name="storage_check_fragment_error_button">戻る</string>
-    <string name="storage_check_fragment_permission_error">バックアップ先への書き込むための権限の取得ができません。</string>
+    <string name="storage_check_fragment_permission_error">バックアップ先への書き込み権限を取得できません。</string>
     <string name="storage_check_fragment_restore_title">バックアップを探しています…</string>
-    <string name="storage_check_fragment_backup_title">バックアップの場所を初期化しています…</string>
-    <string name="storage_fragment_warning">ストレージの場所にアクセスできる人は、あなたがどのアプリを使っているかを知ることができますが、アプリのデータにはアクセスできません。</string>
+    <string name="storage_check_fragment_backup_title">バックアップ先を初期化しています…</string>
+    <string name="storage_fragment_warning">バックアップにアクセスできる人は、あなたがどのアプリを使用しているか知ることはできますが、アプリのデータにはアクセスできません。</string>
     <string name="storage_fragment_restore_title">バックアップの保存先はどこですか?</string>
-    <string name="settings_backup_apk_dialog_message">アプリのバックアップを無効にしても、まだアプリのデータがバックアップされます。ただし、自動復元はされません。
+    <string name="settings_backup_apk_dialog_message">アプリのバックアップを無効にしても、アプリの「データ」は引き続きバックアップされます。ただし、自動的には復元されません。
 \n
-\n自動復元をオンにした状態でアプリを手動でインストールする必要があります。</string>
-    <string name="settings_category_storage">ストレージ・バックアップ (試験的)</string>
+\n「自動復元」をオンにした状態で、すべてのアプリを手動でインストールする必要があります。</string>
+    <string name="settings_category_storage">ストレージバックアップ (試験的)</string>
     <string name="settings_backup_storage_title">ファイルをバックアップする</string>
     <string name="settings_backup_storage_dialog_ok">とにかく有効にする</string>
-    <string name="settings_expert_quota_summary">アプリのバックアップのサイズに制限をかけないでください。
+    <string name="settings_expert_quota_summary">アプリのバックアップサイズに制限をかけない。
 \n
-\n警告:これにより、保管場所がすぐにいっぱいになる可能性があります。ほとんどのアプリには必要ありません。</string>
+\n警告: これにより、保管場所がすぐにいっぱいになる可能性があります。ほとんどのアプリには必要ありません。</string>
     <string name="storage_fake_nextcloud_summary_unavailable_market">インストールされていません</string>
-    <string name="storage_check_fragment_patience">しばらくお待ちください…</string>
+    <string name="storage_check_fragment_patience">これには時間がかかる場合があります…</string>
     <string name="restore_storage_skip">ファイルの復元をスキップする</string>
-    <string name="restore_storage_choose_snapshot">復元するストレージバックアップを選択してください(試験的)</string>
+    <string name="restore_storage_choose_snapshot">復元するストレージバックアップを選択してください (試験的)</string>
     <string name="restore_storage_got_it">OK</string>
     <string name="settings_expert_title">エキスパート設定</string>
-    <string name="settings_backup_storage_dialog_message">ファイルのバックアップはまだ試験段階であり、機能しない可能性があります。重要なデータはこの機能に頼らないでください。</string>
+    <string name="settings_backup_storage_dialog_message">ファイルのバックアップはまだ試験段階であり、機能しない可能性があります。重要なデータにはこの機能を使わないでください。</string>
     <string name="storage_fragment_warning_delete">この場所にある既存のバックアップは削除されます。</string>
     <string name="settings_backup_storage_dialog_title">試験的機能</string>
     <string name="settings_category_apps">アプリのバックアップ</string>
     <string name="settings_backup_files_summary">なし</string>
     <string name="settings_backup_files_title">含まれるファイルとフォルダー</string>
-    <string name="restore_skip_apps">アプリの復元をスキップする</string>
-    <string name="restore_storage_in_progress_info">ファイルはバックグラウンドで復元されます。実行されている間、あなたは電話を使うことができます。
+    <string name="restore_skip_apps">アプリの復元をスキップ</string>
+    <string name="restore_storage_in_progress_info">ファイルはバックグラウンドで復元されています。これが実行されている間、あなたは携帯電話を使うことができます。
 \n
-\n一部のアプリ(SignalやWhatsAppなど)では、バックアップをインポートするためにファイルが完全に復元されるまで待つ必要があります。ファイルの復元が完了する前に、これらのアプリを起動しないようにしてください。</string>
+\n一部のアプリ( Signal や WhatsApp など)では、ファイルが完全に復元されてから、バックアップをインポートする必要があります。ファイルの復元が完了する前に、これらのアプリを起動しないようにしてください。</string>
     <string name="restore_storage_in_progress_title">ファイルを復元中です…</string>
-    <string name="recovery_code_auth_title">スクリーンロックを再入力してください</string>
-    <string name="settings_expert_quota_title">無制限のアプリ枠</string>
+    <string name="recovery_code_auth_title">スクリーンロック解除コードを再入力してください</string>
+    <string name="settings_expert_quota_title">アプリ容量制限なし</string>
     <string name="recovery_code_auth_description">デバイスの認証情報を入力して続行します</string>
+    <string name="settings_backup_new_code_code_dialog_ok">新しいコード</string>
+    <string name="settings_backup_storage_battery_optimization">警告: バッテリーの最適化が有効になっているため、自動的にはバックアップされません。</string>
+    <string name="notification_error_no_main_key_title">バックアップが無効になっています</string>
+    <string name="settings_backup_new_code_dialog_title">新しいリカバリコードが必要です</string>
+    <string name="settings_backup_new_code_dialog_message">アプリのバックアップを引き続き使用するには、新しいリカバリコードを生成する必要があります。
+\n
+\nご不便をおかけして申し訳ありません。</string>
+    <string name="storage_fake_davx5_summary_unavailable">WebDAV マウントは使用できません。新しくセットアップします。</string>
+    <string name="storage_fake_davx5_summary_installed">タップして WebDAV マウントをセットアップします</string>
+    <string name="notification_error_no_main_key_text">新しいリカバリコードを生成してアップグレードを完了し、バックアップを引き続き使用します。</string>
+    <string name="error_no_store">エラー: アプリストアがインストールされていません</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 7ef982f..48750eb 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -30,7 +30,7 @@
     <string name="about_design">디자인: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
     <string name="about_author">제작자: <a href="https://github.com/stevesoltys">Steve Soltys</a> 및 <a href="https://blog.grobox.de">Torsten Grote</a></string>
     <string name="about_license">라이선스: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache2</a></string>
-    <string name="about_summary">Android 내장 백업 API를 사용한 백업 애플리케이션입니다.</string>
+    <string name="about_summary">Android의 내부 백업 API를 사용하는 백업 응용 프로그램입니다.</string>
     <string name="storage_internal_warning_use_anyway">백업 진행</string>
     <string name="storage_internal_warning_choose_other">다른 위치 선택</string>
     <string name="storage_internal_warning_message">백업 위치로 내부 저장소를 선택했습니다. 기기를 고장내거나 잃어버렸을 경우 백업을 사용하지 못할 수 있습니다.</string>
@@ -160,7 +160,7 @@
     <string name="notification_error_no_main_key_title">백업 비활성화됨</string>
     <string name="notification_error_no_main_key_text">업그레이드를 완료하고 백업을 계속 사용하려면 새 복구 코드를 생성하십시오.</string>
     <string name="error_no_store">에러: 앱스토어가 설치되지 않았음</string>
-    <string name="restore_storage_choose_snapshot">복원할 저장소 백업 선택 (실험적)</string>
+    <string name="restore_storage_choose_snapshot">복원할 저장소 백업 선택 (실험용)</string>
     <string name="restore_storage_skip">파일 복원 넘기기</string>
     <string name="restore_storage_in_progress_title">파일 복원중입니다…</string>
     <string name="restore_storage_in_progress_info">파일이 백그라운드에서 복원되고 있습니다. 실행 중인 동안 기기를 사용할 수 있습니다.
@@ -170,7 +170,7 @@
     <string name="settings_backup_files_title">포함된 파일과 폴더</string>
     <string name="settings_backup_storage_dialog_message">파일 백업은 아직 실험중인 기능이고 작동하지 않을 수 있습니다. 중요한 데이터를 이것에 의존하지 마세요.</string>
     <string name="settings_backup_files_summary">없음</string>
-    <string name="settings_backup_storage_dialog_title">실험적인 기능</string>
+    <string name="settings_backup_storage_dialog_title">실험용 기능</string>
     <string name="settings_backup_storage_dialog_ok">그래도 활성화</string>
     <string name="settings_expert_title">전문가 설정</string>
     <string name="recovery_code_auth_title">암호를 다시 입력하세요</string>
@@ -182,4 +182,14 @@
     <string name="settings_backup_new_code_code_dialog_ok">새로운 코드</string>
     <string name="storage_fragment_warning_delete">이 위치에 있던 기존의 백업은 삭제됩니다.</string>
     <string name="storage_fake_nextcloud_summary_unavailable_market">설치되지 않음</string>
+    <string name="backup_app_in_progress">백업 중</string>
+    <string name="backup_app_success">백업됨</string>
+    <string name="backup_app_warning">백업 경고</string>
+    <string name="restore_app_status_installing">다시 설치중</string>
+    <string name="restore_app_status_install_error">설치할 수 없음</string>
+    <string name="restore_app_status_restored">데이터 복원됨</string>
+    <string name="restore_app_status_failed">복원 실패함</string>
+    <string name="notification_backup_disabled">백업이 활성화되지 않음</string>
+    <string name="restore_app_status_installed">다시 설치됨</string>
+    <string name="restore_app_status_warning">복원 경고</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index 12de274..2e2e15f 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -6,10 +6,10 @@
     <string name="about_source_code">Pirminis kodas: https://github.com/seedvault-app/seedvault</string>
     <string name="about_sponsor">Remia: <a href="https://www.calyxinstitute.org">Calyx institutas</a>, skirta naudoti <a href="https://calyxos.org">CalyxOS</a></string>
     <string name="about_design">Dizainas: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
-    <string name="about_author">Parašė: <a href="https://github.com/stevesoltys">Steve Soltys</a> ir <a href="https://blog.grobox.de">Torsten Grote</a></string>
+    <string name="about_author">Sukūrė: <a href="https://github.com/stevesoltys">Steve Soltys</a> ir <a href="https://blog.grobox.de">Torsten Grote</a></string>
     <string name="about_license">Licencija: <a href="https://www.apache.org/licenses/LICENSE-2.0"> „Apache2“ </a></string>
     <string name="about_version">Versija: %s</string>
-    <string name="about_summary">Atsarginės kopijos kūrimo programa, naudojanti „Android“ vidinę atsarginės kopijos kūrimo API.</string>
+    <string name="about_summary">Atsarginės kopijos kūrimo programa, naudojanti „Android“ vidinį atsarginės kopijos kūrimo API.</string>
     <string name="about_title">Apie</string>
     <string name="storage_internal_warning_use_anyway">Vis tiek naudoti</string>
     <string name="storage_internal_warning_choose_other">Pasirinkite kitą</string>
@@ -171,4 +171,30 @@
     <string name="restore_storage_in_progress_info">Jūsų failai atkuriami fone. Kol tai vyksta, galite pradėti naudotis telefonu.
 \n
 \nNorint importuoti atsarginę kopiją, kai kuriose programėlėse (pvz., Signal arba WhatsApp) gali reikėti, kad failai būtų visiškai atkurti. Stenkitės vengti paleisti šias programėles, kol failų atkūrimas nebaigtas.</string>
+    <string name="backup_app_in_progress">Kuriama atsarginė kopija</string>
+    <string name="backup_app_success">Atsarginė kopija sukurta</string>
+    <string name="backup_app_warning">Atsarginės kopijos įspėjimas</string>
+    <string name="restore_app_status_installing">Diegiama iš naujo</string>
+    <string name="restore_app_status_installed">Įdiegta iš naujo</string>
+    <string name="restore_app_status_restored">Duomenys atkurti</string>
+    <string name="restore_app_status_failed">Atkurti nepavyko</string>
+    <string name="restore_app_status_warning">Atkurti įspėjimą</string>
+    <string name="settings_backup_new_code_code_dialog_ok">Naujas kodas</string>
+    <string name="settings_backup_storage_battery_optimization">Įspėjimas: nėra automatinių atsarginių kopijų, nes aktyvus akumuliatoriaus optimizavimas.</string>
+    <string name="settings_backup_new_code_dialog_message">Norėdami toliau naudoti programėlių atsargines kopijas, turite sugeneruoti naują atkūrimo kodą.
+\n
+\nAtsiprašome už nepatogumus.</string>
+    <string name="notification_backup_disabled">Atsarginės kopijos įjungtos</string>
+    <string name="settings_backup_new_code_dialog_title">Reikalingas naujas atkūrimo kodas</string>
+    <string name="storage_fake_davx5_summary_installed">Bakstelėkite, kad nustatytumėte WebDAV laikiklį</string>
+    <string name="storage_fake_davx5_summary_unavailable">WebDAV laikiklis nepasiekiamas. Nustatykite vieną.</string>
+    <string name="error_no_store">Klaida: neįdiegta programėlių parduotuvė</string>
+    <string name="notification_error_no_main_key_text">Sugeneruokite naują atkūrimo kodą, kad užbaigtumėte versijos naujinimą ir toliau naudotumėte atsargines kopijas.</string>
+    <string name="notification_error_no_main_key_title">Atsarginės kopijos išjungtos</string>
+    <string name="restore_app_status_install_error">Nepavyko įdiegti</string>
+    <string name="settings_expert_logcat_title">Išsaugoti programėlės žurnalą</string>
+    <string name="settings_expert_logcat_summary">Kūrėjai gali diagnozuoti klaidas naudodamiesi šiais žurnalais.
+\n
+\nĮspėjimas: Žurnalo faile gali būti asmenį identifikuojančios informacijos. Peržiūrėkite prieš dalydamiesi ir ištrinkite!</string>
+    <string name="settings_expert_logcat_error">Klaida: Nepavyko išsaugoti programėlės žurnalo</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 5d5fcdf..24579ee 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -109,4 +109,54 @@
     <string name="notification_success_text">%1$d av %2$d programmer sikkerhetskopiert. Trykk for mer info.</string>
     <string name="notification_backup_already_running">Sikkerhetskopi allerede underveis</string>
     <string name="settings_backup_status_title">Sikkerhetskopieringsstatus</string>
+    <string name="recovery_code_verification_error_title">Feil gjenopprettingskode</string>
+    <string name="settings_backup_storage_title">Sikkerhetskopier filene mine</string>
+    <string name="settings_category_apps">Programsikkerhetskopi</string>
+    <string name="settings_backup_files_title">Inkluderte filer og mapper</string>
+    <string name="settings_backup_files_summary">Ingen</string>
+    <string name="settings_backup_recovery_code">Gjenopprettingskode</string>
+    <string name="settings_backup_recovery_code_summary">Bekreft eksisterende gjenopprettingskode, eller generer en ny</string>
+    <string name="settings_backup_storage_dialog_title">Eksperimentell funksjon</string>
+    <string name="settings_backup_storage_dialog_message">Sikerhetskopiering av filer er fremdeles eksperimentelt, og trenger ikke å virke. Ikke stol på det for viktig data.</string>
+    <string name="settings_expert_title">Ekspertinnstillinger</string>
+    <string name="recovery_code_recreated">Ny gjenopprettingskode opprettet</string>
+    <string name="settings_backup_new_code_dialog_title">Ny gjenopprettingskode påkrevd</string>
+    <string name="storage_fake_nextcloud_summary_unavailable_market">Ikke installert</string>
+    <string name="restore_storage_got_it">Skjønner</string>
+    <string name="recovery_code_verification_ok_message">Koden din er riktig, og vil fungere for gjenoppretting av sikkerhetskopien din.</string>
+    <string name="recovery_code_verification_generate_new">Generer ny gjenopprettingskode</string>
+    <string name="restore_skip_apps">Hopp over gjenoppretting av programmer</string>
+    <string name="recovery_code_auth_title">Skriv inn skjermlåsen din igjen</string>
+    <string name="recovery_code_auth_description">Skriv inn enhetsidentitetsdetaljene dine for å fortsette</string>
+    <string name="recovery_code_verification_try_again">Prøv igjen</string>
+    <string name="recovery_code_verification_error_message">Du har skrevet inn en ugyldig sikkerhetskopieringskode. Prøv igjen.
+\n
+\nHvis du har mistet den, kan du trykke «Generer ny gjenopprettingskode» nedenfor.</string>
+    <string name="settings_backup_new_code_code_dialog_ok">Ny gjenopprettingskode</string>
+    <string name="settings_backup_storage_battery_optimization">Advarsel: Ingen automatisk sikkerhetskopiering, fordi batterioptimalisering er aktiv.</string>
+    <string name="storage_check_fragment_patience">Dette kan ta sin tid …</string>
+    <string name="settings_category_storage">Lagringssikkerhetskopi (eksperimentelt)</string>
+    <string name="settings_expert_quota_title">Ubegrenset programkvote</string>
+    <string name="settings_backup_storage_dialog_ok">Skru på uansett</string>
+    <string name="recovery_code_verification_new_dialog_message">Generering av ny gjenopprettingskode gjør dine eksisterende sikkerhetskopier utilgjengelige. De vil bli forsøkt slettet.
+\n
+\nFortsett\?</string>
+    <string name="storage_fake_davx5_summary_installed">Trykk for å sette opp en WebDAV-montering</string>
+    <string name="error_no_store">Feil: Ingen programbutikk installert</string>
+    <string name="storage_fake_davx5_summary_unavailable">Du må sette opp en WebDAV-montering først.</string>
+    <string name="recovery_code_verification_ok_title">Gjenopprettingskode bekreftet</string>
+    <string name="restore_storage_skip">Hopp over gjenoppretting av filer</string>
+    <string name="recovery_code_verification_new_dialog_title">Vent ett sekund …</string>
+    <string name="restore_storage_choose_snapshot">Velg lagringssikkerhetskopi å gjenopprette (eksperimentelt)</string>
+    <string name="restore_storage_in_progress_title">Gjenoppretter filer …</string>
+    <string name="settings_backup_new_code_dialog_message">For å fortsette å bruke programsikkerhetskopier må du generere en ny gjenopprettingskode.</string>
+    <string name="notification_error_no_main_key_title">Sikkerhetskopiering avskrudd</string>
+    <string name="notification_error_no_main_key_text">Generer en ny gjenopprettingskode for å fullføre oppgradering og fortsette å bruke sikkerhetskopier.</string>
+    <string name="storage_fragment_warning_delete">Eksisterende sikkerhetskopieringer i denne mappen vil bli slettet.</string>
+    <string name="settings_expert_quota_summary">Ikke sett en grense for programsikkerhetskopiering.
+\n
+\nAdvarsel: Dette kan fylle lagringen raskt. Det er ikke nødvendig for de fleste programmer.</string>
+    <string name="restore_storage_in_progress_info">Gjenoppretter filer i bakgrunnen. Du kan begynne å bruke enheten mens dette kjører.
+\n
+\nNoen programmer (som f.eks. Signal og WhatsApp) krever at filer er fullstendig gjenopprettet for å importere en sikkerhetskopi. Prøv å unngå å starte de programmene før filgjenoppretting er fullført.</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 61e6bee..4ab55ea 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -180,4 +180,13 @@
     <string name="notification_error_no_main_key_title">Backups desativados</string>
     <string name="notification_error_no_main_key_text">Gere um novo código de recuperação para concluir a atualização e continuar a usar os backups.</string>
     <string name="error_no_store">Erro: Nenhuma loja de aplicativos instalada</string>
+    <string name="restore_app_status_restored">Dados restaurados</string>
+    <string name="restore_app_status_installed">Reinstalado</string>
+    <string name="restore_app_status_install_error">Não foi possível instalar</string>
+    <string name="restore_app_status_warning">Aviso de restauração</string>
+    <string name="backup_app_in_progress">Fazendo backup</string>
+    <string name="backup_app_warning">Aviso de backup</string>
+    <string name="restore_app_status_installing">Reinstalando</string>
+    <string name="restore_app_status_failed">Falha na restauração</string>
+    <string name="notification_backup_disabled">Backup desabilitado</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index eb802c4..96e91a2 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="restore_backup_button">Restaurar backup</string>
-    <string name="current_destination_string">Status do backup e configurações</string>
+    <string name="current_destination_string">Estado do backup e configurações</string>
     <string name="backup">Backup</string>
-    <string name="about_source_code">Código Fonte: https://github.com/seedvault-app/seedvault</string>
+    <string name="about_source_code">Código-fonte: https://github.com/seedvault-app/seedvault</string>
     <string name="about_sponsor">Patrocinado por: <a href="https://www.calyxinstitute.org">Calyx Institute</a> para uso no <a href="https://calyxos.org">CalyxOS</a></string>
     <string name="about_design">Design por: <a href="https://www.glennsorrentino.com/">Glenn Sorrentino</a></string>
     <string name="about_author">Escrito por: <a href="https://github.com/stevesoltys">Steve Soltys</a> e <a href="https://blog.grobox.de">Torsten Grote</a></string>
@@ -94,8 +94,8 @@
     <string name="storage_check_fragment_restore_title">Procurando por backups…</string>
     <string name="storage_check_fragment_backup_title">Inicializando local de backup…</string>
     <string name="storage_fake_nextcloud_summary_unavailable">Conta não disponível. Crie uma (ou desative a palavra-passe).</string>
-    <string name="storage_fake_nextcloud_summary_installed">Clique para configurar uma conta</string>
-    <string name="storage_fake_nextcloud_summary">Clique para instalar</string>
+    <string name="storage_fake_nextcloud_summary_installed">Toque para configurar a conta</string>
+    <string name="storage_fake_nextcloud_summary">Toque para instalar</string>
     <string name="storage_available_bytes"><xliff:g example="1 GB" id="size">%1$s</xliff:g> livre</string>
     <string name="storage_fake_drive_summary">Precisa ser conectado</string>
     <string name="storage_fake_drive_title">Pen drive USB</string>
@@ -105,7 +105,7 @@
     <string name="settings_backup_now">Fazer backup agora</string>
     <string name="settings_backup_exclude_apps">Excluir apps</string>
     <string name="settings_backup_status_summary">Último backup: %1$s</string>
-    <string name="settings_backup_status_title">Status do backup</string>
+    <string name="settings_backup_status_title">Estado do backup</string>
     <string name="settings_backup_apk_dialog_disable">Desativar backup da app</string>
     <string name="settings_backup_apk_dialog_cancel">Cancelar</string>
     <string name="settings_backup_apk_dialog_message">O backup da app desativado ainda fará o backup dos dados da app. Porém, ele não será restaurado automaticamente.
@@ -123,6 +123,48 @@
     <string name="settings_backup_location_internal">Armazenamento interno</string>
     <string name="settings_backup_location_none">Nenhum</string>
     <string name="settings_backup_location">Local de backup</string>
-    <string name="settings_backup">Fazer backup dos meus dados</string>
+    <string name="settings_backup">Faça backup dos meus apps</string>
     <string name="data_management_label">Backup do Seedvault</string>
+    <string name="restore_storage_got_it">Entendi</string>
+    <string name="settings_backup_storage_dialog_title">Recurso experimental</string>
+    <string name="settings_backup_storage_dialog_message">O backup de ficheiros ainda é experimental e pode não funcionar. Não confie nele para dados importantes.</string>
+    <string name="backup_section_user">Apps instaladas</string>
+    <string name="restore_app_not_allowed">A app não permitiu um backup</string>
+    <string name="restore_storage_skip">Pular restauração de ficheiros</string>
+    <string name="restore_storage_choose_snapshot">Escolha um backup de armazenamento para restaurar (experimental)</string>
+    <string name="settings_category_apps">Backup de app</string>
+    <string name="settings_category_storage">Backup de armazenamento (experimental)</string>
+    <string name="settings_backup_storage_title">Faça backup dos meus ficheiros</string>
+    <string name="settings_backup_files_title">Ficheiros e pastas incluídos</string>
+    <string name="settings_backup_files_summary">Nenhum</string>
+    <string name="settings_backup_recovery_code">Código de recuperação</string>
+    <string name="settings_backup_recovery_code_summary">Verifique o código existente ou gere um novo</string>
+    <string name="settings_backup_storage_dialog_ok">Ativar mesmo assim</string>
+    <string name="settings_expert_title">Configurações para especialistas</string>
+    <string name="settings_expert_quota_title">Cota ilimitada de apps</string>
+    <string name="settings_expert_quota_summary">Não imponha uma limitação ao tamanho dos backups de apps.
+\n
+\nAviso: isso pode encher o seu local de armazenamento rapidamente. Não é necessário para a maioria das apps.</string>
+    <string name="backup_section_system">Apps de sistema</string>
+    <string name="storage_fragment_warning_delete">Os backups existentes neste local serão excluídos.</string>
+    <string name="storage_fake_nextcloud_summary_unavailable_market">Não instalado</string>
+    <string name="recovery_code_verification_ok_title">Código de recuperação verificado</string>
+    <string name="restore_storage_in_progress_title">Os ficheiros estão sendo restaurados …</string>
+    <string name="storage_check_fragment_patience">Isto pode levar algum tempo…</string>
+    <string name="recovery_code_done_button">Verificar</string>
+    <string name="recovery_code_verification_ok_message">O seu código está correto e irá funcionar para restaurar o seu backup.</string>
+    <string name="recovery_code_verification_error_title">Código de recuperação incorreto</string>
+    <string name="recovery_code_verification_error_message">Inseriu um código de recuperação inválido. Por favor, tente novamente!
+\n
+\nSe perdeu o seu código, toque em \'Gerar novo código\' abaixo.</string>
+    <string name="recovery_code_verification_try_again">Tente novamente</string>
+    <string name="recovery_code_verification_generate_new">Gerar um novo código</string>
+    <string name="recovery_code_verification_new_dialog_title">Espere um segundo…</string>
+    <string name="recovery_code_verification_new_dialog_message">A geração de um novo código fará os backups existentes inacessíveis. Vamos tentar apagá-los, se possível.
+\n
+\nTem a certeza que quer fazer isto\?</string>
+    <string name="recovery_code_recreated">O novo código de recuperação foi criado com sucesso</string>
+    <string name="recovery_code_auth_title">Digite novamente o bloqueio de ecrã</string>
+    <string name="recovery_code_auth_description">Digite as credenciais do seu aparelho para continuar</string>
+    <string name="notification_title">Backup em execução</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index f82413e..8d57209 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -182,4 +182,19 @@
 \nМы приносим извинения за доставленные неудобства.</string>
     <string name="settings_backup_new_code_code_dialog_ok">Новый код</string>
     <string name="error_no_store">Ошибка: Не установлен магазин приложений</string>
+    <string name="notification_backup_disabled">Резервное копирование не включено</string>
+    <string name="backup_app_success">Резервное копирование успешно</string>
+    <string name="backup_app_in_progress">Резервное копирование</string>
+    <string name="restore_app_status_installed">Переустановлено</string>
+    <string name="restore_app_status_restored">Данные восстановлены</string>
+    <string name="restore_app_status_failed">Восстановление не удалось</string>
+    <string name="restore_app_status_installing">Переустановка</string>
+    <string name="restore_app_status_install_error">Не удалось установить</string>
+    <string name="backup_app_warning">Предупреждение о резервном копировании</string>
+    <string name="restore_app_status_warning">Предупреждение о восстановлении</string>
+    <string name="settings_expert_logcat_title">Сохранить журнал приложения</string>
+    <string name="settings_expert_logcat_summary">Разработчики могут диагностировать ошибки с помощью этих журналов.
+\n
+\nВнимание: Журнал может содержать личную информацию. Проверьте до и удалите после отправки!</string>
+    <string name="settings_expert_logcat_error">Ошибка: Не удалось сохранить журнал приложения</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index b1a8baa..34be757 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -182,4 +182,19 @@
     <string name="settings_backup_new_code_code_dialog_ok">Yeni kod</string>
     <string name="storage_fake_davx5_summary_unavailable">WebDAV bağlantısı yok. Bir tane kurun.</string>
     <string name="storage_fake_davx5_summary_installed">Bir WebDAV bağlantısı kurmak için dokunun</string>
+    <string name="notification_backup_disabled">Yedekleme etkinleştirilmedi</string>
+    <string name="backup_app_success">Yedeklendi</string>
+    <string name="restore_app_status_installing">Yeniden kuruluyor</string>
+    <string name="backup_app_in_progress">Yedekleniyor</string>
+    <string name="backup_app_warning">Yedekleme uyarısı</string>
+    <string name="restore_app_status_installed">Yeniden kuruldu</string>
+    <string name="restore_app_status_restored">Veriler geri yüklendi</string>
+    <string name="restore_app_status_failed">Geri yükleme başarısız oldu</string>
+    <string name="restore_app_status_install_error">Kurulamadı</string>
+    <string name="restore_app_status_warning">Geri yükleme uyarısı</string>
+    <string name="settings_expert_logcat_title">Uygulama günlüğünü kaydet</string>
+    <string name="settings_expert_logcat_error">Hata: Uygulama günlüğü kaydedilemedi</string>
+    <string name="settings_expert_logcat_summary">Geliştiriciler bu günlüklerle hataları teşhis edebilir.
+\n
+\nUyarı: Günlük dosyası kişisel olarak tanımlanabilir bilgiler içerebilir. Paylaşmadan önce inceleyin ve paylaştıktan sonra silin!</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 03d8eb1..97f1633 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -30,19 +30,27 @@
     <string name="settings_backup_location_internal">Внутрішня пам\'ять</string>
     <string name="settings_backup_location_none">Жодного</string>
     <string name="settings_backup_location">Розташування резервної копії</string>
-    <string name="settings_backup">Резервне копіювання моїх даних</string>
+    <string name="settings_backup">Резервне копіювання моїх застосунків</string>
     <string name="restore_backup_button">Відновлення резервної копії</string>
     <string name="current_destination_string">Стан і налаштування резервного копіювання</string>
     <string name="data_management_label">Резервне копіювання Seedvault</string>
     <string name="backup">Резервна копія</string>
     <string name="about_source_code">Сирцевий код: https://github.com/seedvault-app/seedvault</string>
-    <string name="about_sponsor">Спонсується: <a href="https://www.calyxinstitute.org">Calyx Institute</a> для користування в <a href="https://calyxos.org">CalyxOS</a></string>
-    <string name="about_design">Дизайн: <a href="https://www.glennsorrentino.com/">Ґленн Соррентіно (Glenn Sorrentino)</a></string>
+    <string name="about_sponsor">Спонсор:
+\n<a href="https://www.calyxinstitute.org">
+\nCalyx Institute</a> для використання в
+\n<a href="https://calyxos.org">
+\nCalyxOS</a></string>
+    <string name="about_design">Дизайн:
+\n<a href="https://www.glennsorrentino.com/">
+\nGlenn Sorrentino</a></string>
     <string name="about_author">Творці: <a href="https://github.com/stevesoltys">Стів Солтіс (Steve Soltys)</a> і <a href="https://blog.grobox.de">Торстен Ґрот (Torsten Grote)</a></string>
-    <string name="about_license">Ліцензія: <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache2</a></string>
+    <string name="about_license">Ліцензія:
+\n<a href="https://www.apache.org/licenses/LICENSE-2.0">
+\nApache2</a></string>
     <string name="about_version">Версія: %s</string>
     <string name="about_summary">Застосунок для резервного копіювання, що використовує внутрішній API резервного копіювання Android.</string>
-    <string name="about_title">Про застосунок</string>
+    <string name="about_title">Про</string>
     <string name="storage_internal_warning_use_anyway">Однаково використовувати</string>
     <string name="storage_internal_warning_choose_other">Обрати інше</string>
     <string name="storage_internal_warning_message">Ви вибрали карту пам\'яті для резервної копії. Це буде недоступно, якщо ваш телефон загублений або зламаний.</string>
@@ -51,7 +59,7 @@
     <string name="restore_finished_error">Під час відновлення резервної копії сталася помилка.</string>
     <string name="restore_finished_success">Відновлення завершено</string>
     <string name="restore_magic_package">Менеджер системних пакетів</string>
-    <string name="restore_restoring_error_message">Ви можете повторно встановити ці застосунки вручну, і автоматичне відновлення спробує відновити їх дані (якщо це ввімкнено).</string>
+    <string name="restore_restoring_error_message">Ви можете повторно встановити ці застосунки вручну, і автоматичне відновлення спробує відновити їх дані (якщо це увімкнено).</string>
     <string name="restore_restoring_error_title">Не вдалося відновити деякі застосунки</string>
     <string name="restore_restoring">Відновлення резервної копії</string>
     <string name="restore_next">Далі</string>
@@ -145,4 +153,56 @@
     <string name="storage_check_fragment_backup_title">Ініціалізація розташування резервної копії…</string>
     <string name="storage_fake_nextcloud_summary_unavailable">Обліковий запис недоступний. Налаштуйте його (або вимкніть код доступу).</string>
     <string name="storage_fake_nextcloud_summary_installed">Торкніться, щоб налаштувати обліковий запис</string>
+    <string name="backup_app_success">Резервне копіювання успішне</string>
+    <string name="backup_app_warning">Попередження про резервне копіювання</string>
+    <string name="restore_skip_apps">Пропустити відновлення застосунків</string>
+    <string name="restore_app_status_installing">Повторне встановлення</string>
+    <string name="restore_app_status_installed">Перевстановлено</string>
+    <string name="restore_app_status_install_error">Не вдалося встановити</string>
+    <string name="restore_app_status_restored">Дані відновлено</string>
+    <string name="restore_app_status_failed">Не вдалося відновити</string>
+    <string name="restore_app_status_warning">Попередження про відновлення</string>
+    <string name="error_no_store">Помилка: Магазин застосунків не встановлено</string>
+    <string name="restore_storage_skip">Пропустити відновлення файлів</string>
+    <string name="restore_storage_in_progress_title">Файли відновлюються…</string>
+    <string name="restore_storage_got_it">Зрозумів</string>
+    <string name="settings_backup_storage_title">Резервне копіювання моїх файлів</string>
+    <string name="settings_backup_files_title">Включно з файлами та папками</string>
+    <string name="settings_backup_files_summary">Жодного</string>
+    <string name="settings_category_apps">Резервне копіювання застосунків</string>
+    <string name="settings_backup_storage_dialog_title">Експериментальна функція</string>
+    <string name="settings_expert_quota_title">Необмежена квота застосунків</string>
+    <string name="settings_backup_storage_dialog_ok">Все одно увімкнути</string>
+    <string name="settings_expert_title">Налаштування експерта</string>
+    <string name="settings_backup_storage_battery_optimization">Попередження: Немає автоматичного резервного копіювання, оскільки активна оптимізація акумулятора.</string>
+    <string name="settings_backup_new_code_dialog_title">Потрібен новий код відновлення</string>
+    <string name="settings_backup_new_code_dialog_message">Щоб продовжувати використовувати резервне копіювання застосунків, вам потрібно створити новий код відновлення.
+\n
+\nПросимо вибачення за незручності.</string>
+    <string name="settings_backup_new_code_code_dialog_ok">Новий код</string>
+    <string name="settings_expert_logcat_title">Зберегти журнал застосунка</string>
+    <string name="settings_expert_logcat_summary">Розробники можуть діагностувати помилки за допомогою цих журналів.
+\n
+\nПопередження: Файл журналу може містити особисту інформацію. Перегляньте до та видаліть після надання доступу!</string>
+    <string name="settings_expert_logcat_error">Помилка: не вдалося зберегти журнал застосунка</string>
+    <string name="storage_fragment_warning_delete">Наявні резервні копії в цьому місці будуть видалені.</string>
+    <string name="storage_fake_nextcloud_summary_unavailable_market">Не встановлено</string>
+    <string name="storage_check_fragment_patience">Це може зайняти деякий час…</string>
+    <string name="recovery_code_auth_title">Введіть знову пароль для розблокування</string>
+    <string name="recovery_code_auth_description">Щоб продовжити, введіть облікові дані пристрою</string>
+    <string name="notification_backup_disabled">Резервне копіювання не ввімкнено</string>
+    <string name="notification_error_no_main_key_title">Резервне копіювання вимкнено</string>
+    <string name="notification_error_no_main_key_text">Згенеруйте новий код відновлення, щоб завершити оновлення та продовжити використання резервних копій.</string>
+    <string name="restore_storage_choose_snapshot">Виберіть резервну копію для відновлення (експериментальне)</string>
+    <string name="settings_category_storage">Резервне копіювання сховища (експериментальне)</string>
+    <string name="settings_backup_storage_dialog_message">Резервне копіювання файлів все ще є експериментальним і може не працювати. Не покладайтеся на нього для отримання важливих даних.</string>
+    <string name="settings_expert_quota_summary">Не встановлювати обмеження на розмір резервних копій застосунків.
+\n
+\nПопередження: Це може швидко заповнити місце зберігання. Не потрібні для більшості застосунків.</string>
+    <string name="storage_fake_davx5_summary_installed">Торкніться, щоб налаштувати підключення WebDAV</string>
+    <string name="storage_fake_davx5_summary_unavailable">Підключення WebDAV недоступне. Налаштуйте одне з них.</string>
+    <string name="backup_app_in_progress">Резервне копіювання</string>
+    <string name="restore_storage_in_progress_info">Ваші файли відновлюються у фоновому режимі. Ви можете почати користуватися своїм телефоном, поки це працює.
+\n
+\nДеякі застосунки (напр. Signal або WhatsApp) можуть вимагати повного відновлення файлів, щоб імпортувати резервну копію. Намагайтеся не запускати ці застосунки до завершення відновлення файлів.</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index 66abd66..5301fcd 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -182,4 +182,14 @@
     <string name="notification_error_no_main_key_text">Hãy tạo mã phục hồi mới để hoàn thành nâng cấp và tiếp tục sử dụng bản sao lưu.</string>
     <string name="error_no_store">Lỗi: Không có cửa hàng ứng dụng nào được cài đặt</string>
     <string name="storage_fake_davx5_summary_installed">Nhấn để thiết lập nơi gắn WebDAV</string>
+    <string name="notification_backup_disabled">Sao lưu chưa được kích hoạt</string>
+    <string name="backup_app_in_progress">Đang sao lưu</string>
+    <string name="backup_app_success">Đã sao lưu</string>
+    <string name="backup_app_warning">Cảnh báo sao lưu</string>
+    <string name="restore_app_status_installing">Đang cài đặt lại</string>
+    <string name="restore_app_status_installed">Đã cài đặt lại</string>
+    <string name="restore_app_status_install_error">Không thể cài đặt</string>
+    <string name="restore_app_status_restored">Đã khôi phục dữ liệu</string>
+    <string name="restore_app_status_failed">Khôi phục thất bại</string>
+    <string name="restore_app_status_warning">Cảnh báo khôi phục</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index ee5fa98..0371b6e 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -182,4 +182,19 @@
 \n我们对于不便表示歉意。</string>
     <string name="storage_fake_davx5_summary_unavailable">WebDAV 挂载不可用。设置一个。</string>
     <string name="storage_fake_davx5_summary_installed">轻按设置 WebDAV 挂载</string>
+    <string name="notification_backup_disabled">未启用备份</string>
+    <string name="backup_app_warning">备份警告</string>
+    <string name="restore_app_status_installing">重新安装中</string>
+    <string name="restore_app_status_installed">已重新安装</string>
+    <string name="restore_app_status_restored">数据已恢复</string>
+    <string name="restore_app_status_failed">恢复失败</string>
+    <string name="restore_app_status_warning">恢复警告</string>
+    <string name="backup_app_in_progress">备份中</string>
+    <string name="restore_app_status_install_error">无法安装</string>
+    <string name="backup_app_success">已备份</string>
+    <string name="settings_expert_logcat_error">错误:无法保存应用日志</string>
+    <string name="settings_expert_logcat_title">保存应用日志</string>
+    <string name="settings_expert_logcat_summary">开发者可通过这些日志诊断故障。
+\n
+\n警告:日志文件可能包含个人身份信息。请务必在分享前查看确定是否分享并在分享后删除!</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 43732b5..4cf4a18 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -14,6 +14,9 @@
     <string name="settings_backup_location_none">None</string>
     <string name="settings_backup_location_internal">Internal storage</string>
     <string name="settings_backup_last_backup_never">Never</string>
+    <string name="settings_backup_dialog_title">Really turn off app backups?</string>
+    <string name="settings_backup_dialog_message">When you turn backups on again, the backup process may take longer than usual, and it will use additional storage space.</string>
+    <string name="settings_backup_dialog_disable">Turn off anyway</string>
     <string name="settings_info">All backups are encrypted on your phone. To restore from backup you will need your 12-word recovery code.</string>
     <string name="settings_auto_restore_title">Automatic restore</string>
     <string name="settings_auto_restore_summary">When reinstalling an app, restore backed up settings and data.</string>
@@ -46,6 +49,9 @@
     <string name="settings_expert_title">Expert settings</string>
     <string name="settings_expert_quota_title">Unlimited app quota</string>
     <string name="settings_expert_quota_summary">Do not impose a limitation on the size of app backups.\n\nWarning: This can fill up your storage location quickly. Not needed for most apps.</string>
+    <string name="settings_expert_logcat_title">Save app log</string>
+    <string name="settings_expert_logcat_summary">Developers can diagnose bugs with these logs.\n\nWarning: The log file might contain personally identifiable information. Review before and delete after sharing!</string>
+    <string name="settings_expert_logcat_error">Error: Could not save app log</string>
 
     <!-- Storage Location -->
     <string name="storage_fragment_backup_title">Choose where to store backups</string>
@@ -55,6 +61,7 @@
     <string name="storage_fake_drive_title">USB flash drive</string>
     <string name="storage_fake_drive_summary">Needs to be plugged in</string>
     <string name="storage_available_bytes"><xliff:g example="1 GB" id="size">%1$s</xliff:g> free</string>
+    <string name="storage_not_recommended"><xliff:g example="Skynet">%1$s</xliff:g> (Not recommended)</string>
     <string name="storage_fake_nextcloud_title" translatable="false">Nextcloud</string>
     <string name="storage_fake_nextcloud_summary">Tap to install</string>
     <string name="storage_fake_nextcloud_summary_installed">Tap to set up account</string>
diff --git a/app/src/main/res/xml/settings_expert.xml b/app/src/main/res/xml/settings_expert.xml
index a257d89..11e8497 100644
--- a/app/src/main/res/xml/settings_expert.xml
+++ b/app/src/main/res/xml/settings_expert.xml
@@ -5,4 +5,9 @@
         android:key="unlimited_quota"
         android:summary="@string/settings_expert_quota_summary"
         android:title="@string/settings_expert_quota_title" />
-</PreferenceScreen>
\ No newline at end of file
+    <Preference
+        android:icon="@drawable/ic_bug_report"
+        android:key="logcat"
+        android:summary="@string/settings_expert_logcat_summary"
+        android:title="@string/settings_expert_logcat_title" />
+</PreferenceScreen>
diff --git a/app/src/test/java/com/stevesoltys/seedvault/transport/backup/BackupCoordinatorTest.kt b/app/src/test/java/com/stevesoltys/seedvault/transport/backup/BackupCoordinatorTest.kt
index d5facae..5a7ece9 100644
--- a/app/src/test/java/com/stevesoltys/seedvault/transport/backup/BackupCoordinatorTest.kt
+++ b/app/src/test/java/com/stevesoltys/seedvault/transport/backup/BackupCoordinatorTest.kt
@@ -73,17 +73,8 @@
     )
 
     @Test
-    fun `starting a new restore set works as expected`() = runBlocking {
-        every { clock.time() } returns token
-        every { settingsManager.setNewToken(token) } just Runs
-        coEvery { plugin.startNewRestoreSet(token) } just Runs
-
-        backup.startNewRestoreSet()
-    }
-
-    @Test
     fun `device initialization succeeds and delegates to plugin`() = runBlocking {
-        every { settingsManager.getToken() } returns token
+        expectStartNewRestoreSet()
         coEvery { plugin.initializeDevice() } just Runs
         coEvery { plugin.getOutputStream(token, FILE_BACKUP_METADATA) } returns metadataOutputStream
         every { metadataManager.onDeviceInitialization(token, metadataOutputStream) } just Runs
@@ -97,21 +88,17 @@
         verify { metadataOutputStream.close() }
     }
 
-    @Test
-    fun `device initialization does no-op when no token available`() = runBlocking {
-        every { settingsManager.getToken() } returns null
-        every { kv.hasState() } returns false
-        every { full.hasState() } returns false
-
-        assertEquals(TRANSPORT_OK, backup.initializeDevice())
-        assertEquals(TRANSPORT_OK, backup.finishBackup())
+    private suspend fun expectStartNewRestoreSet() {
+        every { clock.time() } returns token
+        every { settingsManager.setNewToken(token) } just Runs
+        coEvery { plugin.startNewRestoreSet(token) } just Runs
     }
 
     @Test
     fun `error notification when device initialization fails`() = runBlocking {
         val maybeTrue = Random.nextBoolean()
 
-        every { settingsManager.getToken() } returns token
+        expectStartNewRestoreSet()
         coEvery { plugin.initializeDevice() } throws IOException()
         every { metadataManager.requiresInit } returns maybeTrue
         every { settingsManager.canDoBackupNow() } returns !maybeTrue
@@ -130,7 +117,7 @@
     @Test
     fun `no error notification when device initialization fails when no backup possible`() =
         runBlocking {
-            every { settingsManager.getToken() } returns token
+            expectStartNewRestoreSet()
             coEvery { plugin.initializeDevice() } throws IOException()
             every { metadataManager.requiresInit } returns false
             every { settingsManager.canDoBackupNow() } returns false
diff --git a/contactsbackup/src/main/AndroidManifest.xml b/contactsbackup/src/main/AndroidManifest.xml
index 6ce63f3..51bc8b8 100644
--- a/contactsbackup/src/main/AndroidManifest.xml
+++ b/contactsbackup/src/main/AndroidManifest.xml
@@ -2,8 +2,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     package="org.calyxos.backup.contacts"
-    android:versionCode="33000301"
-    android:versionName="13-3.1">
+    android:versionCode="33030030"
+    android:versionName="13-3.3">
     <!--
     The version code is the targeted SDK_VERSION plus 6 digits for our own version code.
     The version name is the targeted Android version followed by - and our own version name.
diff --git a/contactsbackup/src/main/res/values-ar/strings.xml b/contactsbackup/src/main/res/values-ar/strings.xml
index a6b3dae..c4cba82 100644
--- a/contactsbackup/src/main/res/values-ar/strings.xml
+++ b/contactsbackup/src/main/res/values-ar/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">النسخ الاحتياطي لجهات الاتصال المحلية</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-ast/strings.xml b/contactsbackup/src/main/res/values-ast/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/contactsbackup/src/main/res/values-ast/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-cy/strings.xml b/contactsbackup/src/main/res/values-cy/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/contactsbackup/src/main/res/values-cy/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-en-rAU/strings.xml b/contactsbackup/src/main/res/values-en-rAU/strings.xml
index a6b3dae..b24df12 100644
--- a/contactsbackup/src/main/res/values-en-rAU/strings.xml
+++ b/contactsbackup/src/main/res/values-en-rAU/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">Local Contacts Backup</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-es-rUS/strings.xml b/contactsbackup/src/main/res/values-es-rUS/strings.xml
index a6b3dae..bd80f1b 100644
--- a/contactsbackup/src/main/res/values-es-rUS/strings.xml
+++ b/contactsbackup/src/main/res/values-es-rUS/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">Copia de seguridad de contactos locales</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-fr-rCA/strings.xml b/contactsbackup/src/main/res/values-fr-rCA/strings.xml
index a6b3dae..b240692 100644
--- a/contactsbackup/src/main/res/values-fr-rCA/strings.xml
+++ b/contactsbackup/src/main/res/values-fr-rCA/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">Sauvegarde local des contacts</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-gd/strings.xml b/contactsbackup/src/main/res/values-gd/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/contactsbackup/src/main/res/values-gd/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-gl/strings.xml b/contactsbackup/src/main/res/values-gl/strings.xml
index a6b3dae..9948e74 100644
--- a/contactsbackup/src/main/res/values-gl/strings.xml
+++ b/contactsbackup/src/main/res/values-gl/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">Copia de seguranza dos contactos locais</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-it/strings.xml b/contactsbackup/src/main/res/values-it/strings.xml
index a6b3dae..be447e1 100644
--- a/contactsbackup/src/main/res/values-it/strings.xml
+++ b/contactsbackup/src/main/res/values-it/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">Backup contatti locale</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-ja/strings.xml b/contactsbackup/src/main/res/values-ja/strings.xml
index a6b3dae..348649c 100644
--- a/contactsbackup/src/main/res/values-ja/strings.xml
+++ b/contactsbackup/src/main/res/values-ja/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">ローカル連絡先のバックアップ</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-ka/strings.xml b/contactsbackup/src/main/res/values-ka/strings.xml
index a6b3dae..f722cc6 100644
--- a/contactsbackup/src/main/res/values-ka/strings.xml
+++ b/contactsbackup/src/main/res/values-ka/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">ლოკალური კონტაქტების მარქაფი</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-lt/strings.xml b/contactsbackup/src/main/res/values-lt/strings.xml
index a6b3dae..aff1a54 100644
--- a/contactsbackup/src/main/res/values-lt/strings.xml
+++ b/contactsbackup/src/main/res/values-lt/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">Vietinių kontaktų atsarginė kopija</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-mr/strings.xml b/contactsbackup/src/main/res/values-mr/strings.xml
index a6b3dae..37ec3c6 100644
--- a/contactsbackup/src/main/res/values-mr/strings.xml
+++ b/contactsbackup/src/main/res/values-mr/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">लोकल संपर्क बॅकअप</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-nb-rNO/strings.xml b/contactsbackup/src/main/res/values-nb-rNO/strings.xml
index a6b3dae..fe17445 100644
--- a/contactsbackup/src/main/res/values-nb-rNO/strings.xml
+++ b/contactsbackup/src/main/res/values-nb-rNO/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">Sikkerhetskopiering av lokale kontakter</string>
+</resources>
\ No newline at end of file
diff --git a/contactsbackup/src/main/res/values-uk/strings.xml b/contactsbackup/src/main/res/values-uk/strings.xml
index a6b3dae..4524581 100644
--- a/contactsbackup/src/main/res/values-uk/strings.xml
+++ b/contactsbackup/src/main/res/values-uk/strings.xml
@@ -1,2 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="app_label">Резервне копіювання локальних контактів</string>
+</resources>
\ No newline at end of file
diff --git a/default-permissions_com.stevesoltys.seedvault.xml b/default-permissions_com.stevesoltys.seedvault.xml
index 656e711..4bcaa7b 100644
--- a/default-permissions_com.stevesoltys.seedvault.xml
+++ b/default-permissions_com.stevesoltys.seedvault.xml
@@ -3,5 +3,7 @@
     <exception package="com.stevesoltys.seedvault">
         <!-- Notifications -->
         <permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
+        <!-- Needed to back up original files with all metadata -->
+        <permission name="android.permission.ACCESS_MEDIA_LOCATION" fixed="true"/>
     </exception>
 </exceptions>
diff --git a/permissions_com.stevesoltys.seedvault.xml b/permissions_com.stevesoltys.seedvault.xml
index d7bf61e..cb85ca6 100644
--- a/permissions_com.stevesoltys.seedvault.xml
+++ b/permissions_com.stevesoltys.seedvault.xml
@@ -5,6 +5,7 @@
         <permission name="android.permission.MANAGE_USB"/>
         <permission name="android.permission.INSTALL_PACKAGES"/>
         <permission name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
+        <permission name="android.permission.READ_LOGS"/>
         <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
         <permission name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
     </privapp-permissions>
diff --git a/storage/lib/src/main/res/values-ar/strings.xml b/storage/lib/src/main/res/values-ar/strings.xml
index a6b3dae..ef29028 100644
--- a/storage/lib/src/main/res/values-ar/strings.xml
+++ b/storage/lib/src/main/res/values-ar/strings.xml
@@ -1,2 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="content_downloads">التنزيلات</string>
+    <string name="content_videos">المقاطع</string>
+    <string name="content_images">الصور</string>
+    <string name="content_audio">الملفات صوتية</string>
+    <string name="notification_backup_scanning">جارٍ فحص الملفات…</string>
+    <string name="content_add">إضافة</string>
+    <string name="notification_backup_backup_files">جارٍ النسخ احتياطي للملفات…</string>
+    <string name="notification_prune">جارٍ إزالة النسخ الاحتياطية القديم …</string>
+    <string name="notification_restore_channel_title">استعادة البيانات</string>
+    <string name="notification_backup_title">بيانات النسخ الاحتياطي</string>
+    <string name="notification_restore_title">استعادة الملفات…</string>
+    <string name="notification_restore_complete_title">%1$d من %2$d ملفات تم استعادتها</string>
+    <string name="notification_restore_info">%2$d%1$d</string>
+    <string name="snapshots_title">النسخ الاحتياطية المتاحة</string>
+    <string name="snapshots_empty">لم يتم العثور على نسخ احتياطية للتخزين
+\n
+\nآسف، ولكن لا يوجد شيء يمكن استعادته.</string>
+    <string name="snapshots_error">خطأ في تحميل اللقطات</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-ast/strings.xml b/storage/lib/src/main/res/values-ast/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/storage/lib/src/main/res/values-ast/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-ca/strings.xml b/storage/lib/src/main/res/values-ca/strings.xml
index 19a1144..2fa0701 100644
--- a/storage/lib/src/main/res/values-ca/strings.xml
+++ b/storage/lib/src/main/res/values-ca/strings.xml
@@ -18,4 +18,5 @@
 \n
 \nHo sentim, però no hi ha res que es pugui restaurar.</string>
     <string name="snapshots_error">Error en carregar les instantànies</string>
+    <string name="content_options">Opcions</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-cs/strings.xml b/storage/lib/src/main/res/values-cs/strings.xml
index 47c5e20..f4bdef2 100644
--- a/storage/lib/src/main/res/values-cs/strings.xml
+++ b/storage/lib/src/main/res/values-cs/strings.xml
@@ -18,4 +18,5 @@
     <string name="content_downloads">Stažené soubory</string>
     <string name="snapshots_title">Dostupné zálohy úložiště</string>
     <string name="notification_restore_channel_title">Obnova úložiště</string>
+    <string name="content_options">Možnosti</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-cy/strings.xml b/storage/lib/src/main/res/values-cy/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/storage/lib/src/main/res/values-cy/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-de/strings.xml b/storage/lib/src/main/res/values-de/strings.xml
index d073347..512a122 100644
--- a/storage/lib/src/main/res/values-de/strings.xml
+++ b/storage/lib/src/main/res/values-de/strings.xml
@@ -18,4 +18,5 @@
 \nEs gibt leider nichts, was wiederhergestellt werden kann.</string>
     <string name="snapshots_error">Fehler beim Laden von Snapshots</string>
     <string name="notification_restore_channel_title">Speicherwiederherstellung</string>
+    <string name="content_options">Optionen</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-el/strings.xml b/storage/lib/src/main/res/values-el/strings.xml
index 421721b..8ae7ae4 100644
--- a/storage/lib/src/main/res/values-el/strings.xml
+++ b/storage/lib/src/main/res/values-el/strings.xml
@@ -18,4 +18,5 @@
 \nΛυπούμαστε, αλλά δεν υπάρχει τίποτα που να μπορεί να αποκατασταθεί.</string>
     <string name="snapshots_error">Σφάλμα φόρτωσης στιγμιότυπων</string>
     <string name="content_add">Προσθήκη</string>
+    <string name="content_options">Επιλογές</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-en-rAU/strings.xml b/storage/lib/src/main/res/values-en-rAU/strings.xml
index a6b3dae..6cfaff0 100644
--- a/storage/lib/src/main/res/values-en-rAU/strings.xml
+++ b/storage/lib/src/main/res/values-en-rAU/strings.xml
@@ -1,2 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="content_options">Options</string>
+    <string name="notification_restore_complete_title">%1$d of %2$d files restored</string>
+    <string name="content_videos">Videos</string>
+    <string name="content_images">Photos and images</string>
+    <string name="content_audio">Audio files</string>
+    <string name="content_downloads">Downloads</string>
+    <string name="notification_restore_title">Restoring files…</string>
+    <string name="notification_restore_info">%1$d/%2$d</string>
+    <string name="notification_backup_backup_files">Backing up files…</string>
+    <string name="notification_prune">Removing old backups…</string>
+    <string name="content_add">Add</string>
+    <string name="notification_backup_title">Storage backup</string>
+    <string name="notification_backup_scanning">Scanning files…</string>
+    <string name="notification_restore_channel_title">Storage restore</string>
+    <string name="snapshots_title">Available storage backups</string>
+    <string name="snapshots_empty">No storage backups found
+\n
+\nSorry, but there is nothing that can be restored.</string>
+    <string name="snapshots_error">Error loading snapshots</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-es-rUS/strings.xml b/storage/lib/src/main/res/values-es-rUS/strings.xml
index a6b3dae..a4af6e0 100644
--- a/storage/lib/src/main/res/values-es-rUS/strings.xml
+++ b/storage/lib/src/main/res/values-es-rUS/strings.xml
@@ -1,2 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="notification_restore_title">Restaurando archivos…</string>
+    <string name="snapshots_empty">No se encontraron copias de seguridad de almacenamiento
+\n
+\nLo sentimos, pero no hay nada que se pueda restaurar.</string>
+    <string name="content_options">Opciones</string>
+    <string name="content_add">Añadir</string>
+    <string name="notification_backup_title">Copia de seguridad en almacenamiento</string>
+    <string name="notification_backup_scanning">Escaneando archivos…</string>
+    <string name="notification_backup_backup_files">Copia de seguridad de archivos…</string>
+    <string name="notification_restore_channel_title">Restauración de almacenamiento</string>
+    <string name="notification_restore_complete_title">%1$d de %2$d archivos restaurados</string>
+    <string name="content_images">Fotos e imágenes</string>
+    <string name="content_videos">Videos</string>
+    <string name="content_audio">Archivos de audio</string>
+    <string name="content_downloads">Descargas</string>
+    <string name="notification_prune">Eliminando copias de seguridad antiguas…</string>
+    <string name="snapshots_title">Copias de seguridad de almacenamiento disponibles</string>
+    <string name="snapshots_error">Error al cargar instantáneas</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-es/strings.xml b/storage/lib/src/main/res/values-es/strings.xml
index 77cf7db..5a2a2cd 100644
--- a/storage/lib/src/main/res/values-es/strings.xml
+++ b/storage/lib/src/main/res/values-es/strings.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <string name="content_images">Fotos e imágenes</string>
-    <string name="content_videos">Videos</string>
+    <string name="content_videos">Vídeos</string>
     <string name="content_audio">Archivos de audio</string>
     <string name="content_downloads">Descargas</string>
     <string name="content_add">Añadir</string>
@@ -18,4 +18,5 @@
 \n
 \nLo sentimos, pero no hay nada que se pueda restaurar.</string>
     <string name="snapshots_error">Error al cargar snapshots</string>
+    <string name="content_options">Opciones</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-fr/strings.xml b/storage/lib/src/main/res/values-fr/strings.xml
index 38d92c6..f91cd30 100644
--- a/storage/lib/src/main/res/values-fr/strings.xml
+++ b/storage/lib/src/main/res/values-fr/strings.xml
@@ -18,4 +18,5 @@
     <string name="notification_restore_complete_title">%1$d sur %2$d fichiers restaurés</string>
     <string name="snapshots_title">Sauvegardes de stockage disponibles</string>
     <string name="snapshots_error">Erreur de chargement des instantanés</string>
+    <string name="content_options">Options</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-gd/strings.xml b/storage/lib/src/main/res/values-gd/strings.xml
new file mode 100644
index 0000000..a6b3dae
--- /dev/null
+++ b/storage/lib/src/main/res/values-gd/strings.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-gl/strings.xml b/storage/lib/src/main/res/values-gl/strings.xml
index a6b3dae..66b6592 100644
--- a/storage/lib/src/main/res/values-gl/strings.xml
+++ b/storage/lib/src/main/res/values-gl/strings.xml
@@ -1,2 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="content_options">Opcións</string>
+    <string name="content_add">Engadir</string>
+    <string name="notification_backup_title">Copia de seguridade do almacenamento</string>
+    <string name="notification_backup_scanning">Escaneando ficheiros…</string>
+    <string name="notification_backup_backup_files">Facendo copia de seguridade dos ficheiros…</string>
+    <string name="notification_prune">Eliminando copias de seguridade antigas…</string>
+    <string name="notification_restore_channel_title">Restauración do almacenamento</string>
+    <string name="notification_restore_title">Restaurando ficheiros…</string>
+    <string name="notification_restore_info">%1$d/%2$d</string>
+    <string name="notification_restore_complete_title">%1$d de %2$d ficheiros restaurados</string>
+    <string name="snapshots_title">Copias de seguridade do almacenamento dispoñibles</string>
+    <string name="snapshots_empty">Non se atoparon copias de seguridade do almacenamento 
+\n 
+\nSentímolo, pero non atopamos nada que se poida restaurar.</string>
+    <string name="snapshots_error">Produciuse un erro ao cargar as instantáneas</string>
+    <string name="content_images">Fotos e imaxes</string>
+    <string name="content_videos">Vídeos</string>
+    <string name="content_audio">Arquivos de audio</string>
+    <string name="content_downloads">Descargas</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-it/strings.xml b/storage/lib/src/main/res/values-it/strings.xml
index a6b3dae..9bb5cbc 100644
--- a/storage/lib/src/main/res/values-it/strings.xml
+++ b/storage/lib/src/main/res/values-it/strings.xml
@@ -1,2 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="notification_restore_title">Ripristinando i file…</string>
+    <string name="content_options">Opzioni</string>
+    <string name="notification_backup_backup_files">Eseguendo il backup dei file…</string>
+    <string name="notification_prune">Rimuovendo i vecchi backup…</string>
+    <string name="notification_restore_channel_title">Ripristino archiviazione</string>
+    <string name="notification_restore_info">%1$d/%2$d</string>
+    <string name="notification_restore_complete_title">%1$d di %2$d file ripristinati</string>
+    <string name="snapshots_title">Backup di archiviazione disponibili</string>
+    <string name="snapshots_empty">Nessun backup di archiviazione trovato
+\n
+\nCi dispiace, ma non c\'è nulla che può essere ripristinato.</string>
+    <string name="content_images">Foto e immagini</string>
+    <string name="content_videos">Video</string>
+    <string name="content_audio">File audio</string>
+    <string name="content_downloads">Download</string>
+    <string name="content_add">Aggiungi</string>
+    <string name="notification_backup_title">Backup archiviazione</string>
+    <string name="notification_backup_scanning">Scansionando i file…</string>
+    <string name="snapshots_error">Errore nel caricamento degli snapshot</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-iw/strings.xml b/storage/lib/src/main/res/values-iw/strings.xml
index dad2801..ece2962 100644
--- a/storage/lib/src/main/res/values-iw/strings.xml
+++ b/storage/lib/src/main/res/values-iw/strings.xml
@@ -18,4 +18,5 @@
 \n
 \nאין מה לשחזר, עמך סליחה.</string>
     <string name="snapshots_error">שגיאה בטעינת תמונות המצב</string>
+    <string name="content_options">אפשרויות</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-ja/strings.xml b/storage/lib/src/main/res/values-ja/strings.xml
index a6b3dae..6c4589a 100644
--- a/storage/lib/src/main/res/values-ja/strings.xml
+++ b/storage/lib/src/main/res/values-ja/strings.xml
@@ -1,2 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="content_downloads">ダウンロード</string>
+    <string name="notification_backup_title">ストレージバックアップ</string>
+    <string name="notification_backup_scanning">ファイルをスキャンしています…</string>
+    <string name="notification_backup_backup_files">ファイルのバックアップ中…</string>
+    <string name="notification_prune">古いバックアップの削除中…</string>
+    <string name="notification_restore_title">ファイルを復元中…</string>
+    <string name="notification_restore_info">%1$d のうち %2$d</string>
+    <string name="snapshots_error">スナップショットの読み込みに失敗しました</string>
+    <string name="content_videos">ビデオ</string>
+    <string name="content_images">写真と画像</string>
+    <string name="content_audio">オーディオファイル</string>
+    <string name="content_add">追加</string>
+    <string name="notification_restore_channel_title">ストレージの復元</string>
+    <string name="notification_restore_complete_title">%1$d のファイルのうち %2$d のファイルが復元されました</string>
+    <string name="snapshots_title">利用可能なストレージのバックアップ</string>
+    <string name="snapshots_empty">ストレージのバックアップが見つかりません
+\n
+\n申し訳ありませんが、復元できるものはありません。</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-ko/strings.xml b/storage/lib/src/main/res/values-ko/strings.xml
index 3e6172c..2dcf15b 100644
--- a/storage/lib/src/main/res/values-ko/strings.xml
+++ b/storage/lib/src/main/res/values-ko/strings.xml
@@ -18,4 +18,5 @@
 \n
 \n복원할 수 있는 것이 없습니다.</string>
     <string name="snapshots_error">스냅샷 로딩하는 중에 에러 발생</string>
+    <string name="content_options">옵션</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-lt/strings.xml b/storage/lib/src/main/res/values-lt/strings.xml
index a6b3dae..9bc68ff 100644
--- a/storage/lib/src/main/res/values-lt/strings.xml
+++ b/storage/lib/src/main/res/values-lt/strings.xml
@@ -1,2 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="content_options">Parinktys</string>
+    <string name="content_add">Pridėti</string>
+    <string name="notification_backup_title">Saugyklos atsarginė kopija</string>
+    <string name="notification_backup_scanning">Nuskaitomi failai…</string>
+    <string name="notification_backup_backup_files">Kuriamos atsarginės failų kopijos…</string>
+    <string name="notification_prune">Šalinamos senos atsarginės kopijos…</string>
+    <string name="notification_restore_channel_title">Saugyklos atkūrimas</string>
+    <string name="notification_restore_title">Atkuriami failai…</string>
+    <string name="notification_restore_info">%1$d/%2$d</string>
+    <string name="notification_restore_complete_title">Atkurta %1$d iš %2$d failų</string>
+    <string name="snapshots_title">Galimos saugyklos atsarginės kopijos</string>
+    <string name="snapshots_empty">Nerasta jokių atsarginių kopijų
+\n
+\nAtsiprašome, bet nėra nieko, ką būtų galima atkurti.</string>
+    <string name="snapshots_error">Klaida įkeliant momentines nuotraukas</string>
+    <string name="content_images">Nuotraukos ir vaizdai</string>
+    <string name="content_videos">Vaizdo įrašai</string>
+    <string name="content_audio">Garso failai</string>
+    <string name="content_downloads">Atsiuntimai</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-nb-rNO/strings.xml b/storage/lib/src/main/res/values-nb-rNO/strings.xml
index a6b3dae..dae57f4 100644
--- a/storage/lib/src/main/res/values-nb-rNO/strings.xml
+++ b/storage/lib/src/main/res/values-nb-rNO/strings.xml
@@ -1,2 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="content_images">Foto og bilder</string>
+    <string name="content_add">Legg til</string>
+    <string name="notification_backup_title">Lagringssikkerhetkopi</string>
+    <string name="content_downloads">Nedlastinger</string>
+    <string name="notification_backup_scanning">Skanner filer …</string>
+    <string name="notification_backup_backup_files">Sikkerhetskopierer filer …</string>
+    <string name="notification_prune">Fjerner gamle sikkerhetskopier …</string>
+    <string name="notification_restore_title">Gjenoppretter filer …</string>
+    <string name="notification_restore_channel_title">Lagringsgjenoppretting</string>
+    <string name="snapshots_empty">Fant ingen lagringssikkerhetskopier.
+\n
+\nIngenting kan gjenopprettes.</string>
+    <string name="content_videos">Videoer</string>
+    <string name="content_audio">Lydfiler</string>
+    <string name="notification_restore_complete_title">%1$d av %2$d filer gjenopprettet</string>
+    <string name="notification_restore_info">%1$d/%2$d</string>
+    <string name="snapshots_title">Tilgjengelige lagringssikkerhetskopier</string>
+    <string name="snapshots_error">Klarte ikke å laste inn øyeblikksavtrykk</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-ru/strings.xml b/storage/lib/src/main/res/values-ru/strings.xml
index f564e9b..f2ef4b9 100644
--- a/storage/lib/src/main/res/values-ru/strings.xml
+++ b/storage/lib/src/main/res/values-ru/strings.xml
@@ -18,4 +18,5 @@
     <string name="notification_restore_channel_title">Восстановление хранилища</string>
     <string name="notification_restore_info">%1$d/%2$d</string>
     <string name="snapshots_error">Ошибка загрузки снимков</string>
+    <string name="content_options">Опции</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-tr/strings.xml b/storage/lib/src/main/res/values-tr/strings.xml
index f6ba024..7d2ad4b 100644
--- a/storage/lib/src/main/res/values-tr/strings.xml
+++ b/storage/lib/src/main/res/values-tr/strings.xml
@@ -18,4 +18,5 @@
 \n
 \nÜzgünüz, ancak geri yüklenebilecek hiçbir şey yok.</string>
     <string name="snapshots_error">Anlık görüntüler yüklenirken hata oluştu</string>
+    <string name="content_options">Seçenekler</string>
 </resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-uk/strings.xml b/storage/lib/src/main/res/values-uk/strings.xml
index a6b3dae..8f8884f 100644
--- a/storage/lib/src/main/res/values-uk/strings.xml
+++ b/storage/lib/src/main/res/values-uk/strings.xml
@@ -1,2 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="content_options">Опції</string>
+    <string name="notification_backup_scanning">Сканування файлів…</string>
+    <string name="content_videos">Відео</string>
+    <string name="content_audio">Аудіо файли</string>
+    <string name="notification_backup_title">Резервне копіювання пам\'яті</string>
+    <string name="content_downloads">Завантаження</string>
+    <string name="content_add">Додати</string>
+    <string name="notification_restore_channel_title">Відновлення пам \'яті</string>
+    <string name="notification_restore_title">Відновлення файлів…</string>
+    <string name="notification_restore_info">%1$d/%2$d</string>
+    <string name="notification_restore_complete_title">%1$d з %2$d файлів відновлено</string>
+    <string name="snapshots_error">Помилка завантаження знімків</string>
+    <string name="notification_backup_backup_files">Резервне копіювання файлів…</string>
+    <string name="content_images">Фото та зображення</string>
+    <string name="notification_prune">Вилучення старих резервних копій…</string>
+    <string name="snapshots_title">Доступні резервні копії пам\'яті</string>
+    <string name="snapshots_empty">Резервні копії пам \'яті не знайдено
+\n
+\nВибачте, але немає нічого, що можна було б відновити.</string>
+</resources>
\ No newline at end of file
diff --git a/storage/lib/src/main/res/values-zh-rCN/strings.xml b/storage/lib/src/main/res/values-zh-rCN/strings.xml
index a6b3dae..f97e76d 100644
--- a/storage/lib/src/main/res/values-zh-rCN/strings.xml
+++ b/storage/lib/src/main/res/values-zh-rCN/strings.xml
@@ -1,2 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources></resources>
\ No newline at end of file
+<resources>
+    <string name="content_audio">音频文件</string>
+    <string name="notification_restore_complete_title">已恢复 %1$d 个文件,共 %2$d 个文件</string>
+    <string name="notification_restore_info">%1$d/%2$d</string>
+    <string name="content_options">选项</string>
+    <string name="notification_restore_title">恢复文件中…</string>
+    <string name="content_images">照片和图片</string>
+    <string name="content_videos">视频</string>
+    <string name="content_downloads">下载</string>
+    <string name="content_add">添加</string>
+    <string name="notification_backup_title">存储备份</string>
+    <string name="notification_backup_scanning">扫描文件中…</string>
+    <string name="notification_backup_backup_files">备份文件中…</string>
+    <string name="notification_prune">删除旧备份中…</string>
+    <string name="notification_restore_channel_title">存储恢复</string>
+    <string name="snapshots_error">加载快照出错</string>
+    <string name="snapshots_title">可用的存储备份</string>
+    <string name="snapshots_empty">未找到存储备份
+\n
+\n抱歉,没有什么可以恢复的。</string>
+</resources>
\ No newline at end of file