diff --git a/README.md b/README.md index 69a8252..6baca6e 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,8 @@ Add a new feature or fix bugs. ## Add translations -Translate Alibi into your language so that other people can use it more easily. +[Translate Alibi into your language using Crowdin](https://crowdin.com/project/alibi), so that other +people can use it more easily. ## Donate @@ -39,4 +40,6 @@ You can donate via: * [GitHub Sponsors](https://github.com/sponsors/Myzel394) * Bitcoin: `bc1qw054829yj8e2u8glxnfcg3w22dkek577mjt5x6` -* Monero: `83dm5wyuckG4aPbuMREHCEgLNwVn5i7963SKBhECaA7Ueb7DKBTy639R3QfMtb3DsFHMp8u6WGiCFgbdRDBBcz5sLduUtm8` +* + +Monero: `83dm5wyuckG4aPbuMREHCEgLNwVn5i7963SKBhECaA7Ueb7DKBTy639R3QfMtb3DsFHMp8u6WGiCFgbdRDBBcz5sLduUtm8` diff --git a/app/src/main/java/app/myzel394/alibi/Constants.kt b/app/src/main/java/app/myzel394/alibi/Constants.kt index 1993707..92ce6fa 100644 --- a/app/src/main/java/app/myzel394/alibi/Constants.kt +++ b/app/src/main/java/app/myzel394/alibi/Constants.kt @@ -1,3 +1,3 @@ package app.myzel394.alibi -val SUPPORTED_LOCALES = arrayOf("en-US", "zh-CN", "de-DE") \ No newline at end of file +val SUPPORTED_LOCALES = arrayOf("en-US", "zh-CN", "de-DE", "tr-TR") \ No newline at end of file diff --git a/app/src/main/java/app/myzel394/alibi/MainActivity.kt b/app/src/main/java/app/myzel394/alibi/MainActivity.kt index a97fa1c..5b81729 100644 --- a/app/src/main/java/app/myzel394/alibi/MainActivity.kt +++ b/app/src/main/java/app/myzel394/alibi/MainActivity.kt @@ -6,10 +6,15 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.ui.platform.LocalContext import androidx.core.view.WindowCompat import androidx.datastore.dataStore +import app.myzel394.alibi.db.AppSettings import app.myzel394.alibi.db.AppSettingsSerializer import app.myzel394.alibi.ui.Navigation +import app.myzel394.alibi.ui.SUPPORTS_DARK_MODE_NATIVELY import app.myzel394.alibi.ui.theme.AlibiTheme const val SETTINGS_FILE = "settings.json" @@ -25,6 +30,24 @@ class MainActivity : AppCompatActivity() { WindowCompat.setDecorFitsSystemWindows(window, false) setContent { + val dataStore = LocalContext.current.dataStore + val settings = dataStore + .data + .collectAsState(initial = AppSettings.getDefaultInstance()) + .value + + LaunchedEffect(settings.theme) { + if (!SUPPORTS_DARK_MODE_NATIVELY) { + val currentValue = AppCompatDelegate.getDefaultNightMode() + + if (settings.theme == AppSettings.Theme.LIGHT && currentValue != AppCompatDelegate.MODE_NIGHT_NO) { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) + } else if (settings.theme == AppSettings.Theme.DARK && currentValue != AppCompatDelegate.MODE_NIGHT_YES) { + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) + } + } + } + AlibiTheme { Navigation() } diff --git a/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt b/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt index 0dc32f9..90ee3a0 100644 --- a/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt +++ b/app/src/main/java/app/myzel394/alibi/db/AppSettings.kt @@ -5,8 +5,8 @@ import android.os.Build import android.util.Log import com.arthenica.ffmpegkit.FFmpegKit import com.arthenica.ffmpegkit.ReturnCode -import kotlinx.coroutines.delay import kotlinx.serialization.Serializable +import org.json.JSONObject import java.io.File import java.time.LocalDateTime import java.time.format.DateTimeFormatter.ISO_DATE_TIME @@ -16,6 +16,7 @@ data class AppSettings( val audioRecorderSettings: AudioRecorderSettings = AudioRecorderSettings(), val hasSeenOnboarding: Boolean = false, val showAdvancedSettings: Boolean = false, + val theme: Theme = Theme.SYSTEM, ) { fun setShowAdvancedSettings(showAdvancedSettings: Boolean): AppSettings { return copy(showAdvancedSettings = showAdvancedSettings) @@ -29,8 +30,56 @@ data class AppSettings( return copy(hasSeenOnboarding = hasSeenOnboarding) } + fun setTheme(theme: Theme): AppSettings { + return copy(theme = theme) + } + + enum class Theme { + SYSTEM, + LIGHT, + DARK, + } + + fun toJSONObject(): JSONObject { + return JSONObject( + mapOf( + "audioRecorderSettings" to audioRecorderSettings.toJSONObject(), + "hasSeenOnboarding" to hasSeenOnboarding, + "showAdvancedSettings" to showAdvancedSettings, + "theme" to theme.name, + ) + ) + } + + fun exportToString(): String { + return JSONObject( + mapOf( + "_meta" to mapOf( + "version" to 1, + "date" to LocalDateTime.now().format(ISO_DATE_TIME), + "app" to "app.myzel394.alibi", + ), + "data" to toJSONObject(), + ) + ).toString(0) + } + companion object { fun getDefaultInstance(): AppSettings = AppSettings() + + fun fromJSONObject(data: JSONObject): AppSettings { + return AppSettings( + audioRecorderSettings = AudioRecorderSettings.fromJSONObject(data.getJSONObject("audioRecorderSettings")), + hasSeenOnboarding = data.getBoolean("hasSeenOnboarding"), + showAdvancedSettings = data.getBoolean("showAdvancedSettings"), + theme = Theme.valueOf(data.getString("theme")), + ) + } + + fun fromExportedString(data: String): AppSettings { + val json = JSONObject(data) + return fromJSONObject(json.getJSONObject("data")) + } } } @@ -133,6 +182,7 @@ data class LastRecording( @Serializable data class AudioRecorderSettings( + // 30 minutes val maxDuration: Long = 30 * 60 * 1000L, // 60 seconds val intervalDuration: Long = 60 * 1000L, @@ -255,8 +305,8 @@ data class AudioRecorderSettings( } fun setMaxDuration(duration: Long): AudioRecorderSettings { - if (duration < 60 * 1000L || duration > 24 * 60 * 60 * 1000L) { - throw Exception("Max duration must be between 1 minute and 1 hour") + if (duration < 60 * 1000L || duration > 10 * 24 * 60 * 60 * 1000L) { + throw Exception("Max duration must be between 1 minute and 10 days") } if (duration < intervalDuration) { @@ -284,6 +334,20 @@ data class AudioRecorderSettings( return supportedFormats.contains(outputFormat) } + fun toJSONObject(): JSONObject { + return JSONObject( + mapOf( + "maxDuration" to maxDuration, + "intervalDuration" to intervalDuration, + "forceExactMaxDuration" to forceExactMaxDuration, + "bitRate" to bitRate, + "samplingRate" to samplingRate, + "outputFormat" to outputFormat, + "encoder" to encoder, + ) + ) + } + companion object { fun getDefaultInstance(): AudioRecorderSettings = AudioRecorderSettings() val EXAMPLE_MAX_DURATIONS = listOf( @@ -390,5 +454,23 @@ data class AudioRecorderSettings( } } }).toMap() + + fun fromJSONObject(data: JSONObject): AudioRecorderSettings { + return AudioRecorderSettings( + maxDuration = data.getLong("maxDuration"), + intervalDuration = data.getLong("intervalDuration"), + forceExactMaxDuration = data.getBoolean("forceExactMaxDuration"), + bitRate = data.getInt("bitRate"), + samplingRate = data.optInt("samplingRate", -1).let { + if (it == -1) null else it + }, + outputFormat = data.optInt("outputFormat", -1).let { + if (it == -1) null else it + }, + encoder = data.optInt("encoder", -1).let { + if (it == -1) null else it + }, + ) + } } } diff --git a/app/src/main/java/app/myzel394/alibi/ui/Constants.kt b/app/src/main/java/app/myzel394/alibi/ui/Constants.kt index e543531..903c212 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/Constants.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/Constants.kt @@ -1,6 +1,8 @@ package app.myzel394.alibi.ui +import android.os.Build import androidx.compose.ui.unit.dp val BIG_PRIMARY_BUTTON_SIZE = 64.dp val MAX_AMPLITUDE = 20000 +val SUPPORTS_DARK_MODE_NATIVELY = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ImportExport.kt b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ImportExport.kt new file mode 100644 index 0000000..830d550 --- /dev/null +++ b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ImportExport.kt @@ -0,0 +1,165 @@ +package app.myzel394.alibi.ui.components.SettingsScreen.atoms + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Check +import androidx.compose.material.icons.filled.CheckCircle +import androidx.compose.material.icons.filled.Download +import androidx.compose.material.icons.filled.Upload +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.SnackbarDuration +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.SnackbarVisuals +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import app.myzel394.alibi.R +import app.myzel394.alibi.dataStore +import app.myzel394.alibi.db.AppSettings +import app.myzel394.alibi.ui.utils.rememberFileSaverDialog +import app.myzel394.alibi.ui.utils.rememberFileSelectorDialog +import kotlinx.coroutines.launch +import java.io.File + +@Composable +fun ImportExport( + snackbarHostState: SnackbarHostState, +) { + val context = LocalContext.current + + val scope = rememberCoroutineScope() + val dataStore = LocalContext.current.dataStore + val settings = dataStore + .data + .collectAsState(initial = AppSettings.getDefaultInstance()) + .value + + var settingsToBeImported by remember { mutableStateOf(null) } + + val saveFile = rememberFileSaverDialog("application/json") + val openFile = rememberFileSelectorDialog { uri -> + val file = File.createTempFile("alibi_settings", ".json") + + context.contentResolver.openInputStream(uri)!!.use { + it.copyTo(file.outputStream()) + } + val rawContent = file.readText() + + settingsToBeImported = AppSettings.fromExportedString(rawContent) + } + + if (settingsToBeImported != null) { + val successMessage = stringResource(R.string.ui_settings_option_import_success) + + AlertDialog( + onDismissRequest = { + settingsToBeImported = null + }, + title = { + Text(stringResource(R.string.ui_settings_option_import_label)) + }, + text = { + Text(stringResource(R.string.ui_settings_option_import_dialog_text)) + }, + icon = { + Icon( + Icons.Default.Download, + contentDescription = null, + ) + }, + confirmButton = { + Button( + onClick = { + scope.launch { + dataStore.updateData { + settingsToBeImported!! + } + settingsToBeImported = null + + snackbarHostState.showSnackbar( + message = successMessage, + withDismissAction = true, + duration = SnackbarDuration.Short, + ) + } + + }, + ) { + Icon( + Icons.Default.CheckCircle, + contentDescription = null, + modifier = Modifier.size(ButtonDefaults.IconSize), + ) + Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing)) + Text(stringResource(R.string.ui_settings_option_import_dialog_confirm)) + } + }, + dismissButton = { + Button( + onClick = { + settingsToBeImported = null + }, + colors = ButtonDefaults.textButtonColors(), + ) { + Text(stringResource(R.string.dialog_close_cancel_label)) + } + }, + ) + } + + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.fillMaxWidth(), + ) { + Button( + onClick = { + openFile("application/json") + }, + colors = ButtonDefaults.filledTonalButtonColors(), + ) { + Icon( + Icons.Default.Download, + contentDescription = null, + modifier = Modifier.size(ButtonDefaults.IconSize), + ) + Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing)) + Text(stringResource(R.string.ui_settings_option_import_label)) + } + Button( + onClick = { + val rawContent = settings.exportToString() + + val tempFile = File.createTempFile("alibi_settings", ".json") + tempFile.writeText(rawContent) + + saveFile(tempFile, "alibi_settings.json") + }, + colors = ButtonDefaults.filledTonalButtonColors(), + ) { + Icon( + Icons.Default.Upload, + contentDescription = null, + modifier = Modifier.size(ButtonDefaults.IconSize), + ) + Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing)) + Text(stringResource(R.string.ui_settings_option_export_label)) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/MaxDurationTile.kt b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/MaxDurationTile.kt index bdf127b..03d897d 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/MaxDurationTile.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/MaxDurationTile.kt @@ -65,10 +65,10 @@ fun MaxDurationTile() { updateValue(newTimeInSeconds * 1000L) }, config = DurationConfig( - timeFormat = DurationFormat.MM_SS, + timeFormat = DurationFormat.HH_MM, currentTime = settings.audioRecorderSettings.maxDuration / 1000, minTime = 60, - maxTime = 24 * 60 * 60, + maxTime = 10 * 24 * 60 * 60, ) ) SettingsTile( @@ -95,7 +95,7 @@ fun MaxDurationTile() { ExampleListRoulette( items = AudioRecorderSettings.EXAMPLE_MAX_DURATIONS, onItemSelected = ::updateValue, - ) {maxDuration -> + ) { maxDuration -> Text(formatDuration(maxDuration)) } } diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ThemeSelector.kt b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ThemeSelector.kt new file mode 100644 index 0000000..0d988d8 --- /dev/null +++ b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ThemeSelector.kt @@ -0,0 +1,174 @@ +package app.myzel394.alibi.ui.components.SettingsScreen.atoms + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.CheckCircle +import androidx.compose.material.icons.filled.Mic +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import androidx.navigation.navOptions +import app.myzel394.alibi.dataStore +import app.myzel394.alibi.db.AppSettings +import kotlinx.coroutines.launch + +@Composable +fun Preview( + modifier: Modifier = Modifier, + backgroundColor: Color, + primaryColor: Color, + textColor: Color, + onSelect: () -> Unit, + isSelected: Boolean = false, +) { + Box( + modifier = modifier, + contentAlignment = Alignment.Center, + ) { + Column( + modifier = Modifier + .width(100.dp) + .height(200.dp) + .clip(shape = RoundedCornerShape(10.dp)) + .border(width = 1.dp, color = textColor, shape = RoundedCornerShape(10.dp)) + .background(backgroundColor) + .clickable { onSelect() }, + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceBetween, + ) { + Row( + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier + .fillMaxWidth() + .padding(10.dp) + ) { + Box( + modifier = Modifier + .width(30.dp) + .height(10.dp) + .clip(shape = RoundedCornerShape(10.dp)) + .background(primaryColor) + ) + Box( + modifier = Modifier + .size(10.dp) + .clip(shape = RoundedCornerShape(10.dp)) + .background(primaryColor) + ) + } + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Icon( + Icons.Default.Mic, + contentDescription = null, + tint = primaryColor, + ) + Box( + modifier = Modifier + .width(40.dp) + .height(6.dp) + .clip(shape = RoundedCornerShape(10.dp)) + .background(primaryColor) + ) + Box( + modifier = Modifier + .width(75.dp) + .height(10.dp) + .clip(shape = RoundedCornerShape(10.dp)) + .background(textColor) + ) + } + Box {} + } + if (isSelected) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier + .fillMaxSize(), + ) { + Icon( + Icons.Default.CheckCircle, + contentDescription = null, + tint = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier + .size(30.dp), + ) + } + } + } +} + +@Composable +fun ThemeSelector() { + val scope = rememberCoroutineScope() + + val dataStore = LocalContext.current.dataStore + val settings = dataStore + .data + .collectAsState(initial = AppSettings.getDefaultInstance()) + .value + + Row( + horizontalArrangement = Arrangement.SpaceEvenly, + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + Preview( + modifier = Modifier + .fillMaxWidth() + .weight(1f), + backgroundColor = Color(0xFFF0F0F0), + primaryColor = Color(0xFFAAAAAA), + textColor = Color(0xFFCCCCCC), + onSelect = { + scope.launch { + dataStore.updateData { + it.setTheme(AppSettings.Theme.LIGHT) + } + } + }, + isSelected = settings.theme == AppSettings.Theme.LIGHT, + ) + Preview( + modifier = Modifier + .fillMaxWidth() + .weight(1f), + backgroundColor = Color(0xFF444444), + primaryColor = Color(0xFF888888), + textColor = Color(0xFF606060), + onSelect = { + scope.launch { + dataStore.updateData { + it.setTheme(AppSettings.Theme.DARK) + } + } + }, + isSelected = settings.theme == AppSettings.Theme.DARK, + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorder.kt b/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorder.kt index 40fee55..6bd60ed 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorder.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/screens/AudioRecorder.kt @@ -60,7 +60,7 @@ fun AudioRecorder( try { val file = audioRecorder.lastRecording!!.concatenateFiles() - saveFile(file) + saveFile(file, file.name) } catch (error: Exception) { Log.getStackTraceString(error) } finally { @@ -161,7 +161,7 @@ fun AudioRecorder( } ) }, - ) {padding -> + ) { padding -> Box( modifier = Modifier .fillMaxSize() diff --git a/app/src/main/java/app/myzel394/alibi/ui/screens/SettingsScreen.kt b/app/src/main/java/app/myzel394/alibi/ui/screens/SettingsScreen.kt index c12ad60..f918856 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/screens/SettingsScreen.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/screens/SettingsScreen.kt @@ -1,6 +1,7 @@ package app.myzel394.alibi.ui.screens import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -15,7 +16,9 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.LargeTopAppBar +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold +import androidx.compose.material3.Snackbar import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.Text @@ -35,15 +38,18 @@ import androidx.navigation.NavController import app.myzel394.alibi.R import app.myzel394.alibi.dataStore import app.myzel394.alibi.db.AppSettings +import app.myzel394.alibi.ui.SUPPORTS_DARK_MODE_NATIVELY import app.myzel394.alibi.ui.components.SettingsScreen.atoms.BitrateTile import app.myzel394.alibi.ui.components.SettingsScreen.atoms.EncoderTile import app.myzel394.alibi.ui.components.SettingsScreen.atoms.ForceExactMaxDurationTile +import app.myzel394.alibi.ui.components.SettingsScreen.atoms.ImportExport import app.myzel394.alibi.ui.components.SettingsScreen.atoms.InAppLanguagePicker import app.myzel394.alibi.ui.components.SettingsScreen.atoms.IntervalDurationTile import app.myzel394.alibi.ui.components.SettingsScreen.atoms.MaxDurationTile import app.myzel394.alibi.ui.components.SettingsScreen.atoms.OutputFormatTile import app.myzel394.alibi.ui.components.SettingsScreen.atoms.SamplingRateTile import app.myzel394.alibi.ui.components.SettingsScreen.atoms.ShowAllMicrophonesTile +import app.myzel394.alibi.ui.components.SettingsScreen.atoms.ThemeSelector import app.myzel394.alibi.ui.components.atoms.GlobalSwitch import app.myzel394.alibi.ui.components.atoms.MessageBox import app.myzel394.alibi.ui.components.atoms.MessageType @@ -62,7 +68,21 @@ fun SettingsScreen( ) Scaffold( - snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, + snackbarHost = { + SnackbarHost( + hostState = snackbarHostState, + snackbar = { + Snackbar( + snackbarData = it, + containerColor = MaterialTheme.colorScheme.primaryContainer, + contentColor = MaterialTheme.colorScheme.onPrimaryContainer, + actionColor = MaterialTheme.colorScheme.onPrimaryContainer, + actionContentColor = MaterialTheme.colorScheme.onPrimaryContainer, + dismissActionContentColor = MaterialTheme.colorScheme.onPrimaryContainer, + ) + } + ) + }, topBar = { LargeTopAppBar( title = { @@ -108,6 +128,9 @@ fun SettingsScreen( message = stringResource(R.string.ui_settings_hint_recordingActive_message), ) } + if (!SUPPORTS_DARK_MODE_NATIVELY) { + ThemeSelector() + } GlobalSwitch( label = stringResource(R.string.ui_settings_advancedSettings_label), checked = settings.showAdvancedSettings, @@ -124,17 +147,27 @@ fun SettingsScreen( ForceExactMaxDurationTile() InAppLanguagePicker() AnimatedVisibility(visible = settings.showAdvancedSettings) { - Column { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(32.dp), + ) { + ShowAllMicrophonesTile() + Column { + Divider( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 32.dp) + ) + BitrateTile() + SamplingRateTile() + EncoderTile(snackbarHostState = snackbarHostState) + OutputFormatTile() + } Divider( modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp, vertical = 32.dp) + .fillMaxWidth(0.5f) ) - ShowAllMicrophonesTile() - BitrateTile() - SamplingRateTile() - EncoderTile(snackbarHostState = snackbarHostState) - OutputFormatTile() + ImportExport(snackbarHostState = snackbarHostState) } } } diff --git a/app/src/main/java/app/myzel394/alibi/ui/utils/file.kt b/app/src/main/java/app/myzel394/alibi/ui/utils/file.kt index 8838d04..cd50b80 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/utils/file.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/utils/file.kt @@ -1,33 +1,53 @@ package app.myzel394.alibi.ui.utils +import android.net.Uri import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext import java.io.File @Composable -fun rememberFileSaverDialog(mimeType: String): ((File) -> Unit) { +fun rememberFileSaverDialog(mimeType: String): ((File, String) -> Unit) { val context = LocalContext.current var file = remember { mutableStateOf(null) } - val launcher = rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument(mimeType)) { - it?.let { - context.contentResolver.openOutputStream(it)?.use { outputStream -> - file.value!!.inputStream().use { inputStream -> - inputStream.copyTo(outputStream) + val launcher = + rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument(mimeType)) { + it?.let { + context.contentResolver.openOutputStream(it)?.use { outputStream -> + file.value!!.inputStream().use { inputStream -> + inputStream.copyTo(outputStream) + } } } + + file.value = null + } + + return { it, name -> + file.value = it + launcher.launch(name ?: it.name) + } +} + +@Composable +fun rememberFileSelectorDialog( + callback: (Uri) -> Unit +): ((String) -> Unit) { + val launcher = + rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()) { + if (it != null) { + callback(it) + } } - file.value = null - } - - return { - file.value = it - launcher.launch(it.name) + return { mimeType -> + launcher.launch(arrayOf(mimeType)) } } diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-af/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-ar/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-b+zh+CN/strings.xml b/app/src/main/res/values-b+zh+CN/strings.xml deleted file mode 100644 index 87a845c..0000000 --- a/app/src/main/res/values-b+zh+CN/strings.xml +++ /dev/null @@ -1,149 +0,0 @@ - - - Alibi - 收起底部动作条 - 关闭底部动作条 - 拖动手柄 - 展开底部动作条 - 接听 - 视频通话 - 拒接 - 挂断 - 来电 - 正在通话 - 正在过滤来电 - 取消 - 关闭导航菜单 - 关闭工作表 - 已收起 - 继续 - 输入日期 - 输入日期:%1$s - 日期不符合预期格式:%1$s - 不允许的日期:%1$s - 日期超出预期年份范围 %1$s - %2$s - 日期 - - 选择日期 - 选定的日期 - 当前的选择:%1$s - 切换到年份:%1$s - - 滚动显示之前的年份 - 滚动显示之后的年份 - 切换到日历输入模式 - 滑动可选择年份,点按可切换回选择日期 - 切换到文本字段输入模式 - 转到下个月 - 转到上个月 - 切换以选择年份 - 选择日期 - 今天 - 年份选择器可见 - 输入的日期范围无效 - 输入日期 - 在范围内 - 结束日期 - 滚动显示下个月 - 滚动显示上个月 - 开始日期 - 选择日期 - 输入无效 - 弹出式窗口 - 对话框 - 取消 - OK - 下拉菜单 - 已展开 - 请输入有效数字 - 请输入一个大于 %s 的数字 - 请输入一个在 %s 和 %s 之间的数字 - %s KB/s - 进行中 - 部分选中 - 导航菜单 - 未选择 - 显示当前录制状态 - 录音机 - 已关闭 - Ok - 已开启 - 范围终点 - 范围起点 - 最小值 - 最大值 - 清除输入 - 删除最后一条输入 - h - 小时 - m - 分钟 - s - - 最多选择 %1$d 个选项 - 至少选择 %1$d 个选项 - 搜索 - 已选择 - 关闭 - 999+ - 以下是搜索建议 - 开关 - 标签页 - 百分之 %1$d。 - 上午 - - %1$d 小时 - 选择小时 - %1$d 点 - 表示小时 - - 选择分钟 - %1$d 分钟 - 表示分钟 - 选择上午或下午 - 下午 - 显示提示 - 提示 - 您确定要删除此录音吗? - 确定删除记录? - 删除 - 暂停录制 - 恢复录制 - 保存自 %s 起的录音 - 保存录音 - 正在处理音频,请勿关闭Alibi! 一旦文件准备好,您将自动收到保存文件的提示 - 处理中 - 根据您的要求,Alibi 将继续在后台录制并存储最近 %s 分钟的录音 - 开始录音 - 音频录制已暂停 - 录制暂停 - Alibi会在后台持续记录 - 录制中 - 您将被重定向到应用程序设置页面,在那里可以授予相关权限 - 请授予权限以继续 - 无法获取权限 - 高级设置 - 您的更改将在下次开始录音时应用 - 您正在录音... - 更高的比特率意味着更好的音频质量以及更大的储存空间占用 - 为音频录制设置比特率 - 比特率 - 编码器 - 强制将输出文件拆分为指定的时长。如果禁用此选项,由于批量音频样本被一同编码,输出文件可能会略长一些。 - 强制指定时长 - 按照指定的时长录制一个单独的批次。Alibi会记录多个批次并删除最旧的批次。在导出音频时,所有批次将被合并到一起。 - 批处理时间 - 设置录音的最大时长 - 最大持续时间 - 输出格式 - 定义每秒从音频信号中提取的采样数 - 设置采样率 - 采样率 - 设置 - 自动 - Alibi就像你手机上的行车记录仪一样。它会不断地录制音频,并在您需要时保存最近的30分钟录音。 - 欢迎使用Alibi! - Alibi不对该应用程序的使用负任何责任。您在使用时需自行承担使用风险。 - 您需要自行承担使用该应用程序所带来的风险和后果。 - 开始使用Alibi - \ 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 new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-ca/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-cs/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-da/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-b+de+DE/strings.xml b/app/src/main/res/values-de/strings.xml similarity index 87% rename from app/src/main/res/values-b+de+DE/strings.xml rename to app/src/main/res/values-de/strings.xml index b40bab7..b91dee1 100644 --- a/app/src/main/res/values-b+de+DE/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1,23 +1,18 @@ - + + Alibi - Abbrechen OK Fortsetzten - %s KB/s Bitte eine gültige Nummer eingeben Bitte gib eine Nummer zwischen%s und %sein - Bitte gib eine größere Zahl als %s ein - - Recorder + Bitte gib eine Zahl größer als %s ein + Aufnahme Zeigt den aktuellen Status der Aufnahme an - Berechtigung verweigert Bitte erteile die Berechtigung, um fortzufahren Du wirst zu den Einstellungen weitergeleitet, um dort die Berechtigung zu erteilen. - Aufnahme starten Aufnahme vom %s speichern Löschen @@ -31,13 +26,11 @@ Audio wird bearbeitet, Alibi nicht schließen! Du wirst automatisch aufgefordert, die Datei zu speichern, wenn diese fertig bearbeitet ist Aufnahme läuft Alibi nimmt im Hintergrund weiter auf - Wilkommen zu Alibi! Alibi funktioniert wird eine Dashcam für dein Handy. Es ermöglicht dir, Ton im Hintergrund kontinuierlich aufzunehmen und die letzten 30 Minuten auf Wunsch zu speichern. Du bist für die Nutzung dieser App verantwortlich! Alibi übernimmt keine Verantwortung für die Nutzung dieser App. Du trägst die alleinige Verantwortung. Die Nutzung erfolgt auf eigene Gefahr. Alibi Starten - Einstellungen Erweiterte Einstellungen Aufnahme läuft @@ -55,13 +48,18 @@ Abtastrate Leg fest, wie oft pro Sekunde der Ton abgetastet werden soll. Eine höhere Abtastrate bedeutet bessere Qualität, aber auch eine größere Dateigröße Leg die Abtastrate fest - Encoder + Kodierer Das Ausgabeformat wurde geändert, da das aktuelle mit diesem Encoder inkompatibel war - Auto + Automatisch Aufnahme pausiert Audio-Aufnahme wurde pausiert Es ist ein Fehler aufgetreten Alibi stieß bei der Aufnahme auf einen Fehler. Soll die Aufnahme gespeichert werden? Sprache Ändern + Einstellungen importieren + Einstellungen exportieren + Sind Sie sicher, dass Sie diese Einstellungen importieren wollen? Ihre aktuellen Einstellungen werden überschrieben! + Einstellungen importieren + Einstellungen wurden erfolgreich importiert! diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-el/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-es/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-fi/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-fr/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-he/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-hu/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-it/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-ja/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-ko/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-nl/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-no/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-pl/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-pt/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-ro/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-ru/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-sr/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-sv/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml new file mode 100644 index 0000000..c85aa2f --- /dev/null +++ b/app/src/main/res/values-tr/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + İptal + Tamam + Devam + %s KB/s + Lütfen geçerli bir sayı girin + %s ve %s arasında bir sayı girin + %s\'den büyük bir sayı girin + Ses Kayıt Cihazı + Mevcut kayıt durumunu gösterir + İzin reddedildi + Devam etmek için izni verin + İzin vermek için uygulama ayarlarına yönlendirileceksiniz. + Kayda Başla + %s tarihinden Kaydı Kaydet + Sil + Kayıt Silinsin mi? + Bu kaydı silmek istediğinizden emin misiniz? + Kaydı Duraklat + Kayda Devam Et + Kaydı Kaydet + Alibi arka planda kayıt yapmaya devam edecek ve son %s dakikayı depolayacaktır + İşleniyor + Ses işleniyor, Alibi\'yi kapatmayın! Dosya hazır olduğunda dosyayı kaydetmeniz istenecektir + Ses Kaydediliyor + Alibi arka planda kayıt yapmaya devam eder + Alibi\'ye Hoş Geldiniz! + Alibi, telefonunuz için bir araç kamerası gibidir. Sürekli olarak sesinizi kaydetmenize ve ihtiyaç duyduğunuzda son 30 dakikayı kaydetmenize olanak tanır. + Bu uygulamanın kullanımından tamamen siz sorumlusunuz + Alibi bu uygulamanın kullanımına ilişkin herhangi bir sorumluluk kabul etmez. Sadece siz sorumlusunuz. Riskleri göze alarak kullanın. + Alibi\'yi Başlat + Ayarlar + Gelişmiş Ayarlar + Kayıt Yapılıyor + Değişiklikleriniz bir sonraki kayıt başlatıldığında uygulanacaktır + Maksimum Süre + Kaydın maksimum süresini ayarlayın + Tek Seferlik Süre + Bu süre boyunca tek bir parça kaydedin. Alibi kayıt alırken birden fazla parça oluşturur ve en eskisini siler. Sesi dışa aktarırken tüm parçalar bir araya getirilir. + Belirtilen uzunluğu zorla + Çıktı dosyasının tam olarak belirtilen uzunlukta olmasını zorlayın. Bu devre dışı bırakılırsa, ses örnekleri toplu olarak kodlandığından çıktı biraz daha uzun olabilir. + Bitrate + Daha yüksek bitrate daha iyi kalite anlamına gelir ancak dosya boyutu da daha büyük olur + Ses kaydı için bitrate ayarlayın + Çıktı Formatı + Örnekleme Hızı + Ses sinyalinden saniyede kaç örnek alınacağını tanımlayın + Örnekleme hızını ayarlayın + Kodlayıcı + Çıktı formatı, mevcut kodlayıcıyla uyumsuz olduğu için değiştirildi + Otomatik + Kayıt Duraklatıldı + Ses Kaydı duraklatıldı + Bir hata oluştu + Alibi, kayıt sırasında bir hata ile karşılaştı. Ses kaydını kaydetmeyi denemek ister misiniz? + Dil + Değiştir + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-uk/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml new file mode 100644 index 0000000..73e0687 --- /dev/null +++ b/app/src/main/res/values-vi/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + Cancel + OK + Continue + %s KB/s + Please enter a valid number + Please enter a number between %s and %s + Please enter a number greater than %s + Recorder + Shows the current recording status + Permission denied + Please grant the permission to continue + You will be redirected to the app settings to grant the permission there. + Start Recording + Save Recording from %s + Delete + Delete Recording? + Are you sure you want to delete this recording? + Pause Recording + Resume Recording + Save Recording + Alibi will continue recording in the background and store the last %s minutes at your request + Processing + Processing Audio, do not close Alibi! You will be automatically prompted to save the file once it\'s ready + Recording Audio + Alibi keeps recording in the background + Welcome to Alibi! + Alibi is like a dashcam for your phone. It allows you to record your audio continuously and save the last 30 minutes when you need it. + You are solely responsible for the use of this app + Alibi does not take any responsibility for the use of this app. You are solely responsible. Use it at your own risk. + Start Alibi + Settings + Advanced Settings + You are recording + Your changes will be applied the next time you start recording + Max duration + Set the maximum duration of the recording + Batch duration + Record a single batch for this duration. Alibi records multiple batches and deletes the oldest one. When exporting the audio, all batches will be merged together + Force exact duration + Force to strip the output file to be the exactly specified duration. If this is disabled, the output file may be a bit longer due to batches of audio samples being encoded together. + Bitrate + A higher bitrate means better quality but also larger file size + Set the bitrate for the audio recording + Output Format + Sampling rate + Define how many samples per second are taken from the audio signal + Set the sampling rate + Encoder + Output Format has been changed because the current one was incompatible with this encoder + Auto + Recording paused + Audio Recording has been paused + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml new file mode 100644 index 0000000..132b236 --- /dev/null +++ b/app/src/main/res/values-zh/strings.xml @@ -0,0 +1,65 @@ + + + Alibi + 取消 + OK + 继续 + %s KB/s + 请输入有效数字 + Please enter a number between %s and %s + Please enter a number greater than %s + 录音机 + 显示当前录制状态 + 无法获取权限 + 请授予权限以继续 + 您将被重定向到应用程序设置页面,在那里可以授予相关权限 + 开始录音 + Save Recording from %s + 删除 + 确定删除记录? + 您确定要删除此录音吗? + 暂停录制 + 恢复录制 + 保存录音 + Alibi will continue recording in the background and store the last %s minutes at your request + 处理中 + 正在处理音频,请勿关闭Alibi! 一旦文件准备好,您将自动收到保存文件的提示 + 录制中 + Alibi会在后台持续记录 + 欢迎使用Alibi! + Alibi就像你手机上的行车记录仪一样。它会不断地录制音频,并在您需要时保存最近的30分钟录音。 + 您需要自行承担使用该应用程序所带来的风险和后果。 + Alibi不对该应用程序的使用负任何责任。您在使用时需自行承担使用风险。 + 开始使用Alibi + 设置 + 高级设置 + 您正在录音... + 您的更改将在下次开始录音时应用 + 最大持续时间 + 设置录音的最大时长 + 批处理时间 + 按照指定的时长录制一个单独的批次。Alibi会记录多个批次并删除最旧的批次。在导出音频时,所有批次将被合并到一起。 + 强制指定时长 + 强制将输出文件拆分为指定的时长。如果禁用此选项,由于批量音频样本被一同编码,输出文件可能会略长一些。 + 比特率 + 更高的比特率意味着更好的音频质量以及更大的储存空间占用 + 为音频录制设置比特率 + 输出格式 + 采样率 + 定义每秒从音频信号中提取的采样数 + 设置采样率 + 编码器 + Output Format has been changed because the current one was incompatible with this encoder + 自动 + 录制暂停 + 音频录制已暂停 + An error occured + Alibi encountered an error during recording. Would you like to try saving the recording? + Language + Change + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8a45393..e439096 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -72,4 +72,9 @@ Show hidden microphones Show all microphones, including internal ones Hidden Microphones + Import Settings + Export Settings + Are you sure you want to import these settings? Your current settings will be overwritten! + Import settings + Settings have been imported successfully! \ No newline at end of file diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 0000000..c6196bb --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,13 @@ +files: + - source: /app/src/main/res/values/strings.xml + translation: /app/src/main/res/values-%two_letters_code%/strings.xml + translate_attributes: 0 + content_segmentation: 0 + type: xml + languages_mapping: + android_code: + de-rDE: de + tr-rTR: tr + zh-rCN: zh + - source: /fastlane/metadata/android/en-US/*.txt + translation: /fastlane/metadata/android/%locale%/%original_file_name% diff --git a/fastlane/metadata/android/af-ZA/full_description.txt b/fastlane/metadata/android/af-ZA/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/af-ZA/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/af-ZA/short_description.txt b/fastlane/metadata/android/af-ZA/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/af-ZA/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/ar-SA/full_description.txt b/fastlane/metadata/android/ar-SA/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/ar-SA/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/ar-SA/short_description.txt b/fastlane/metadata/android/ar-SA/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/ar-SA/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/ca-ES/full_description.txt b/fastlane/metadata/android/ca-ES/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/ca-ES/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/ca-ES/short_description.txt b/fastlane/metadata/android/ca-ES/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/ca-ES/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/cs-CZ/full_description.txt b/fastlane/metadata/android/cs-CZ/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/cs-CZ/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/cs-CZ/short_description.txt b/fastlane/metadata/android/cs-CZ/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/cs-CZ/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/da-DK/full_description.txt b/fastlane/metadata/android/da-DK/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/da-DK/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/da-DK/short_description.txt b/fastlane/metadata/android/da-DK/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/da-DK/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/de-DE/full_description.txt b/fastlane/metadata/android/de-DE/full_description.txt new file mode 100644 index 0000000..e453306 --- /dev/null +++ b/fastlane/metadata/android/de-DE/full_description.txt @@ -0,0 +1 @@ +

