diff --git a/app/src/main/java/org/fairscan/app/ui/components/Strings.kt b/app/src/main/java/org/fairscan/app/ui/components/Strings.kt index ef46bee..aba6b2c 100644 --- a/app/src/main/java/org/fairscan/app/ui/components/Strings.kt +++ b/app/src/main/java/org/fairscan/app/ui/components/Strings.kt @@ -25,9 +25,3 @@ import java.util.Date fun pageCountText(quantity: Int): String { return LocalResources.current.getQuantityString(R.plurals.page_count, quantity, quantity) } - -fun formatDate(timestamp: Long, context: Context): String { - val date = Date(timestamp) - return DateFormat.getMediumDateFormat(context).format(date) + " " + - DateFormat.getTimeFormat(context).format(date) -} diff --git a/app/src/main/java/org/fairscan/app/ui/screens/export/ExportScreen.kt b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportScreen.kt index 69e074b..1b193b1 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/export/ExportScreen.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportScreen.kt @@ -286,8 +286,10 @@ private fun PdfInfos( uiState.ocrActivation?.let { activated -> Text( - // TODO externalize - if (activated) "Text recognition: enabled" else "Text recognition: disabled", + if (activated) + stringResource(R.string.text_recognition_enabled) + else + stringResource(R.string.text_recognition_disabled), style = MaterialTheme.typography.bodySmall, ) } diff --git a/app/src/main/java/org/fairscan/app/ui/screens/settings/AddOcrLanguage.kt b/app/src/main/java/org/fairscan/app/ui/screens/settings/AddOcrLanguage.kt index 9a93089..ee1fdaf 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/settings/AddOcrLanguage.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/settings/AddOcrLanguage.kt @@ -43,8 +43,10 @@ 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.text.intl.Locale import androidx.compose.ui.unit.dp +import org.fairscan.app.R import org.fairscan.app.data.OcrLanguage @Composable @@ -79,14 +81,15 @@ fun AddLanguageBottomSheetContent( .fillMaxWidth() .padding(start = 16.dp, end = 8.dp, top = 0.dp) ) { - Text( // TODO externalize - text = "Language files are downloaded from the official Tesseract project. " + - "OCR processing remains fully offline.", + Text( + text = stringResource(R.string.settings_ocr_download_intro), style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.weight(1f).padding(0.dp) + modifier = Modifier + .weight(1f) + .padding(0.dp) ) IconButton(onDismiss) { - Icon(Icons.Default.Close, contentDescription = "Close") // TODO Externalize + Icon(Icons.Default.Close, contentDescription = stringResource(R.string.close)) } } @@ -94,14 +97,14 @@ fun AddLanguageBottomSheetContent( modifier = Modifier.fillMaxSize() ) { if (suggested != null) { - item { TextItem("Suggested") } + item { TextItem(stringResource(R.string.settings_ocr_suggested)) } item { val displayName = suggested.displayName(locale) LanguageItem(suggested, displayName, onInstallLanguage) } item { HorizontalDivider(modifier = Modifier.padding(vertical = 8.dp)) } } - item { TextItem("All languages") } + item { TextItem(stringResource(R.string.settings_ocr_all_languages)) } items( availableLanguages.filter { (lang, _) -> lang != suggested }, key = { (lang, _) -> lang.code } @@ -114,7 +117,7 @@ fun AddLanguageBottomSheetContent( @Composable private fun TextItem(text: String) { Text( - text = text, // TODO externalize + text = text, style = MaterialTheme.typography.titleSmall, modifier = Modifier.padding(horizontal = 16.dp, vertical = 16.dp) ) @@ -142,7 +145,7 @@ fun OcrDownloadDialog( ) { AlertDialog( onDismissRequest = {}, // tapping outside the dialog should not cancel - title = { Text("Downloading OCR language") }, // TODO externalize + title = { Text(stringResource(R.string.settings_ocr_downloading)) }, text = { Column{ Text(state.language.displayName(Locale.current.platformLocale)) @@ -168,7 +171,7 @@ fun OcrDownloadDialog( } }, dismissButton = { - TextButton(onClick = onCancel) { Text("Cancel") } // TODO externalize + TextButton(onClick = onCancel) { Text(stringResource(R.string.cancel)) } }, confirmButton = {} ) 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 284847c..76901e9 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 @@ -209,7 +209,7 @@ private fun SettingsContent( HorizontalDivider() Spacer(Modifier.height(16.dp)) Text( - "OCR", // TODO externalize + stringResource(R.string.settings_section_ocr), style = MaterialTheme.typography.titleLarge ) Spacer(Modifier.height(16.dp)) @@ -242,11 +242,11 @@ private fun SettingsContent( ) { Icon(Icons.Default.Add, contentDescription = null) Spacer(Modifier.width(4.dp)) - Text("Add language") // TODO externalize + Text(stringResource(R.string.settings_ocr_add_language)) } if (uiState.enabledOcrLanguages != uiState.installedOcrLanguages) { TextButton(onClick = { showDeleteLanguageDialog.value = true }) { - Text("Clean up inactive languages…") // TODO externalize + Text(stringResource(R.string.settings_ocr_clean_up)) } } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index e575644..b23fcce 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -9,6 +9,7 @@ ألغِ غيّر المجلد امحُ النص + إغلاق فلتر تلقائي ألوان @@ -57,6 +58,13 @@ احفظ مسح جديد الإعدادات + إضافة لغة + جميع اللغات + تنظيف اللغات غير المستخدمة… + يتم تنزيل ملفات اللغة من مشروع Tesseract الرسمي. تبقى عملية التعرّف على النصوص دون اتصال بالإنترنت بالكامل. + جارٍ تنزيل ملف اللغة + مقترح + التعرّف على النصوص المسح التصدير شارك @@ -64,6 +72,8 @@ تعذر حفظ الملف: رُفض الإذن المساعدة أبلِغ عن مشكلة في آخر صورة مُلتقطَة + التعرّف على النصوص: معطّل + التعرّف على النصوص: مفعّل أطفئ الكشاف شغّل الكشاف حجم مجهول diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index fc98aa5..b033ed2 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -9,6 +9,7 @@ Zrušit Změnit složku Smazat text + Zavřít Filtr Automaticky Barva @@ -57,6 +58,13 @@ Uložit Nové skenování Nastavení + Přidat jazyk + Všechny jazyky + Odstranit nepoužívané jazyky… + Jazykové soubory jsou stahovány z oficiálního projektu Tesseract. Rozpoznávání textu zůstává zcela offline. + Stahování jazykového souboru + Doporučeno + Rozpoznávání textu Skenování Export Sdílet @@ -64,6 +72,8 @@ Nelze uložit soubor: oprávnění bylo odmítnuto Podpora Nahlásit problém s posledním zachyceným obrázkem + Rozpoznávání textu: vypnuto + Rozpoznávání textu: zapnuto Vypnout svítilnu Zapnout svítilnu Neznámá velikost diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 05337dc..ba721ab 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -9,6 +9,7 @@ Abbrechen Ordner ändern Text löschen + Schließen Filter Automatisch Farbe @@ -57,6 +58,13 @@ Speichern Neuer Scan Einstellungen + Sprache hinzufügen + Alle Sprachen + Nicht verwendete Sprachen bereinigen… + Sprachdateien werden vom offiziellen Tesseract-Projekt heruntergeladen. Die Texterkennung bleibt vollständig offline. + Sprachdatei wird heruntergeladen + Empfohlen + Texterkennung Scan Export Teilen @@ -64,6 +72,8 @@ Datei kann nicht gespeichert werden: Berechtigung verweigert Support Problem mit dem zuletzt aufgenommenen Bild melden + Texterkennung: deaktiviert + Texterkennung: aktiviert Taschenlampe ausschalten Taschenlampe einschalten Unbekannte Größe diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index e7eacc5..8fbd158 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -9,6 +9,7 @@ Cancelar Cambiar carpeta Borrar texto + Cerrar Filtro Automático Color @@ -57,6 +58,13 @@ Guardar Nuevo escaneo Ajustes + Añadir idioma + Todos los idiomas + Limpiar idiomas no utilizados… + Los archivos de idioma se descargan desde el proyecto oficial Tesseract. El reconocimiento de texto sigue siendo completamente local. + Descargando archivo de idioma + Sugerido + Reconocimiento de texto Escaneo Exportación Compartir @@ -64,6 +72,8 @@ No se puede guardar el archivo: permiso denegado Soporte Informar de un problema con la última imagen capturada + Reconocimiento de texto: desactivado + Reconocimiento de texto: activado Apagar linterna Encender linterna Tamaño desconocido diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 9adc448..b9a5096 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -9,6 +9,7 @@ Annuler Changer de dossier Effacer le text + Fermer Filtre Automatique Couleur @@ -57,6 +58,13 @@ Enregistrer Nouveau scan Paramètres + Ajouter une langue + Toutes les langues + Supprimer les langues inutilisées… + Les fichiers de langue sont téléchargés depuis le projet officiel Tesseract. La reconnaissance de texte reste entièrement hors ligne. + Téléchargement du fichier de langue + Suggéré + Reconnaissance de texte Scan Export Partager @@ -64,6 +72,8 @@ Impossible d’enregistrer le fichier : permission refusée Support Signaler un problème avec la dernière image capturée + Reconnaissance de texte : désactivée + Reconnaissance de texte : activée Éteindre la torche Allumer la torche Taille inconnue diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 1fe729f..7fd8b0c 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -9,6 +9,7 @@ Cancelar Trocar cartafol Borrar texto + Pechar Filtro Automático Cor @@ -57,6 +58,13 @@ Gardar Novo escaneo Configuración + Engadir idioma + Todos os idiomas + Limpar idiomas non utilizados… + Os ficheiros de idioma descárganse desde o proxecto oficial Tesseract. O recoñecemento de texto segue sendo completamente sen conexión. + Descargando ficheiro de idioma + Suxerido + Recoñecemento de texto Escaneo Exportación Compartir @@ -64,6 +72,8 @@ Non se pode gardar o ficheiro: permiso denegado Soporte Informar dun problema coa derradeira imaxe capturada + Recoñecemento de texto: desactivado + Recoñecemento de texto: activado Apagar lanterna Acender lanterna Tamaño descoñecido diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 838050c..4b44a7c 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -9,6 +9,7 @@ Annulla Cambia cartella Svuota testo + Chiudi Filtro Automatico Colore @@ -57,6 +58,13 @@ Salva Nuova scansione Impostazioni + Aggiungi lingua + Tutte le lingue + Rimuovi le lingue inutilizzate… + I file di lingua vengono scaricati dal progetto ufficiale Tesseract. Il riconoscimento del testo rimane completamente offline. + Download del file di lingua + Suggerito + Riconoscimento del testo Scansione Esportazione Condividi @@ -64,6 +72,8 @@ Impossibile salvare il file: permesso negato Supporto Segnala un problema con l’ultima immagine acquisita + Riconoscimento del testo: disattivato + Riconoscimento del testo: attivato Spegni la torcia Accendi la torcia Dimensione sconosciuta diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index e952c37..9985c54 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -9,6 +9,7 @@ キャンセル フォルダを変更 テキストを消去 + 閉じる フィルター 自動 カラー @@ -57,6 +58,13 @@ 保存 新規スキャン 設定 + 言語を追加 + すべての言語 + 未使用の言語を整理… + 言語ファイルは公式の Tesseract プロジェクトからダウンロードされます。テキスト認識は完全にオフラインで実行されます。 + 言語ファイルをダウンロード中 + おすすめ + テキスト認識 スキャン エクスポート 共有 @@ -64,6 +72,8 @@ 権限が拒否されたため、ファイルを保存できません サポート 最後に撮影した画像の問題を報告 + テキスト認識: 無効 + テキスト認識: 有効 ライトをオフ ライトをオン サイズ不明 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 588cb7e..63fba76 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -9,6 +9,7 @@ Cancelar Alterar diretório Limpar texto + Fechar Filtro Automático Cor @@ -57,6 +58,13 @@ Salvar Nova digitalização Configurações + Adicionar idioma + Todos os idiomas + Remover idiomas não utilizados… + Os arquivos de idioma são baixados do projeto oficial Tesseract. O reconhecimento de texto permanece totalmente offline. + Baixando arquivo de idioma + Sugerido + Reconhecimento de texto Digitalização Exportação Compartilhar @@ -64,6 +72,8 @@ Não foi possível salvar o arquivo: permissão negada Suporte Relatar um problema com a última imagem capturada + Reconhecimento de texto: desativado + Reconhecimento de texto: ativado Desligar lanterna Ligar lanterna Tamanho desconhecido diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a7ffa46..11535c4 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -9,6 +9,7 @@ Отмена Изменить папку Стереть текст + Закрыть Фильтр Автоматически Цвет @@ -57,6 +58,13 @@ Сохранить Начать Настройки + Добавить язык + Все языки + Удалить неиспользуемые языки… + Языковые файлы загружаются из официального проекта Tesseract. Распознавание текста остаётся полностью офлайн. + Загрузка языкового файла + Рекомендуется + Распознавание текста Сканирование Экспорт Поделиться @@ -64,6 +72,8 @@ Невозможно сохранить файл: доступ запрещён Поддержка Сообщить о проблеме с последним сделанным изображением + Распознавание текста: отключено + Распознавание текста: включено Выключить фонарик Включить фонарик Неизвестный размер diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 43c6f51..33e94d2 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -9,6 +9,7 @@ Avbryt Byt mapp Rensa text + Stäng Filter Automatiskt Färg @@ -57,6 +58,13 @@ Spara Ny skanning Inställningar + Lägg till språk + Alla språk + Rensa oanvända språk… + Språkfiler hämtas från det officiella Tesseract-projektet. Textigenkänning förblir helt offline. + Hämtar språkfil + Föreslagen + Textigenkänning Skanning Export Dela @@ -64,6 +72,8 @@ Det går inte att spara filen: behörighet nekades Support Rapportera ett problem med den senast tagna bilden + Textigenkänning: inaktiverad + Textigenkänning: aktiverad Stäng av ficklampan Tänd ficklampan Okänd storlek diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 7e0aa59..d9e7a7d 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -9,6 +9,7 @@ İptal Dizini değiştir Metni temizle + Kapat Filtre Otomatik Renkli @@ -57,6 +58,13 @@ Kaydet Yeni Tarama Ayarlar + Dil ekle + Tüm diller + Kullanılmayan dilleri temizle… + Dil dosyaları resmi Tesseract projesinden indirilir. Metin tanıma tamamen çevrimdışı olarak çalışır. + Dil dosyası indiriliyor + Önerilen + Metin tanıma Tarama Dışa aktarma Paylaş @@ -64,6 +72,8 @@ Dosya kaydedilemiyor: izin reddedildi Destek Son yakalanan görüntüyle ilgili bir sorunu bildir + Metin tanıma: devre dışı + Metin tanıma: etkin El fenerini kapat El fenerini aç Bilinmeyen boyut diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5bfe79e..3698207 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -9,6 +9,7 @@ 取消 變更目錄 清除文字 + 關閉 濾鏡 自動 彩色 @@ -57,6 +58,13 @@ 儲存 開始掃描 設定 + 新增語言 + 所有語言 + 清理未使用的語言… + 語言檔案會從官方 Tesseract 專案下載。文字辨識始終完全離線運作。 + 正在下載語言檔案 + 推薦 + 文字辨識 掃描 匯出 分享 @@ -64,6 +72,8 @@ 無法儲存檔案:權限遭拒 支援 回報最近拍攝影像的問題 + 文字辨識:已停用 + 文字辨識:已啟用 關閉閃光燈 開啟閃光燈 未知大小 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 9c0a9ff..7952ed9 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -9,6 +9,7 @@ 取消 更改目录 清除文字 + 关闭 滤镜 自动 彩色 @@ -57,6 +58,13 @@ 保存 新建扫描 设置 + 添加语言 + 所有语言 + 清理未使用的语言… + 语言文件从官方 Tesseract 项目下载。文本识别始终完全离线运行。 + 正在下载语言文件 + 推荐 + 文本识别 扫描 导出 共享 @@ -64,6 +72,8 @@ 无法保存文件:权限被拒绝 支持 报告最近拍摄图像的问题 + 文本识别:已禁用 + 文本识别:已启用 关闭手电筒 打开手电筒 未知大小 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7685a25..6306424 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,6 +10,7 @@ Cancel Change folder Clear text + Close Filter Automatic Color @@ -61,6 +62,13 @@ Save New Scan Settings + Add language + All languages + Clean up unused languages… + "Language files are downloaded from the official Tesseract project. Text recognition remains fully offline." + Downloading language file + Suggested + Text recognition Scan Export Share @@ -68,6 +76,8 @@ Cannot save file: permission was denied Support Report a problem with last captured image + Text recognition: disabled + Text recognition: enabled Turn off torch Turn on torch Unknown size