diff --git a/app/src/main/java/org/fairscan/app/ui/components/Scaffold.kt b/app/src/main/java/org/fairscan/app/ui/components/Scaffold.kt index 691fc2b..b593aee 100644 --- a/app/src/main/java/org/fairscan/app/ui/components/Scaffold.kt +++ b/app/src/main/java/org/fairscan/app/ui/components/Scaffold.kt @@ -46,7 +46,9 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import org.fairscan.app.R import org.fairscan.app.ui.Navigation @Composable @@ -169,7 +171,7 @@ fun AppOverflowMenu( modifier ) { IconButton(onClick = { expanded = true }) { - Icon(Icons.Default.MoreVert, contentDescription = "Menu") + Icon(Icons.Default.MoreVert, contentDescription = stringResource(R.string.menu)) } DropdownMenu( @@ -181,7 +183,7 @@ fun AppOverflowMenu( DropdownMenuItem( leadingIcon = { Icon(Icons.Default.Settings, contentDescription = null) }, - text = { Text("Settings") }, + text = { Text(stringResource(R.string.settings)) }, onClick = { expanded = false navigation.toSettingsScreen() @@ -190,7 +192,7 @@ fun AppOverflowMenu( DropdownMenuItem( leadingIcon = { Icon(Icons.Default.Info, contentDescription = null) }, - text = { Text("About") }, + text = { Text(stringResource(R.string.about)) }, onClick = { expanded = false navigation.toAboutScreen() diff --git a/app/src/main/java/org/fairscan/app/ui/screens/settings/SettingsScreen.kt b/app/src/main/java/org/fairscan/app/ui/screens/settings/SettingsScreen.kt index 4a32e07..be3a04f 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/settings/SettingsScreen.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/settings/SettingsScreen.kt @@ -15,6 +15,7 @@ package org.fairscan.app.ui.screens.settings +import android.content.Context import androidx.activity.compose.BackHandler import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.clickable @@ -40,9 +41,12 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.net.toUri +import org.fairscan.app.R import org.fairscan.app.ui.components.BackButton import org.fairscan.app.ui.theme.FairScanTheme @@ -58,7 +62,7 @@ fun SettingsScreen( Scaffold( topBar = { TopAppBar( - title = { Text("Settings") }, + title = { Text(stringResource(R.string.settings)) }, navigationIcon = { BackButton(onBack) }, ) } @@ -76,8 +80,9 @@ private fun SettingsContent( onResetExportDirClick: () -> Unit, modifier: Modifier = Modifier, ) { + val context = LocalContext.current val folderName = remember(uiState.exportDirUri) { - extractFolderName(uiState.exportDirUri) + extractFolderName(uiState.exportDirUri, context) } Column( @@ -86,7 +91,7 @@ private fun SettingsContent( .padding(20.dp) ) { DirectorySettingItem( - label = "Export directory", + label = stringResource(R.string.export_directory), folderName = folderName, onClick = onChooseDirectoryClick ) @@ -98,7 +103,7 @@ private fun SettingsContent( onClick = onResetExportDirClick, border = BorderStroke(1.dp, MaterialTheme.colorScheme.primary), ) { - Text("Reset to default") + Text(stringResource(R.string.reset_to_default)) } } } @@ -138,15 +143,15 @@ fun DirectorySettingItem( Icon( Icons.Default.Folder, - contentDescription = "Change directory", + contentDescription = stringResource(R.string.change_directory), ) } } } } -private fun extractFolderName(uriString: String?): String { - if (uriString == null) return "Downloads (default)" +private fun extractFolderName(uriString: String?, context: Context): String { + if (uriString == null) return context.getString(R.string.download_dirname) return runCatching { val uri = uriString.toUri() uri.lastPathSegment?.substringAfter(':')?.substringAfter('/') ?: uriString diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 0f98a39..1c62f8e 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -6,6 +6,7 @@ Byl odepřen přístup k fotoaparátu Aby bylo možné skenovat dokumenty, tato aplikace potřebuje přístup k fotoaparátu. Nasnímané obrázky jsou ukládány pouze do tohoto zařízení a budou smazány, když zavřete stávající dokument. Zrušit + Změnit složku Smazat text Kontakt Protokoly zkopírovány do schránky @@ -21,9 +22,10 @@ Nebyl rozpoznán žádná dokument Nebyla nazelena žádná aplikace pro otevření PDF Chyba při ukládání PDF + Složka pro export Exportovat PDF - Název souboru Velikost souboru: %1$s + Název souboru Povolit přístup Poslední PDF uložené do stažených: Kníhovny @@ -31,14 +33,17 @@ Open-source knihovny Licence Tato aplikace je licencována pod GNU General Public License v3.0. + Menu Toto skenování bude ztraceno. Chcete pokračovat? Otevřít Otevřít PDF PDF bylo uloženo do %1s + Obnovit výchozí Obnovit Uložit Nové skenování Probíhá skenování + Nastavení Sdílet Sdílet PDF Nelze uložit PDF: přístup zakázán @@ -46,8 +51,8 @@ Zapnout svítilnu Neznámá velikost Verze - Zobrazit úplnou licenci Zobrazit úplný seznam + Zobrazit úplnou licenci Ano %d stránka diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index b3035ae..6aa6c82 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -6,6 +6,7 @@ Kamerazugriff wurde verweigert Die App benötigt Zugriff auf die Kamera, um Dokumente zu scannen. Aufgenommene Bilder werden nur auf diesem Gerät gespeichert und beim Schließen des aktuellen Dokuments gelöscht. Abbrechen + Ordner ändern Text löschen Kontakt Logs in die Zwischenablage kopiert @@ -21,9 +22,10 @@ Kein Dokument erkannt Keine App zum Öffnen von PDF gefunden PDF konnte nicht gespeichert werden + Exportordner PDF exportieren - Dateiname Dateigröße: %1$s + Dateiname Berechtigung erteilen Zuletzt gespeicherte PDFs in Downloads: Bibliotheken @@ -31,14 +33,17 @@ Open-Source-Bibliotheken Lizenz Diese Anwendung ist unter der GNU General Public License v3.0 lizenziert. + Menü Das aktuelle Dokument geht verloren. Möchten Sie fortfahren? Öffnen PDF öffnen PDF gespeichert in %1s + Auf Standard zurücksetzen Fortsetzen Speichern Neuer Scan Scan läuft + Einstellungen Teilen PDF teilen PDF-Datei kann nicht gespeichert werden: Berechtigung verweigert @@ -46,8 +51,8 @@ Taschenlampe einschalten Unbekannte Größe Version - Vollständige Lizenz anzeigen Vollständige Liste anzeigen + Vollständige Lizenz anzeigen Ja %d Seite diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 9cdd7b1..f1c1af6 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -6,6 +6,7 @@ Permiso de cámara denegado La aplicación necesita acceso a la cámara para escanear documentos. Las imágenes capturadas se guardan solo en este dispositivo y se eliminarán cuando cierres el documento actual. Cancelar + Cambiar carpeta Borrar texto Contacto Registros copiados al portapapeles @@ -21,9 +22,10 @@ No se detectó ningún documento No se encontró ninguna aplicación para abrir PDF Error al guardar el PDF + Carpeta de exportación Exportar PDF - Nombre del archivo Tamaño del archivo: %1$s + Nombre del archivo Conceder permiso PDF recientes guardados en Descargas: Bibliotecas @@ -31,14 +33,17 @@ Bibliotecas de código abierto Licencia Esta aplicación está licenciada bajo la GNU General Public License v3.0. + Menú El escaneo actual se perderá. ¿Deseas continuar? Abrir Abrir PDF PDF guardado en %1s + Restablecer valores predeterminados Reanudar Guardar Nuevo escaneo Escaneo en curso + Ajustes Compartir Compartir PDF No se puede guardar el archivo PDF: permiso denegado @@ -46,8 +51,8 @@ Encender linterna Tamaño desconocido Versión - Ver la licencia completa Ver lista completa + Ver la licencia completa %d página diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 84e7904..3d68574 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -6,8 +6,9 @@ L\'autorisation d\'accès à la caméra a été refusée L’application a besoin d’accéder à l’appareil photo pour scanner des documents. Les images capturées sont enregistrées uniquement sur cet appareil et seront supprimées lorsque vous fermerez le document en cours. Annuler - Contact + Changer de dossier Effacer le text + Contact Logs copiés dans le presse-papiers Copier les logs Création du PDF… @@ -21,9 +22,10 @@ Aucun document détecté Aucune application trouvée pour ouvrir un PDF Échec de l\'enregistrement du PDF + Dossier d’export Exporter en PDF - Nom de fichier Taille du fichier : %1$s + Nom de fichier Autoriser Derniers PDF enregistrés dans Téléchargements : Bibliothèques @@ -31,14 +33,17 @@ Bibliothèques open source Licence Cette application est distribuée sous licence GNU General Public License v3.0. + Menu Le scan en cours sera perdu. Voulez-vous continuer ? Ouvrir Ouvrir le PDF PDF enregistré dans %1s + Réinitialiser par défaut Reprendre Enregistrer Nouveau scan Scan en cours + Paramètres Partager Partager le PDF Impossible d’enregistrer le fichier PDF : permission refusée @@ -46,8 +51,8 @@ Allumer la torche Taille inconnue Version - Voir la licence complète Voir la liste complète + Voir la licence complète Oui %d page diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index bc3cbae..c94c3a7 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -6,6 +6,7 @@ Autorizzazione fotocamera negata L\'app richiede l\'accesso alla fotocamera per scansionare documenti. Le immagini catturate sono salvate solo in questo dispositivo e verranno eliminate quando chiudi il documento attuale. Annulla + Cambia cartella Svuota testo Contatti Log copiati negli appunti @@ -21,9 +22,10 @@ Nessun documento rilevato Nessuna app trovata per aprire PDF Salvataggio PDF fallito + Cartella di esportazione Esporta PDF - Nome file Dimensione file: %1$s + Nome file Concendi autorizzazione PDF recenti salvati in Download: Librerie @@ -31,14 +33,17 @@ Librerie open source Licenza Questa app è concessa in licenza ai sensi della GNU General Public License v3.0. + Menu La scansiona attuale verrà persa. Vuoi continuare? Apri Apri PDF PDF salvato in %1s + Ripristina impostazioni predefinite Riprendi Salva Nuova scansione Scansione in corso + Impostazioni Condividi Condividi PDF Impossibile salvare il file PDF: autorizzazione negata @@ -46,8 +51,8 @@ Accendi la torcia Dimensione sconosciuta Versione - Vedi la licenza completa Vedi l\'elenco completo + Vedi la licenza completa %d pagina diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ccbbcf9..6808211 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -6,6 +6,7 @@ Permissão da câmera negada O aplicativo precisa de acesso à câmera para digitalizar documentos. As imagens capturadas são armazenadas apenas neste dispositivo e serão excluídas quando você fechar o documento atual. Cancelar + Alterar diretório Limpar texto Contato Registros copiados para a área de transferência @@ -21,9 +22,10 @@ Nenhum documento detectado Nenhum aplicativo encontrado para abrir PDF Falha ao salvar PDF + Diretório de exportação Exportar PDF - Nome do arquivo Tamanho do arquivo: %1$s + Nome do arquivo Conceder permissão PDFs recentes salvos em Downloads: Bibliotecas @@ -31,14 +33,17 @@ Bibliotecas de código aberto Licença Este aplicativo é licenciado sob a GNU General Public License v3.0. + Menu A digitalização atual será perdida. Deseja continuar? Abrir Abrir PDF PDF salvo em %1s + Restaurar padrão Retomar Salvar Nova digitalização Digitalização em andamento + Configurações Compartilhar Compartilhar PDF Não foi possível salvar o arquivo PDF: permissão negada @@ -46,8 +51,8 @@ Ligar lanterna Tamanho desconhecido Versão - Ver licença completa Ver lista completa + Ver licença completa Sim %d página diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 9602069..2779caf 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -6,6 +6,7 @@ В доступе к камере отказано Для сканирования документов приложению требуется доступ к камере. Отснятые изображения хранятся только на данном устройстве и удаляются по окончании работы с текущим документом. Отмена + Изменить папку Стереть текст Контакты Журналы скопированы в буфер обмена @@ -21,9 +22,10 @@ Документ не обнаружен Приложения для работы с PDF не обнаружено Сбой при сохранении PDF + Папка экспорта Экспорт PDF - Имя файла Размер файла: %1$s + Имя файла Предоставить разрешение Последние PDF сохранены в Download: Библиотеки @@ -31,14 +33,17 @@ Библиотеки с открытым исходным кодом Лицензия Это приложение лицензировано в соответствии с GNU General Public License v3.0. + Меню Результаты текущего сканирования будут потеряны. Желаете продолжить? Открыть Открыть PDF PDF сохранен в %1s + Сбросить по умолчанию Продолжить Сохранить Начать Сканирование выполняется + Настройки Поделиться Поделиться PDF Не удается сохранить файл PDF: в разрешении отказано @@ -46,8 +51,8 @@ Включить фонарик Неизвестный размер Версия - Просмотреть полную лицензию Просмотреть полный список + Просмотреть полную лицензию Да %d страница diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 899ef83..2d9a818 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -6,6 +6,7 @@ 相机权限被拒绝 应用请求相机权限访问扫描文档。捕获的图像仅存储在此设备上,并且在关闭当前文档时将被删除。 取消 + 更改目录 清除文字 联系人 日志已复制到剪贴板 @@ -21,9 +22,10 @@ 未检测到任何文档 未找到可打开PDF的应用 保存PDF失败 + 导出目录 导出PDF - 文件名字 文件大小: %1$s + 文件名字 授予权限 最近保存的PDF: @@ -31,14 +33,17 @@ 开源库 许可证 本应用根据GNU General Public License v3.0获得许可。 + 菜单 当前扫描将丢失。是否继续? 打开 打开 PDF PDF 已保存到 %1$s + 恢复默认设置 恢复 保存 新建扫描 正在进行扫描 + 设置 共享 共享 PDF 无法保存PDF文件:权限被拒绝 @@ -46,8 +51,8 @@ 打开手电筒 未知大小 版本 - 查看完整许可证 查看完整列表 + 查看完整许可证 %d 页 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc2b640..b07a379 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,6 +7,7 @@ Camera permission was denied The app requires camera access to scan documents. Captured images are stored only on this device and will be deleted when you close the current document. Cancel + Change directory Clear text Contact Logs copied to clipboard @@ -22,9 +23,10 @@ No document detected No app found to open PDF Failed to save PDF + Export directory Export PDF - Filename File size: %1$s + Filename Grant permission Recent PDFs saved in Downloads: Libraries @@ -32,14 +34,17 @@ Open-source libraries License This application is licensed under the GNU General Public License v3.0. + Menu The current scan will be lost. Do you want to continue? Open Open PDF PDF saved in %1s + Reset to default Resume Save New Scan Scan in progress + Settings Share Share PDF Cannot save PDF file: permission was denied @@ -47,8 +52,8 @@ Turn on torch Unknown size Version - View the full license View full list + View the full license Yes %d page