Alibi speichert die letzten 30 Minuten, sobald Du sie benötigst.

Alles ist komplett konfigurierbar. Keine Internetverbindung erforderlich.

diff --git a/fastlane/metadata/android/de-DE/short_description.txt b/fastlane/metadata/android/de-DE/short_description.txt new file mode 100644 index 0000000..271f750 --- /dev/null +++ b/fastlane/metadata/android/de-DE/short_description.txt @@ -0,0 +1 @@ +Benutze Dein Smartphone wie eine Dashcam und speicher die letzten 30 Minuten, wenn Du sie brauchst. \ No newline at end of file diff --git a/fastlane/metadata/android/el-GR/full_description.txt b/fastlane/metadata/android/el-GR/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/el-GR/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/el-GR/short_description.txt b/fastlane/metadata/android/el-GR/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/el-GR/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/es-ES/full_description.txt b/fastlane/metadata/android/es-ES/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/es-ES/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/es-ES/short_description.txt b/fastlane/metadata/android/es-ES/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/es-ES/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/fi-FI/full_description.txt b/fastlane/metadata/android/fi-FI/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/fi-FI/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/fi-FI/short_description.txt b/fastlane/metadata/android/fi-FI/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/fi-FI/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/full_description.txt b/fastlane/metadata/android/fr-FR/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/fr-FR/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/fr-FR/short_description.txt b/fastlane/metadata/android/fr-FR/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/he-IL/full_description.txt b/fastlane/metadata/android/he-IL/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/he-IL/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/he-IL/short_description.txt b/fastlane/metadata/android/he-IL/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/he-IL/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/hu-HU/full_description.txt b/fastlane/metadata/android/hu-HU/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/hu-HU/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/hu-HU/short_description.txt b/fastlane/metadata/android/hu-HU/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/it-IT/full_description.txt b/fastlane/metadata/android/it-IT/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/it-IT/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/it-IT/short_description.txt b/fastlane/metadata/android/it-IT/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/it-IT/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/ja-JP/full_description.txt b/fastlane/metadata/android/ja-JP/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/ja-JP/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/ja-JP/short_description.txt b/fastlane/metadata/android/ja-JP/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/ja-JP/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/ko-KR/full_description.txt b/fastlane/metadata/android/ko-KR/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/ko-KR/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/ko-KR/short_description.txt b/fastlane/metadata/android/ko-KR/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/ko-KR/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/nl-NL/full_description.txt b/fastlane/metadata/android/nl-NL/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/nl-NL/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/nl-NL/short_description.txt b/fastlane/metadata/android/nl-NL/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/nl-NL/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/no-NO/full_description.txt b/fastlane/metadata/android/no-NO/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/no-NO/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/no-NO/short_description.txt b/fastlane/metadata/android/no-NO/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/no-NO/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/pl-PL/full_description.txt b/fastlane/metadata/android/pl-PL/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/pl-PL/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/pl-PL/short_description.txt b/fastlane/metadata/android/pl-PL/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/pt-BR/full_description.txt b/fastlane/metadata/android/pt-BR/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/pt-BR/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/pt-BR/short_description.txt b/fastlane/metadata/android/pt-BR/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/pt-BR/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/pt-PT/full_description.txt b/fastlane/metadata/android/pt-PT/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/pt-PT/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/pt-PT/short_description.txt b/fastlane/metadata/android/pt-PT/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/pt-PT/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/ro-RO/full_description.txt b/fastlane/metadata/android/ro-RO/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/ro-RO/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/ro-RO/short_description.txt b/fastlane/metadata/android/ro-RO/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/ro-RO/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/ru-RU/full_description.txt b/fastlane/metadata/android/ru-RU/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/ru-RU/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/ru-RU/short_description.txt b/fastlane/metadata/android/ru-RU/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/ru-RU/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/sr-SP/full_description.txt b/fastlane/metadata/android/sr-SP/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/sr-SP/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/sr-SP/short_description.txt b/fastlane/metadata/android/sr-SP/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/sr-SP/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/sv-SE/full_description.txt b/fastlane/metadata/android/sv-SE/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/sv-SE/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/sv-SE/short_description.txt b/fastlane/metadata/android/sv-SE/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/sv-SE/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/tr-TR/full_description.txt b/fastlane/metadata/android/tr-TR/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/tr-TR/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/tr-TR/short_description.txt b/fastlane/metadata/android/tr-TR/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/tr-TR/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/uk-UA/full_description.txt b/fastlane/metadata/android/uk-UA/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/uk-UA/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/uk-UA/short_description.txt b/fastlane/metadata/android/uk-UA/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/uk-UA/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/vi-VN/full_description.txt b/fastlane/metadata/android/vi-VN/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/vi-VN/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/vi-VN/short_description.txt b/fastlane/metadata/android/vi-VN/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/vi-VN/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/zh-CN/full_description.txt b/fastlane/metadata/android/zh-CN/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/zh-CN/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/zh-CN/short_description.txt b/fastlane/metadata/android/zh-CN/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/zh-CN/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file diff --git a/fastlane/metadata/android/zh-TW/full_description.txt b/fastlane/metadata/android/zh-TW/full_description.txt new file mode 100644 index 0000000..3e9ea0d --- /dev/null +++ b/fastlane/metadata/android/zh-TW/full_description.txt @@ -0,0 +1 @@ +

Alibi keeps recording in the background and saves the last 30 minutes at your request.

Everything is completely configurable. No internet connection required.

diff --git a/fastlane/metadata/android/zh-TW/short_description.txt b/fastlane/metadata/android/zh-TW/short_description.txt new file mode 100644 index 0000000..4a30325 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/short_description.txt @@ -0,0 +1 @@ +Use your phone as a dashcam and save the last 30 minutes when you need it. \ No newline at end of file