From ae8974d6822b8f368b2c13aefe7535a61aec50e6 Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Sat, 8 Feb 2025 16:46:24 +0530 Subject: [PATCH 1/6] Fixed: Kiwix cannot import ZIM files from the filesystem. * Displaying a proper error message with the full ZIM path when there is an issue opening the ZIM file or if the selected file is not a valid ZIM file. * Refactored `CopyMoveFileHandlerTest` to align with this change. * Updated the documentation to help translators understand this update. * To resolve the lint error, all string files have been updated. These files will be automatically updated in the latest TranslateWiki PR. --- .../nav/destination/library/CopyMoveFileHandler.kt | 2 +- .../nav/destination/library/LocalLibraryFragment.kt | 6 +++--- .../nav/destination/reader/KiwixReaderFragment.kt | 2 +- .../effects/OpenFileWithNavigation.kt | 4 +++- .../localLibrary/CopyMoveFileHandlerTest.kt | 13 +++++++++++-- .../kiwix/kiwixmobile/core/main/AddNoteDialog.kt | 2 +- .../kiwixmobile/core/main/CoreReaderFragment.kt | 10 ++++++++-- core/src/main/res/values-af/strings.xml | 4 ++-- core/src/main/res/values-ar/strings.xml | 4 ++-- core/src/main/res/values-ast/strings.xml | 4 ++-- core/src/main/res/values-az/strings.xml | 4 ++-- core/src/main/res/values-be/strings.xml | 4 ++-- core/src/main/res/values-bg/strings.xml | 4 ++-- core/src/main/res/values-bm/strings.xml | 4 ++-- core/src/main/res/values-bn/strings.xml | 4 ++-- core/src/main/res/values-br/strings.xml | 4 ++-- core/src/main/res/values-ca/strings.xml | 4 ++-- core/src/main/res/values-cs/strings.xml | 4 ++-- core/src/main/res/values-cy/strings.xml | 4 ++-- core/src/main/res/values-da/strings.xml | 4 ++-- core/src/main/res/values-dag/strings.xml | 4 ++-- core/src/main/res/values-de/strings.xml | 4 ++-- core/src/main/res/values-diq/strings.xml | 4 ++-- core/src/main/res/values-el/strings.xml | 4 ++-- core/src/main/res/values-eo/strings.xml | 4 ++-- core/src/main/res/values-es/strings.xml | 4 ++-- core/src/main/res/values-eu/strings.xml | 4 ++-- core/src/main/res/values-fa/strings.xml | 4 ++-- core/src/main/res/values-fi/strings.xml | 4 ++-- core/src/main/res/values-fr/strings.xml | 4 ++-- core/src/main/res/values-gl/strings.xml | 4 ++-- core/src/main/res/values-gpe/strings.xml | 4 ++-- core/src/main/res/values-gsw/strings.xml | 4 ++-- core/src/main/res/values-gu/strings.xml | 4 ++-- core/src/main/res/values-ha/strings.xml | 4 ++-- core/src/main/res/values-hi/strings.xml | 4 ++-- core/src/main/res/values-hu/strings.xml | 4 ++-- core/src/main/res/values-ia/strings.xml | 4 ++-- core/src/main/res/values-ig/strings.xml | 4 ++-- core/src/main/res/values-igl/strings.xml | 4 ++-- core/src/main/res/values-in/strings.xml | 4 ++-- core/src/main/res/values-it/strings.xml | 4 ++-- core/src/main/res/values-iw/strings.xml | 4 ++-- core/src/main/res/values-ja/strings.xml | 4 ++-- core/src/main/res/values-ka/strings.xml | 4 ++-- core/src/main/res/values-km/strings.xml | 4 ++-- core/src/main/res/values-kn/strings.xml | 2 +- core/src/main/res/values-ko/strings.xml | 4 ++-- core/src/main/res/values-ku/strings.xml | 4 ++-- core/src/main/res/values-lb/strings.xml | 4 ++-- core/src/main/res/values-li/strings.xml | 4 ++-- core/src/main/res/values-ln/strings.xml | 4 ++-- core/src/main/res/values-lt/strings.xml | 4 ++-- core/src/main/res/values-mg/strings.xml | 4 ++-- core/src/main/res/values-mk/strings.xml | 4 ++-- core/src/main/res/values-ml/strings.xml | 4 ++-- core/src/main/res/values-mn/strings.xml | 4 ++-- core/src/main/res/values-ms/strings.xml | 4 ++-- core/src/main/res/values-my/strings.xml | 4 ++-- core/src/main/res/values-nb/strings.xml | 4 ++-- core/src/main/res/values-ne/strings.xml | 4 ++-- core/src/main/res/values-nl/strings.xml | 4 ++-- core/src/main/res/values-nqo/strings.xml | 4 ++-- core/src/main/res/values-oc/strings.xml | 4 ++-- core/src/main/res/values-or/strings.xml | 4 ++-- core/src/main/res/values-pl/strings.xml | 4 ++-- core/src/main/res/values-ps/strings.xml | 4 ++-- core/src/main/res/values-pt-rBR/strings.xml | 4 ++-- core/src/main/res/values-pt/strings.xml | 4 ++-- core/src/main/res/values-qq/strings.xml | 4 ++-- core/src/main/res/values-rm/strings.xml | 4 ++-- core/src/main/res/values-ro/strings.xml | 4 ++-- core/src/main/res/values-ru/strings.xml | 4 ++-- core/src/main/res/values-sa/strings.xml | 4 ++-- core/src/main/res/values-sc/strings.xml | 4 ++-- core/src/main/res/values-si/strings.xml | 4 ++-- core/src/main/res/values-sk/strings.xml | 4 ++-- core/src/main/res/values-sl/strings.xml | 4 ++-- core/src/main/res/values-so/strings.xml | 4 ++-- core/src/main/res/values-sq/strings.xml | 4 ++-- core/src/main/res/values-sr/strings.xml | 4 ++-- core/src/main/res/values-su/strings.xml | 2 +- core/src/main/res/values-sv/strings.xml | 4 ++-- core/src/main/res/values-sw/strings.xml | 4 ++-- core/src/main/res/values-ta/strings.xml | 4 ++-- core/src/main/res/values-te/strings.xml | 4 ++-- core/src/main/res/values-th/strings.xml | 4 ++-- core/src/main/res/values-tn/strings.xml | 4 ++-- core/src/main/res/values-tr/strings.xml | 4 ++-- core/src/main/res/values-uk/strings.xml | 4 ++-- core/src/main/res/values-ur/strings.xml | 4 ++-- core/src/main/res/values-vi/strings.xml | 4 ++-- core/src/main/res/values-xal/strings.xml | 4 ++-- core/src/main/res/values-xmf/strings.xml | 4 ++-- core/src/main/res/values-yo/strings.xml | 4 ++-- core/src/main/res/values-zh-rTW/strings.xml | 4 ++-- core/src/main/res/values-zh/strings.xml | 4 ++-- core/src/main/res/values/strings.xml | 4 ++-- 98 files changed, 208 insertions(+), 191 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/CopyMoveFileHandler.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/CopyMoveFileHandler.kt index 0f9e9d5ff5..e3d4cd52b5 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/CopyMoveFileHandler.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/CopyMoveFileHandler.kt @@ -410,7 +410,7 @@ class CopyMoveFileHandler @Inject constructor( FileUtils.isSplittedZimFile(destinationFile.name) || validateZimFileValid(destinationFile) fun handleInvalidZimFile(destinationFile: File, sourceUri: Uri) { - val errorMessage = activity.getString(R.string.error_file_invalid) + val errorMessage = activity.getString(R.string.error_file_invalid, destinationFile.path) if (isMoveOperation) { val moveSuccessful = tryMoveWithDocumentContract( destinationFile.toUri(), diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt index 61a82685fb..6ab816db8e 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt @@ -425,7 +425,7 @@ class LocalLibraryFragment : BaseFragment(), CopyMoveFileHandler.FileCopyMoveCal // and we will handle this later. val fileName = documentFile?.name if (fileName != null && !isValidZimFile(fileName)) { - activity.toast(string.error_file_invalid) + activity.toast(getString(string.error_file_invalid, "$uri")) return@launch } copyMoveFileHandler?.showMoveFileToPublicDirectoryDialog( @@ -456,12 +456,12 @@ class LocalLibraryFragment : BaseFragment(), CopyMoveFileHandler.FileCopyMoveCal requireActivity().applicationContext, uri ) if (filePath == null || !File(filePath).isFileExist()) { - activity.toast(string.error_file_not_found) + activity.toast(getString(string.error_file_not_found, "$uri")) return null } val file = File(filePath) return if (!FileUtils.isValidZimFile(file.path)) { - activity.toast(string.error_file_invalid) + activity.toast(getString(string.error_file_invalid, file.path)) null } else { file diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt index 6a6d0f8118..62d3d3d69c 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt @@ -144,7 +144,7 @@ class KiwixReaderFragment : CoreReaderFragment() { // it will attempt to open the last opened ZIM file with the last loaded URL, // which is inside the non-existing ZIM file. This leads to unexpected behavior. exitBook() - activity.toast(string.error_file_not_found) + activity.toast(getString(string.error_file_not_found, zimFileUri)) return } val zimReaderSource = ZimReaderSource(File(filePath)) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/fileselectView/effects/OpenFileWithNavigation.kt b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/fileselectView/effects/OpenFileWithNavigation.kt index 5ecd169fc0..da412754c5 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/fileselectView/effects/OpenFileWithNavigation.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/fileselectView/effects/OpenFileWithNavigation.kt @@ -41,7 +41,9 @@ data class OpenFileWithNavigation(private val bookOnDisk: BooksOnDiskListItem.Bo zimReaderSource.canOpenInLibkiwix() } if (!canOpenInLibkiwix) { - activity.toast(R.string.error_file_not_found) + activity.toast( + activity.getString(R.string.error_file_not_found, zimReaderSource.toDatabase()) + ) } else { activity.navigate( actionNavigationLibraryToNavigationReader().apply { diff --git a/app/src/test/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt b/app/src/test/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt index 7f1a782d14..8dd10cd0e0 100644 --- a/app/src/test/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt +++ b/app/src/test/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt @@ -350,17 +350,26 @@ class CopyMoveFileHandlerTest { fileHandler = spyk(fileHandler) every { fileHandler.tryMoveWithDocumentContract(any(), any(), any()) } returns true every { destinationFile.parentFile } returns mockk() + every { destinationFile.path } returns "" fileHandler.isMoveOperation = true fileHandler.handleInvalidZimFile(destinationFile, sourceUri) verify { fileHandler.dismissProgressDialog() } - verify { fileCopyMoveCallback.onError(activity.getString(R.string.error_file_invalid)) } + verify { + fileCopyMoveCallback.onError( + activity.getString( + R.string.error_file_invalid, + destinationFile.path + ) + ) + } } @Test fun `handleInvalidZimFile should delete file and show error if move fails`() { fileHandler = spyk(fileHandler) + every { destinationFile.path } returns "" every { fileHandler.tryMoveWithDocumentContract(any(), any(), any()) } returns false every { destinationFile.parentFile } returns mockk() fileHandler.isMoveOperation = true @@ -369,7 +378,7 @@ class CopyMoveFileHandlerTest { verify { fileHandler.handleFileOperationError( - activity.getString(R.string.error_file_invalid), + activity.getString(R.string.error_file_invalid, destinationFile.path), destinationFile ) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/AddNoteDialog.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/AddNoteDialog.kt index 97eff86d4a..172cd10ad6 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/AddNoteDialog.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/AddNoteDialog.kt @@ -167,7 +167,7 @@ class AddNoteDialog : DialogFragment() { private fun isZimFileExist() = zimFileName != null private fun onFailureToCreateAddNoteDialog() { - context.toast(R.string.error_file_not_found, Toast.LENGTH_LONG) + context.toast(getString(R.string.error_file_not_found, zimFileName), Toast.LENGTH_LONG) parentFragmentManager.beginTransaction().remove(this).commit() } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt index 3d49580f3f..ce948c2837 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt @@ -1774,7 +1774,10 @@ abstract class CoreReaderFragment : } else { exitBook() Log.w(TAG_KIWIX, "ZIM file doesn't exist at " + zimReaderSource.toDatabase()) - requireActivity().toast(R.string.error_file_not_found, Toast.LENGTH_LONG) + requireActivity().toast( + getString(R.string.error_file_not_found, zimReaderSource.toDatabase()), + Toast.LENGTH_LONG + ) } } else { this.zimReaderSource = zimReaderSource @@ -1818,7 +1821,10 @@ abstract class CoreReaderFragment : // disable all controls for this ZIM file. This prevents potential crashes. // See issue #4161 for more details. exitBook() - requireActivity().toast(R.string.error_file_invalid, Toast.LENGTH_LONG) + requireActivity().toast( + getString(R.string.error_file_invalid, zimReaderSource.toDatabase()), + Toast.LENGTH_LONG + ) } } } diff --git a/core/src/main/res/values-af/strings.xml b/core/src/main/res/values-af/strings.xml index 56330bd396..dbffd828d6 100644 --- a/core/src/main/res/values-af/strings.xml +++ b/core/src/main/res/values-af/strings.xml @@ -24,8 +24,8 @@ Soek Kies ’n inhoudslêer (*.zim) Open skakel in nuwe oortjie? - Fout: die geselekteerde ZIM-lêer kon nie gevind word nie. - Fout: die geselekteerde lêer is nie ’n geldige ZIM-lêer nie. + Fout: die geselekteerde ZIM-lêer kon nie gevind word nie. %s + Fout: die geselekteerde lêer is nie ’n geldige ZIM-lêer nie. %s Fout: Laai van bladsy (URL: %1$s) het gefaal. Wys Inligting diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml index 0c1204952c..e207a6c026 100644 --- a/core/src/main/res/values-ar/strings.xml +++ b/core/src/main/res/values-ar/strings.xml @@ -70,10 +70,10 @@ أدخل عنوان الآيبي هذا في متصفحك للوصول إلى الخادم %s رمز QR المقدَم مشاركة URL عبر تطبيقات أخرى - خطأ: تعذر العثور على الملف زيم (ZIM) المحدد + خطأ: تعذر العثور على الملف زيم (ZIM) المحدد %s غير قادر على قراءة هذا الملف ZIM! غير قادر على فتح ملف ZIM - خطأ: ملف زيم (ZIM) المحدد ليس صالحًا. + %s خطأ: ملف زيم (ZIM) المحدد ليس صالحًا. خطأ: لم ينجح تحميل المقالة (Url: %1$s). العرض معلومات diff --git a/core/src/main/res/values-ast/strings.xml b/core/src/main/res/values-ast/strings.xml index d5da41b918..ea12530950 100644 --- a/core/src/main/res/values-ast/strings.xml +++ b/core/src/main/res/values-ast/strings.xml @@ -47,9 +47,9 @@ Aniciar el sirvidor Parar el sirvidor Escribi esta direición ip nel restolador pa tener accesu al sirvidor %s - Error: Nun pudo alcontrase ficheru ZIM seleicionáu. + Error: Nun pudo alcontrase ficheru ZIM seleicionáu. %s Nun pudo abrise l ficheru zim - Error: El ficheru seleicionáu nun ye un ficheru ZIM válidu. + Error: El ficheru seleicionáu nun ye un ficheru ZIM válidu. %s Error: Falló la carga del artículu (Url: %1$s). Amosar Información diff --git a/core/src/main/res/values-az/strings.xml b/core/src/main/res/values-az/strings.xml index d8a6afceb3..6c855ceecc 100644 --- a/core/src/main/res/values-az/strings.xml +++ b/core/src/main/res/values-az/strings.xml @@ -18,8 +18,8 @@ Axtar ZIM məzmunlu fayl seç (*.zim) Linki yeni pəncərədə aç? - Xəta: Seçilmiş ZIM fayl mövcud deyil. - Xəta: Seçilmiş ZIM faylı yararlı deyil. + Xəta: Seçilmiş ZIM fayl mövcud deyil. %s + Xəta: Seçilmiş ZIM faylı yararlı deyil. %s Xəta: Məqalənin (Url: %1$s) yüklənməsi alınmadı. Ekran Məlumat diff --git a/core/src/main/res/values-be/strings.xml b/core/src/main/res/values-be/strings.xml index d8b76bcd14..93e812bf38 100644 --- a/core/src/main/res/values-be/strings.xml +++ b/core/src/main/res/values-be/strings.xml @@ -25,8 +25,8 @@ Пошук Абярыце ZIM-файл (*.zim) Адкрыць спасылку ў новым вакенцы? - Памылка: абраны ZIM-файл не знойдзены. - Памылка: абраны файл не з’яўляецца слушным ZIM-файлам. + Памылка: абраны ZIM-файл не знойдзены. %s + Памылка: абраны файл не з’яўляецца слушным ZIM-файлам. %s Памылка: загрузка артыкула не атрымалася (Url: %1$s). Паказаць Інфармацыя diff --git a/core/src/main/res/values-bg/strings.xml b/core/src/main/res/values-bg/strings.xml index 6e25188640..c99792338a 100644 --- a/core/src/main/res/values-bg/strings.xml +++ b/core/src/main/res/values-bg/strings.xml @@ -28,8 +28,8 @@ Търсене Изберете файл със съдържание (*.zim) Отваряне на препратката в нов раздел? - Грешка: Избраният ZIM файл не е намерен. - Грешка: Избраният файл не е валиден ZIM файл. + Грешка: Избраният ZIM файл не е намерен. %s + Грешка: Избраният файл не е валиден ZIM файл. %s Грешка: Зареждането на статия (Url: %1$s) е неуспешно. Покажете Информация diff --git a/core/src/main/res/values-bm/strings.xml b/core/src/main/res/values-bm/strings.xml index b0162e29c0..2e8753563d 100644 --- a/core/src/main/res/values-bm/strings.xml +++ b/core/src/main/res/values-bm/strings.xml @@ -15,8 +15,8 @@ Bɔ ekaran falen na Ɲinini kɛ I mago bɛ fisiye min na ZIMU kɔnɔ, o suganti yan. - Fili: Fisiye sugantilen ma se ka ye fan si. - Fili: fisiye sugantilen tɛ fisiye yamaruyalen ye. + Fili: Fisiye sugantilen ma se ka ye fan si. %s + Fili: fisiye sugantilen tɛ fisiye yamaruyalen ye. %s Fili: Kunnafoni (Url: %1$s) sariziyeli tigɛra sira la. Jirayɔrɔ Kunnafoni diff --git a/core/src/main/res/values-bn/strings.xml b/core/src/main/res/values-bn/strings.xml index 67d7688d40..c6d6c90f35 100644 --- a/core/src/main/res/values-bn/strings.xml +++ b/core/src/main/res/values-bn/strings.xml @@ -38,8 +38,8 @@ সংযোগ প্রত্যাখান করা হয়েছে। সার্ভার ইতিমধ্যেই চলছে। দয়া করে এটি বন্ধ করে আবার চেষ্টা করুন। আইপি ঠিকানা খুঁজে পাওয়া যায়নি। - ত্রুটি: নির্বাচিত ZIM ফাইলটি খুঁজে পাওয়া যায় নি। - ত্রুটি: নির্বাচিত ফাইলটি বৈধ ZIM ফাইল নয়। + ত্রুটি: নির্বাচিত ZIM ফাইলটি খুঁজে পাওয়া যায় নি। %s + ত্রুটি: নির্বাচিত ফাইলটি বৈধ ZIM ফাইল নয়। %s ত্রুটি: নিবন্ধ লোডে (Url: %1$s) ব্যর্থ। প্রদর্শন তথ্য diff --git a/core/src/main/res/values-br/strings.xml b/core/src/main/res/values-br/strings.xml index 5ce304be68..6ba861dd69 100644 --- a/core/src/main/res/values-br/strings.xml +++ b/core/src/main/res/values-br/strings.xml @@ -39,10 +39,10 @@ N’haller ket kavout ar chomlec’h IP. Enankit ar chomlec’h IP-mañ e-barzh ho merdeer evit kaout ar servijer %s Rannañ an URL war-bouez arloadoù all - Fazi : N’eus ket bet gallet kavout ar restr ZIM diuzet. + Fazi : N’eus ket bet gallet kavout ar restr ZIM diuzet. %s N’haller ket lenn ar restr ZIM-mañ! Dibosupl digeriñ ar restr zim - Fazi : Ar restr diuzet n’eo ket ur restr ZIM reizh. + Fazi : Ar restr diuzet n’eo ket ur restr ZIM reizh. %s Fazi : N’eus ket bet gallet kargañ ar pennad “%1$s” Diskwel Titouroù diff --git a/core/src/main/res/values-ca/strings.xml b/core/src/main/res/values-ca/strings.xml index e34453496c..f1c1635ba8 100644 --- a/core/src/main/res/values-ca/strings.xml +++ b/core/src/main/res/values-ca/strings.xml @@ -31,8 +31,8 @@ CONTINUA Inicia el servidor Atura el servidor - Error: no s’ha trobat el fitxer ZIM. - Error: el fitxer seleccionat no és un fitxer ZIM vàlid. + Error: no s’ha trobat el fitxer ZIM. %s + Error: el fitxer seleccionat no és un fitxer ZIM vàlid. %s Error: no s’ha pogut carregar l’article (Url: %1$s). Visualitzar Informació diff --git a/core/src/main/res/values-cs/strings.xml b/core/src/main/res/values-cs/strings.xml index 28ff7211e3..3379fc322c 100644 --- a/core/src/main/res/values-cs/strings.xml +++ b/core/src/main/res/values-cs/strings.xml @@ -60,10 +60,10 @@ Zastavit server Vložte tuto IP adresu do svého prohlížeče pro přístup na server %s Sdílet URL přes jiné aplikace - Chyba: Nelze najít vybraný soubor ZIM. + Chyba: Nelze najít vybraný soubor ZIM. %s Tento soubor zim nelze přečíst! Nelze otevřít soubor zim - Chyba: Vybraný soubor není platným souborem ZIM. + Chyba: Vybraný soubor není platným souborem ZIM. %s Chyba: Načtení článku (Url: %1$s ) se nezdařilo. Zobrazení Informace diff --git a/core/src/main/res/values-cy/strings.xml b/core/src/main/res/values-cy/strings.xml index 1078a948f1..ab3b8086fb 100644 --- a/core/src/main/res/values-cy/strings.xml +++ b/core/src/main/res/values-cy/strings.xml @@ -20,8 +20,8 @@ Chwilio Dewisiwch Ffeil Gynnwys (*.zim) Agor y ddolen mewn tab newydd? - Gwall: Doedd dim modd canfod y ffeil ZIM dan sylw. - Gwall: Dydy yr ffeil dan sylw ddim yn ffeil ZIM dilys. + Gwall: Doedd dim modd canfod y ffeil ZIM dan sylw. %s + Gwall: Dydy yr ffeil dan sylw ddim yn ffeil ZIM dilys. %s Gwall: Methwyd a llwytho yr erthygl: (Url: %1$s). Golwg Gwybodaeth diff --git a/core/src/main/res/values-da/strings.xml b/core/src/main/res/values-da/strings.xml index 597bd14f53..fb27efa594 100644 --- a/core/src/main/res/values-da/strings.xml +++ b/core/src/main/res/values-da/strings.xml @@ -37,10 +37,10 @@ Starter serveren Start server Stop server - Fejl: Den valgte ZIM fil blev ikke fundet. + Fejl: Den valgte ZIM fil blev ikke fundet. %s Kan ikke åbne den zim fil! Kan ikke åbne zim fil - Fejl: Den valgte fil er ikke en gyldig ZIM fil. + Fejl: Den valgte fil er ikke en gyldig ZIM fil. %s Fejl: Indlæsning af artikel (Url: %1$s) mislykkedes. Visning Information diff --git a/core/src/main/res/values-dag/strings.xml b/core/src/main/res/values-dag/strings.xml index e24fa2b22b..e14dbb28b6 100644 --- a/core/src/main/res/values-dag/strings.xml +++ b/core/src/main/res/values-dag/strings.xml @@ -60,10 +60,10 @@ N bi nya ip addreesi Kpɛhimi a ip fasara a browzɛr ni din yɛn chɛ ka a nya niŋsim niŋda %s Shiriki URL kupitia programu zingine - Chiriŋ: ZIM mazagali shɛli bɛ ni daa piigi ŋɔ bi tooi nya. + Chiriŋ: ZIM mazagali shɛli bɛ ni daa piigi ŋɔ bi tooi nya. %s Di bi tooi karim zim mazagali ŋɔ! Di bi tooi yoogi zim mazagali - Chiriŋ: Mazagali shɛli bɛ ni daa piigi ŋɔ pala ZIM mazagali din niŋ viɛnyɛla. + Chiriŋ: Mazagali shɛli bɛ ni daa piigi ŋɔ pala ZIM mazagali din niŋ viɛnyɛla. %s Chiriŋ: Yaɣ’shɛli dini yoori a (Url: %1$s) bi yooi Zaŋ wuhi Lahabali diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml index 45d0e43f30..91f3e91bb7 100644 --- a/core/src/main/res/values-de/strings.xml +++ b/core/src/main/res/values-de/strings.xml @@ -82,10 +82,10 @@ Geben Sie diese IP-Adresse in Ihren Browser ein, um auf den Server %s zuzugreifen Gerenderter QR-Code URL mit anderen Applikationen teilen - Fehler: Die ausgewählte ZIM-Datei konnte nicht gefunden werden. + Fehler: Die ausgewählte ZIM-Datei konnte nicht gefunden werden. %s Diese Zim-Datei konnte nicht gelesen werden! Konnte die ZIM-Datei nicht öffnen - Fehler: Die ausgewählte Datei ist keine gültige ZIM-Datei. + Fehler: Die ausgewählte Datei ist keine gültige ZIM-Datei. %s Fehler: Das Laden des Artikels (URL: %1$s) ist fehlgeschlagen. Anzeige Information diff --git a/core/src/main/res/values-diq/strings.xml b/core/src/main/res/values-diq/strings.xml index 0f0da08602..e0947ecc34 100644 --- a/core/src/main/res/values-diq/strings.xml +++ b/core/src/main/res/values-diq/strings.xml @@ -53,9 +53,9 @@ Serveri vındardış Seba resayışê serverê %s re browseri rê ena adresê ip cı kerê URL’yi be aplikasyonanê binan ra bare ke - Xeta: Dosyaya ZIMia weçinıtiye nêvêniye. + Xeta: Dosyaya ZIMia weçinıtiye nêvêniye. %s Dosyay Zimi nêabiyena - Xeta: Dosyaya weçinıtiye yew dosyaya ZIMia vêrdiye niya. + Xeta: Dosyaya weçinıtiye yew dosyaya ZIMia vêrdiye niya. %s Xeta: Barkerdışê meqaleyê (Url: %1$s) nêbi. Bımocne Melumat diff --git a/core/src/main/res/values-el/strings.xml b/core/src/main/res/values-el/strings.xml index 927260f0c5..da53700f36 100644 --- a/core/src/main/res/values-el/strings.xml +++ b/core/src/main/res/values-el/strings.xml @@ -51,9 +51,9 @@ Έναρξη διακομιστή Τερματισμός διακομιστή Εισάγετε την διεύθυνση ip στον περιηγητής σας, για πρόσβαση στον διακομιστή %s - Σφάλμα: Το επιλεγμένο ZIM αρχείο δεν μπόρεσε να βρεθεί. + Σφάλμα: Το επιλεγμένο ZIM αρχείο δεν μπόρεσε να βρεθεί. %s Δεν μπόρεσε να ανοιχθεί το αρχείο zim - Σφάλμα: Το επιλεγμένο αρχείο δεν είναι έγκυρο αρχείο ZIM. + Σφάλμα: Το επιλεγμένο αρχείο δεν είναι έγκυρο αρχείο ZIM. %s Σφάλμα:το Ανέβασμα του λήμματος (Url: %1$s) απέτυχε. Εμφάνιση Πληροφορίες diff --git a/core/src/main/res/values-eo/strings.xml b/core/src/main/res/values-eo/strings.xml index 77d59a0465..200bf7bd79 100644 --- a/core/src/main/res/values-eo/strings.xml +++ b/core/src/main/res/values-eo/strings.xml @@ -31,8 +31,8 @@ Elektu Dosieron de Enhavo (*.zim) Ĉu malfermi ligilon en nova langeto? DAŬRIGI - Eraro: Ne eblis trovi la elektitan ZIM-dosieron. - Eraro: La elektita dosiero ne estas valida ZIM-dosiero. + Eraro: Ne eblis trovi la elektitan ZIM-dosieron. %s + Eraro: La elektita dosiero ne estas valida ZIM-dosiero. %s Eraro: Ŝargado de la artikolo (Url: %1$s) fiaskis. Montrado Informo diff --git a/core/src/main/res/values-es/strings.xml b/core/src/main/res/values-es/strings.xml index 782974b1fe..92145a4020 100644 --- a/core/src/main/res/values-es/strings.xml +++ b/core/src/main/res/values-es/strings.xml @@ -77,10 +77,10 @@ Introduce esta dirección IP en tu navegador para acceder al servidor %s Código QR renderizado Compartir URL a través de otras aplicaciones - Error: no se encontró el archivo ZIM seleccionado. + Error: no se encontró el archivo ZIM seleccionado. %s ¡No se puede leer este archivo zim! No se pudo abrir el archivo .zim - Error: el archivo seleccionado no es un archivo ZIM válido. + Error: el archivo seleccionado no es un archivo ZIM válido. %s Error: falló la carga del artículo (URL: %1$s). Mostrar Información diff --git a/core/src/main/res/values-eu/strings.xml b/core/src/main/res/values-eu/strings.xml index aa63c71b85..4dc40ef818 100644 --- a/core/src/main/res/values-eu/strings.xml +++ b/core/src/main/res/values-eu/strings.xml @@ -62,10 +62,10 @@ Sartu IP helbide hau arakatzailean %s zerbitzaria atzitzeko. Errendaturiko QR kodea Partekatu URLa beste aplikazioen bitartez - Akatsa: Hautatutako ZIM artxiboa ezin izan da aurkitu. + Akatsa: Hautatutako ZIM artxiboa ezin izan da aurkitu. %s Ezin da irakurri ZIM fitxategi hau. Ezin da ireki ZIM fitxategia - Akatsa: Hautatutako artikulua ez da baliozko ZIM artxiboa. + Akatsa: Hautatutako artikulua ez da baliozko ZIM artxiboa. %s Akatsa: (Url: %1$s) artikuluaren kargatzea eten da. Erakutsi Informazioa diff --git a/core/src/main/res/values-fa/strings.xml b/core/src/main/res/values-fa/strings.xml index 69c6219b6f..828c6348fb 100644 --- a/core/src/main/res/values-fa/strings.xml +++ b/core/src/main/res/values-fa/strings.xml @@ -32,8 +32,8 @@ بازکردن پیوند در زبانهٔ جدید؟ برو به تنظیمات وای‌فای لطفاً نخست کتاب‌ها را انتخاب کنید - خطا: پروندهٔ ZIM انتخاب شده پیدا نشد. - خطا: پروندهٔ انتخاب‌شده یک پروندهٔ ZIM معتبر نیست. + خطا: پروندهٔ ZIM انتخاب شده پیدا نشد. %s + خطا: پروندهٔ انتخاب‌شده یک پروندهٔ ZIM معتبر نیست. %s حطا: بارگیری مقالهٔ (نشانی: %1$s) شکست خورد. نمایش اطلاعات diff --git a/core/src/main/res/values-fi/strings.xml b/core/src/main/res/values-fi/strings.xml index eef8fad6ad..f4e977e718 100644 --- a/core/src/main/res/values-fi/strings.xml +++ b/core/src/main/res/values-fi/strings.xml @@ -47,10 +47,10 @@ Käynnistä palvelin Pysäytä palvelin IP-osoitetta ei löytynyt. - Virhe: valittua ZIM-tiedostoa ei löytynyt. + Virhe: valittua ZIM-tiedostoa ei löytynyt. %s Zim-tiedostoa ei voitu lukea! Zim-tiedostoa ei voi avata - Virhe: valittu tiedosto ei ole kelvollinen ZIM-tiedosto. + Virhe: valittu tiedosto ei ole kelvollinen ZIM-tiedosto. %s Virhe: Artikkelin (Url: %1$s) lataus epäonnistui. Näytä Tiedot diff --git a/core/src/main/res/values-fr/strings.xml b/core/src/main/res/values-fr/strings.xml index 40a1c15942..d9ceec8723 100644 --- a/core/src/main/res/values-fr/strings.xml +++ b/core/src/main/res/values-fr/strings.xml @@ -82,10 +82,10 @@ Entrez cette adresse IP dans votre navigateur pour accéder au serveur %s Rendu du QR Code Partager l’URL via d’autres applications - Erreur : le fichier ZIM sélectionné est introuvable. + Erreur : le fichier ZIM sélectionné est introuvable. %s Impossible de lire ce fichier ZIM ! Impossible d’ouvrir le fichier ZIM - Erreur : le fichier sélectionné n’est pas un fichier ZIM valide. + Erreur : le fichier sélectionné n’est pas un fichier ZIM valide. %s Erreur : le chargement de l’article (URL : %1$s) a échoué. Affichage Informations diff --git a/core/src/main/res/values-gl/strings.xml b/core/src/main/res/values-gl/strings.xml index 356dd7b9ec..cf7d3db242 100644 --- a/core/src/main/res/values-gl/strings.xml +++ b/core/src/main/res/values-gl/strings.xml @@ -25,8 +25,8 @@ Procurar Seleccione un ficheiro de contido (*.zim) Quere abrir a ligazón nunha nova lapela? - Erro: Non se puido atopar o ficheiro ZIM seleccionado. - Erro: O ficheiro seleccionado non é un ficheiro ZIM válido. + Erro: Non se puido atopar o ficheiro ZIM seleccionado. %s + Erro: O ficheiro seleccionado non é un ficheiro ZIM válido. %s Erro: Non se puido cargar o artigo (URL: %1$s). Visualización Información diff --git a/core/src/main/res/values-gpe/strings.xml b/core/src/main/res/values-gpe/strings.xml index 76b2789f9a..5ab920f9e8 100644 --- a/core/src/main/res/values-gpe/strings.xml +++ b/core/src/main/res/values-gpe/strings.xml @@ -53,10 +53,10 @@ Eno fi find ip address. Make you Enter dis ip address for your browser insyd so say you go fi access de server %s Make you Share URL via oda applications - Error: Eno fi find de selected ZIM file. + Error: Eno fi find de selected ZIM file. %s Eno fi read dis zim file! Eno fi open zim file - Error: De file wey you select no be valid ZIM file. + Error: De file wey you select no be valid ZIM file. %s Error: Loading article (Url: %1$s) fail. Display Information diff --git a/core/src/main/res/values-gsw/strings.xml b/core/src/main/res/values-gsw/strings.xml index 05693d65b4..aa6f871848 100644 --- a/core/src/main/res/values-gsw/strings.xml +++ b/core/src/main/res/values-gsw/strings.xml @@ -43,9 +43,9 @@ Server schtartä Server schtoppe Gäbed Si diä IP Adrässe i ihräm Browser i um uf de Server %s zuezgrifä - Fehler: Di usgwählti ZIM-Datei isch nit gfunde worde. + Fehler: Di usgwählti ZIM-Datei isch nit gfunde worde. %s Cha zim Datei nid uftue - Fehler: Di usgwählti Datei isch chei gültigi ZIM-Datei. + Fehler: Di usgwählti Datei isch chei gültigi ZIM-Datei. %s Fehler: S’ Lade vom Artikel (URL: %1$s) het nit gchlappt. Azeig Information diff --git a/core/src/main/res/values-gu/strings.xml b/core/src/main/res/values-gu/strings.xml index 0484e95b14..c50a5edbb1 100644 --- a/core/src/main/res/values-gu/strings.xml +++ b/core/src/main/res/values-gu/strings.xml @@ -16,8 +16,8 @@ શોધો ZIM માહિતી ફાઇલ (*.zim) પસંદ કરો કડી નવી ટેબમાં ખોલશો? - ક્ષતિ: પસંદ કરેલ ZIM ફાઇલ મળી શકી નહી. - ક્ષતિ: પસંદ કરેલ ફાઇલ યોગ્ય ZIM ફાઇલ નથી. + ક્ષતિ: પસંદ કરેલ ZIM ફાઇલ મળી શકી નહી. %s + ક્ષતિ: પસંદ કરેલ ફાઇલ યોગ્ય ZIM ફાઇલ નથી. %s ક્ષતિ: લેખ (Url: %1$s) લાવવાનું નિષ્ફળ થયું. દર્શાવો માહિતી diff --git a/core/src/main/res/values-ha/strings.xml b/core/src/main/res/values-ha/strings.xml index 4828355cf3..5475893638 100644 --- a/core/src/main/res/values-ha/strings.xml +++ b/core/src/main/res/values-ha/strings.xml @@ -56,10 +56,10 @@ An kasa samun ip address. Shigar da wannan adireshin ip a cikin burauzarka don samun damar sabar %s Raba URL ta hanyar wasu aikace-aikace - Kuskure: Ba a iya samun fayil din ZIM da aka zaba ba + Kuskure: Ba a iya samun fayil din ZIM da aka zaba ba %s An kasa karanta wannan fayil na zim! An kasa buɗe fayil na zim - Kuskure: Fayil ɗin da aka zaɓa ba ingantaccen fayil na ZIM bane. + Kuskure: Fayil ɗin da aka zaɓa ba ingantaccen fayil na ZIM bane. %s Kuskure: Loading labarin (Url: %1$s) ya gaza Nunawa Bayani diff --git a/core/src/main/res/values-hi/strings.xml b/core/src/main/res/values-hi/strings.xml index d6e3653d22..63ad2d0304 100644 --- a/core/src/main/res/values-hi/strings.xml +++ b/core/src/main/res/values-hi/strings.xml @@ -60,10 +60,10 @@ सर्वर बंद करें। सर्वर %s प्रयोग करने के लिए इस आईपी पते को अपने ब्राउज़र में दर्ज करें अन्य एप्लिकेशन के माध्यम से यूआरएल साझा करें - त्रुटि: चुनी गयी ZIM फ़ाइल नही मिल सकी। + त्रुटि: चुनी गयी ZIM फ़ाइल नही मिल सकी। %s इस ज़िम फ़ाइल को पढ़ने में असमर्थ! ज़िम फ़ाइल खोलने में असमर्थ - त्रुटि: चुनी गयी फ़ाइल एक वैध ZIM फ़ाइल नहीं है। + त्रुटि: चुनी गयी फ़ाइल एक वैध ZIM फ़ाइल नहीं है। %s त्रुटि: आलेख (Url: %1$s ) लोड करना विफल रहा। प्रदर्शन जानकारी diff --git a/core/src/main/res/values-hu/strings.xml b/core/src/main/res/values-hu/strings.xml index 66ba3ccb5f..5b9d0f97c6 100644 --- a/core/src/main/res/values-hu/strings.xml +++ b/core/src/main/res/values-hu/strings.xml @@ -33,8 +33,8 @@ Tartalomfájl kiválasztása (*.zim) Hivatkozás megnyitása új lapon? Csatlakozás elutasítva. - Hiba: A kijelölt ZIM-fájl nem található. - Hiba: A kijelölt fájl nem érvényes ZIM-fájl. + Hiba: A kijelölt ZIM-fájl nem található. %s + Hiba: A kijelölt fájl nem érvényes ZIM-fájl. %s Hiba: A cikk (URL: %1$s) betöltése nem sikerült. Megjelenítés Információ diff --git a/core/src/main/res/values-ia/strings.xml b/core/src/main/res/values-ia/strings.xml index 9d37d3051b..43eb1a6276 100644 --- a/core/src/main/res/values-ia/strings.xml +++ b/core/src/main/res/values-ia/strings.xml @@ -56,10 +56,10 @@ Entra iste adresse IP in tu navigator pro acceder al servitor %s Codice QR rendite Condivider le URL via altere applicationes - Error: Le file ZIM seligite non poteva esser trovate. + Error: Le file ZIM seligite non poteva esser trovate. %s Impossibile leger iste file ZIM! Impossibile aperir le file ZIM - Error: Le file seligite non es un file ZIM valide. + Error: Le file seligite non es un file ZIM valide. %s Error: Le cargamento del articulo (Url: %1$s) ha fallite. Visualisation Information diff --git a/core/src/main/res/values-ig/strings.xml b/core/src/main/res/values-ig/strings.xml index aff7e7a356..79dbd0f613 100644 --- a/core/src/main/res/values-ig/strings.xml +++ b/core/src/main/res/values-ig/strings.xml @@ -61,10 +61,10 @@ Tinye adreesị IP a n’ime ihe nchọgharị gị iji nweta ihe nkesa %s Emepụtara Koodu QR Kesaa URL site na ngwa ndị ọzọ - Njehie: Enweghi ike ịchọta faịlụ ZIM ahọpụtara. + Njehie: Enweghi ike ịchọta faịlụ ZIM ahọpụtara. %s Enweghị ike ịgụ faịlụ zim a! Enweghị ike imepe faịlụ zim - Njehie: faịlụ ahọpụtara abụghị faịlụ ZIM ziri ezi. + Njehie: faịlụ ahọpụtara abụghị faịlụ ZIM ziri ezi. %s Njehie: Ịbute akụkọ (URl: %1$s ) dara. Ngosipụta Ozi diff --git a/core/src/main/res/values-igl/strings.xml b/core/src/main/res/values-igl/strings.xml index 083df21359..5aa73a33c6 100644 --- a/core/src/main/res/values-igl/strings.xml +++ b/core/src/main/res/values-igl/strings.xml @@ -55,10 +55,10 @@ Ineke li IP address no Dí únyí kí ip dë tefú ẹnwú ķẹdú búraúze atodú kẹneke lotígbo ẹńwú agbúćhẹ dẹ %s Kpí URL pkáyí ápplícásiọn omúnẹ - Faìlú: ZIM mádú málíñ úgbodúń + Faìlú: ZIM mádú málíñ úgbodúń %s Ineke gbi Zim file no Unekén bi Zim filuñ - Inyọno: File kẹtu chi Zim file Kuma dẹn + Inyọno: File kẹtu chi Zim file Kuma dẹn %s Dutẹ Inabali Enwñ ojioji diff --git a/core/src/main/res/values-in/strings.xml b/core/src/main/res/values-in/strings.xml index 3d12528942..49b0506501 100644 --- a/core/src/main/res/values-in/strings.xml +++ b/core/src/main/res/values-in/strings.xml @@ -64,10 +64,10 @@ Masukkan alamat IP ini ke browser Anda untuk mengakses server %s Kode QR yang Dirender Bagikan URL melalui aplikasi lain - Galat: Berkas ZIM yang dipilih tidak ditemukan. + Galat: Berkas ZIM yang dipilih tidak ditemukan. %s Tidak bisa membaca berkas ZIM ini! ZIM file tidak dapat dibuka - Galat: Berkas yang dipilih bukan berkas ZIM yang sah. + Galat: Berkas yang dipilih bukan berkas ZIM yang sah. %s Galat: Pemuatan artikel (Url: %1$s) gagal. Tampilan Informasi diff --git a/core/src/main/res/values-it/strings.xml b/core/src/main/res/values-it/strings.xml index e396ff2021..7d5a075003 100644 --- a/core/src/main/res/values-it/strings.xml +++ b/core/src/main/res/values-it/strings.xml @@ -64,10 +64,10 @@ Inserisci questo indirizzo IP nel tuo browser per accedere al server: %s Codice QR renderizzato Condividi URL con altre applicazioni - Errore: il file ZIM selezionato non è stato trovato. + Errore: il file ZIM selezionato non è stato trovato. %s Impossibile leggere questo file ZIM! Impossibile aprire il file ZIM - Errore: il file selezionato non è un file ZIM valido. + Errore: il file selezionato non è un file ZIM valido. %s Errore: caricamento della voce (URL: %1$s) non riuscito. Aspetto Informazioni diff --git a/core/src/main/res/values-iw/strings.xml b/core/src/main/res/values-iw/strings.xml index 3af2eb50aa..35df68c40f 100644 --- a/core/src/main/res/values-iw/strings.xml +++ b/core/src/main/res/values-iw/strings.xml @@ -61,10 +61,10 @@ יש להזין את כתובת ה־IP הזאת לדפדפן שלך כדי לגשת לשרת %s קוד QR מתוצג שיתוף URL דרך יישומים אחרים - שגיאה: קובץ ה־ZIM שנבחר לא נמצא. + %s שגיאה: קובץ ה־ZIM שנבחר לא נמצא. לא ניתן לקרוא מקובץ ה־ZIM הזה! לא ניתן לפתוח את קובץ ה־ZIM - שגיאה: הקובץ שנבחר אינו קובץ ZIM תקין. + שגיאה: הקובץ שנבחר אינו קובץ ZIM תקין. %s שגיאה: טעינת הערך נכשלה (כתובת: %1$s). תצוגה מידע diff --git a/core/src/main/res/values-ja/strings.xml b/core/src/main/res/values-ja/strings.xml index ca83a8b411..d4ba3b959b 100644 --- a/core/src/main/res/values-ja/strings.xml +++ b/core/src/main/res/values-ja/strings.xml @@ -62,10 +62,10 @@ IPアドレスが見つかりませんでした。 サーバー %s にアクセスするには、この IP アドレスをブラウザに入力してください 他のアプリケーション経由で URL を共有する - エラー: 選択した ZIM ファイルが見つかりませんでした。 + エラー: 選択した ZIM ファイルが見つかりませんでした。 %s この zim ファイルは読み込めません! zim ファイルを開けません - エラー: 選択したファイルは有効な ZIM ファイルではありません。 + エラー: 選択したファイルは有効な ZIM ファイルではありません。 %s エラー: 記事 (URL: %1$s) を読み込めませんでした。 表示 情報 diff --git a/core/src/main/res/values-ka/strings.xml b/core/src/main/res/values-ka/strings.xml index 9bb79914d8..dd484f9bda 100644 --- a/core/src/main/res/values-ka/strings.xml +++ b/core/src/main/res/values-ka/strings.xml @@ -22,8 +22,8 @@ ძიება აირჩიეთ ZIM-ფაილი (*.zim) ბმული ახალ ჩანართში გაიხსნას? - შეცდომა: არჩეული ZIM ფაილი ვერ მოიძებნა. - შეცდომა: არჩეული ფაილი არ არის სწორი ZIM ფაილი. + შეცდომა: არჩეული ZIM ფაილი ვერ მოიძებნა. %s + შეცდომა: არჩეული ფაილი არ არის სწორი ZIM ფაილი. %s შეცდომა: სტატია (Url: %1$s) ვერ ჩაიტვირთა. ჩვენება ინფორმაცია diff --git a/core/src/main/res/values-km/strings.xml b/core/src/main/res/values-km/strings.xml index a8090dcec2..44cd88ac45 100644 --- a/core/src/main/res/values-km/strings.xml +++ b/core/src/main/res/values-km/strings.xml @@ -16,8 +16,8 @@ ស្វែងរក ជ្រើសរើសឯកសារមាតិកា ZIM (*.zim) បើក​តំណ​ក្នុង​ផ្ទាំង​ថ្មី? - កំហុស៖ ឯកសារ ZIM ដែលបានជ្រើសនេះ រកមិនឃើញទេ។ - កំហុស៖ ឯកសារ ZIM ដែលបានជ្រើសនេះ មិនមែនជាឯកសារ ZIM ត្រឹមត្រូវ។ + កំហុស៖ ឯកសារ ZIM ដែលបានជ្រើសនេះ រកមិនឃើញទេ។ %s + កំហុស៖ ឯកសារ ZIM ដែលបានជ្រើសនេះ មិនមែនជាឯកសារ ZIM ត្រឹមត្រូវ។ %s កំហុស៖ ទាញយកអត្ថបទ (Url: %1$s) បានបរាជ័យ។ ការ​បង្ហាញ ព័ត៌មាន diff --git a/core/src/main/res/values-kn/strings.xml b/core/src/main/res/values-kn/strings.xml index e2da05880c..0ff9c6f197 100644 --- a/core/src/main/res/values-kn/strings.xml +++ b/core/src/main/res/values-kn/strings.xml @@ -34,7 +34,7 @@ ಹಾಟ್‌ಸ್ಪಾಟ್ ರನ್ ಆಗುತ್ತಿದೆ ದಯವಿಟ್ಟು ಮೊದಲು ಪುಸ್ತಕಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮುಂದುವರಿಸಿ - ದೋಷ: ಆರಿಸಿದ ಫೈಲು ಸರಿಯಾದ ZIM ಫೈಲು ಅಲ್ಲ + ದೋಷ: ಆರಿಸಿದ ಫೈಲು ಸರಿಯಾದ ZIM ಫೈಲು ಅಲ್ಲ %s ದೋಷ: ಲೇಖನ (Url: %1$s) ತರುವುದು ವಿಫಲವಾಗಿದೆ. ಪ್ರದರ್ಶಿಸು ಮಾಹಿತಿ diff --git a/core/src/main/res/values-ko/strings.xml b/core/src/main/res/values-ko/strings.xml index f434756ce4..ae9a97706b 100644 --- a/core/src/main/res/values-ko/strings.xml +++ b/core/src/main/res/values-ko/strings.xml @@ -69,10 +69,10 @@ %s 서버에 접속하려면 브라우저에 이 IP 주소를 입력하십시오 표시된 QR 코드 다른 애플리케이션을 통해 URL 공유 - 오류: 선택된 ZIM 파일을 찾을 수 없습니다. + 오류: 선택된 ZIM 파일을 찾을 수 없습니다. %s 이 ZIM 파일을 읽을 수 없습니다! ZIM 파일을 열 수 없습니다 - 오류: 선택한 파일은 올바른 ZIM 파일이 아닙니다. + 오류: 선택한 파일은 올바른 ZIM 파일이 아닙니다. %s 오류: 문서(Url: %1$s)를 불러오는 데 실패했습니다. 표시 정보 diff --git a/core/src/main/res/values-ku/strings.xml b/core/src/main/res/values-ku/strings.xml index 993757e0a7..188906d01a 100644 --- a/core/src/main/res/values-ku/strings.xml +++ b/core/src/main/res/values-ku/strings.xml @@ -53,10 +53,10 @@ Serverê bide sekinandin Vê adresa IPyê di geroka xwe de binivîsîne ji bo ku xwe bigihînî servera %s URLyê bi riya sepanên din parve bike - Çewtîː Peldanka ZIM’ê ya bijartî nehate dîtin. + Çewtîː Peldanka ZIM’ê ya bijartî nehate dîtin. %s Nebû ku vê dosyeya zimê bixwîne! Nikare dosyeya zim-ê veke - Çewtîː Peldanka bijartî ne peldankeke ZIMê ya derbasdar e. + Çewtîː Peldanka bijartî ne peldankeke ZIMê ya derbasdar e. %s Çewtîː Barkirina gotara (Url: %1$s) têk çû. Nîşan bide Agahî diff --git a/core/src/main/res/values-lb/strings.xml b/core/src/main/res/values-lb/strings.xml index 7396f9f8a1..8a80ca8151 100644 --- a/core/src/main/res/values-lb/strings.xml +++ b/core/src/main/res/values-lb/strings.xml @@ -44,10 +44,10 @@ IP-Adress konnt net fonnt ginn. Gitt dës IP-Adress an Äre Browser a fir op de Server %s zouzegräifen URL mat aneren Applikatiounen deelen - Feeler: Déi ausgewielten ZIM-Datei konnt net fonnt ginn. + Feeler: Déi ausgewielten ZIM-Datei konnt net fonnt ginn. %s Dëse ZIM-Fichier konnt net gelies ginn! De ZIM-Fichier konnt net opgemaach ginn - Feeler: Déi ausgewielten Datei ass keng gülteg ZIM-Datei. + Feeler: Déi ausgewielten Datei ass keng gülteg ZIM-Datei. %s Feeler: D’Luede vum Artikel (URL: %1$s) huet net funktionéiert. Weisen Informatioun diff --git a/core/src/main/res/values-li/strings.xml b/core/src/main/res/values-li/strings.xml index bc1e6a837f..88e233a067 100644 --- a/core/src/main/res/values-li/strings.xml +++ b/core/src/main/res/values-li/strings.xml @@ -17,8 +17,8 @@ Zeuk Sillekteer ’n Inhawdsbestandj (*.zim) Äöpen link in nuuj tabblaad? - Fout: ’t geselecteerd ZIM-bestandj kós neet waere gevónje. - Fout: ’t geselecteerd bestandj is gei geldig ZIM-bestandj. + Fout: ’t geselecteerd ZIM-bestandj kós neet waere gevónje. %s + Fout: ’t geselecteerd bestandj is gei geldig ZIM-bestandj. %s Fout: ’t laje van de pagina (URL: %1$s) is mislök. Waergaaf Infermasie diff --git a/core/src/main/res/values-ln/strings.xml b/core/src/main/res/values-ln/strings.xml index 391f01ed02..6320d66188 100644 --- a/core/src/main/res/values-ln/strings.xml +++ b/core/src/main/res/values-ln/strings.xml @@ -52,10 +52,10 @@ Nakokaki te kozwa adrɛsi ya IP. Tyá adresi IP oyo na navigateur na yo mpo na kokɔta na serveur %s Kabola URL na nzela ya ba applications misusu - Mabunga: Fisyé ZIM oyo oponi ezwami te. + Mabunga: Fisyé ZIM oyo oponi ezwami te. %s Epesameli nzela te ya kotanga fisyé ZIM oyo! Ekoki te kofungola fisyé ZIM - Libunga: Fisyé oyo oponi ezali fisyé ZIM ya malamu te. + Libunga: Fisyé oyo oponi ezali fisyé ZIM ya malamu te. %s Libunga: Kokɔtisa lisolo (Url: %1$s ) elongi te. Kolakisa Nsango diff --git a/core/src/main/res/values-lt/strings.xml b/core/src/main/res/values-lt/strings.xml index 86d0d427d2..f53ca01ebb 100644 --- a/core/src/main/res/values-lt/strings.xml +++ b/core/src/main/res/values-lt/strings.xml @@ -26,8 +26,8 @@ Pasirinkite ZIM Turinio Failą (*.zim) Atidaryti nuorodą naujame skirtuke? Sustabdyti serverį - Klaida: pasirinktas ZIM failas nerastas. - Klaida: pasirinktas failas nėra galiojantis ZIM failas. + Klaida: pasirinktas ZIM failas nerastas. %s + Klaida: pasirinktas failas nėra galiojantis ZIM failas. %s Klaida: nepavyko įkelti straipsnio (Url: %1$s). Rodyti Informacija diff --git a/core/src/main/res/values-mg/strings.xml b/core/src/main/res/values-mg/strings.xml index 3be10bedc5..8d05004757 100644 --- a/core/src/main/res/values-mg/strings.xml +++ b/core/src/main/res/values-mg/strings.xml @@ -20,8 +20,8 @@ Hikaroka Hisafidy rakitra misy votoatiny (*.zim) Hanokatra rohy anaty sasa-joro vaovao? - Hadisoana: Tsy nahita ilay rakitra ZIM voafidinao. - Hadisoana: Rakitra ZIM tsy azo raisina ilay voafidinao. + Hadisoana: Tsy nahita ilay rakitra ZIM voafidinao. %s + Hadisoana: Rakitra ZIM tsy azo raisina ilay voafidinao. %s Hadisoana: tsy nahafahana ilay lahatsoratra (Url: %1$s). Fiseho Fampahalalana diff --git a/core/src/main/res/values-mk/strings.xml b/core/src/main/res/values-mk/strings.xml index f9987ba838..f636fa5726 100644 --- a/core/src/main/res/values-mk/strings.xml +++ b/core/src/main/res/values-mk/strings.xml @@ -54,10 +54,10 @@ Внесете ја оваа IP-адреса во прелистувачот за да пристапите на опслужувачот %s Испишан QR-код Сподели URL преку други прилози - Грешка: Не ја најдов избраната ZIM-податотека. + Грешка: Не ја најдов избраната ZIM-податотека. %s Не можам да ја прочитам оваа ZIM-податотека! Не можам да ја отворам ZIM-податотеката - Грешка: Одбраната податотека не е вежачка ZIM-податотека. + Грешка: Одбраната податотека не е вежачка ZIM-податотека. %s Грешка: Не успеав да ја вчитам статијата (URL: %1$s). Приказник Информации diff --git a/core/src/main/res/values-ml/strings.xml b/core/src/main/res/values-ml/strings.xml index 0968fd3c06..0b140629a5 100644 --- a/core/src/main/res/values-ml/strings.xml +++ b/core/src/main/res/values-ml/strings.xml @@ -39,9 +39,9 @@ കിവിക്സ് ഹോട്ട്സ്പോട്ട് സെർവർ തുടങ്ങുക സെർവർ നിർത്തുക - പിഴവ്: തിരഞ്ഞെടുത്ത സിം ഫയൽ കണ്ടെത്താനായില്ല + പിഴവ്: തിരഞ്ഞെടുത്ത സിം ഫയൽ കണ്ടെത്താനായില്ല %s zim ഫയൽ തുറക്കുവാൻ സാധിച്ചില്ല - പിഴവ്: തിരഞ്ഞെടുത്ത സിം ഫയൽ സാധുവല്ല. + പിഴവ്: തിരഞ്ഞെടുത്ത സിം ഫയൽ സാധുവല്ല. %s പിഴവ്: (Url: %1$s) എന്ന ലേഖനം ലോഡ് ചെയ്യുന്നത് പരാജയപ്പെട്ടു. കാഴ്ച വിവരം diff --git a/core/src/main/res/values-mn/strings.xml b/core/src/main/res/values-mn/strings.xml index 79f84457c9..79f6a04d7c 100644 --- a/core/src/main/res/values-mn/strings.xml +++ b/core/src/main/res/values-mn/strings.xml @@ -17,8 +17,8 @@ Хайлт ZIM агуулгын файлыг сонгох (*.zim) Холбоосыг өөр табд нээ - Алдаа: Сонгосон ZIM файл олдсонгүй. - Алдаа: Сонгосон ZIM файл алдаатай байна. + Алдаа: Сонгосон ZIM файл олдсонгүй. %s + Алдаа: Сонгосон ZIM файл алдаатай байна. %s Алдаа: (Url: %1$s) нийтлэлийг уншихад алдаа. Үзүүлэх Мэдээлэл diff --git a/core/src/main/res/values-ms/strings.xml b/core/src/main/res/values-ms/strings.xml index 6ad8d49e8c..37845c399c 100644 --- a/core/src/main/res/values-ms/strings.xml +++ b/core/src/main/res/values-ms/strings.xml @@ -39,8 +39,8 @@ Kawasan Khas Kiwix Mula pelayan Hentikan pelayan - Ralat: Fail ZIM yang terpilih tidak dapat ditemui. - Ralat: Fail yang terpilih bukan fail ZIM yang sah. + Ralat: Fail ZIM yang terpilih tidak dapat ditemui. %s + Ralat: Fail yang terpilih bukan fail ZIM yang sah. %s Ralat: Rencana (Url: %1$s) gagal dimuatkan. Paparan Maklumat diff --git a/core/src/main/res/values-my/strings.xml b/core/src/main/res/values-my/strings.xml index 391bfdb64c..ed0fee3aa2 100644 --- a/core/src/main/res/values-my/strings.xml +++ b/core/src/main/res/values-my/strings.xml @@ -31,8 +31,8 @@ ဝိုင်ဖိုင် ကွန်နက်ရှင် ခြေရာခံမိသည် ဆာဗာ စတင်ရန် ဆာဗာ ရပ်တန့်ရန် - အမှားသတိပေးချက် − ရွေးချယ်ထားသော ZIM ဖိုင်ကို ရှာမတွေ့ပါ။ - အမှားသတိပေးချက် − ရွေးချယ်ထားသောဖိုင်သည် တရားဝင် ZIM ဖိုင် မဟုတ်ပါ။ + အမှားသတိပေးချက် − ရွေးချယ်ထားသော ZIM ဖိုင်ကို ရှာမတွေ့ပါ။ %s + အမှားသတိပေးချက် − ရွေးချယ်ထားသောဖိုင်သည် တရားဝင် ZIM ဖိုင် မဟုတ်ပါ။ %s အမှားသတိပေးချက် − (Url: %1$s) ဆောင်းပါးထည့်သွင်းခြင်း မအောင်မြင်ပါ။ မြင်ကွင်း သတင်းအချက်အလက် diff --git a/core/src/main/res/values-nb/strings.xml b/core/src/main/res/values-nb/strings.xml index 5bcf8203ad..86f754f915 100644 --- a/core/src/main/res/values-nb/strings.xml +++ b/core/src/main/res/values-nb/strings.xml @@ -28,8 +28,8 @@ Åpne lenke i ny fane? Start tjener Stopp tjener - Feil: Den valgte ZIM-filen ble ikke funnet - Feil: Den valgte filen er ikke en gyldig ZIM-fil + Feil: Den valgte ZIM-filen ble ikke funnet %s + Feil: Den valgte filen er ikke en gyldig ZIM-fil %s Feil: Kunne ikke laste inn artikkelen (Url: %1$s). Skjerm Informasjon diff --git a/core/src/main/res/values-ne/strings.xml b/core/src/main/res/values-ne/strings.xml index 89d30ed6f9..4b51cabbe3 100644 --- a/core/src/main/res/values-ne/strings.xml +++ b/core/src/main/res/values-ne/strings.xml @@ -25,8 +25,8 @@ खोज्नुहोस् सामग्री फाइल छान्नुहोस् (*.zim) लिङ्कलाई नयाँ ट्याबमा खोल्ने? - त्रुटी: छानिएको ZIM फाइल भेटाउन सकिएन। - त्रुटी: छानिएको फाइल मान्य ZIM फाइल होइन। + त्रुटी: छानिएको ZIM फाइल भेटाउन सकिएन। %s + त्रुटी: छानिएको फाइल मान्य ZIM फाइल होइन। %s त्रुटी: लेख खोल्न असफल । (Url: %1$s) देखाउनुहोस् जानकारी diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml index a4346f7ea1..3dc5cdfac5 100644 --- a/core/src/main/res/values-nl/strings.xml +++ b/core/src/main/res/values-nl/strings.xml @@ -63,10 +63,10 @@ Voer dit IP-adres in uw browser in om toegang te krijgen tot de server %s Gemaakte QR-code URL delen via andere applicaties - Fout: het geselecteerde ZIM-bestand kon niet gevonden worden. + Fout: het geselecteerde ZIM-bestand kon niet gevonden worden. %s Kan dit ZIM-bestand niet lezen! Kan ZIM-bestand niet openen - Fout: het geselecteerde bestand is geen geldig ZIM-bestand. + Fout: het geselecteerde bestand is geen geldig ZIM-bestand. %s Fout: Het laden van de pagina (URL: %1$s) is mislukt. Weergave Informatie diff --git a/core/src/main/res/values-nqo/strings.xml b/core/src/main/res/values-nqo/strings.xml index 2b393d6e30..943717f3a5 100644 --- a/core/src/main/res/values-nqo/strings.xml +++ b/core/src/main/res/values-nqo/strings.xml @@ -51,10 +51,10 @@ ߡߊ߬ߛߐ߬ߟߊ߲ ߟߊߟߐ߬ IP ߢߌ߲߬ ߠߊߘߏ߲߬ ߌ ߟߊ߫ ߛߏ߲߯ߓߊߟߊ߲ ߠߊ߫ ߞߊ߬ ߡߊ߬ߛߐ߬ߟߊ߲ ߠߊߛߐ߬ߘߐ߲߬ %s URL ߟߊߖߍ߲ߛߍ߲߫ ߟߥߊ߬ߟߌ߬ߟߊ߲ ߜߘߍ ߟߎ߬ ߛߌߟߊ ߝߍ߬ - ߝߌ߬ߟߌ: ZIM ߞߐߕߐ߯ ߡߊߡߌ߬ߘߊ߬ߣߍ߲ ߕߍߣߊ߬ ߡߊߛߐ߬ߘߐ߲߫ ߠߊ߫. + ߝߌ߬ߟߌ: ZIM ߞߐߕߐ߯ ߡߊߡߌ߬ߘߊ߬ߣߍ߲ ߕߍߣߊ߬ ߡߊߛߐ߬ߘߐ߲߫ ߠߊ߫. %s ߊ߬ ߕߴߛߋ߫ ߞߊ߬ ZIM ߞߐߕߐ߮ ߣߌ߲߬ ߘߐߞߊ߬ߙߊ߲߬߹ ZIM ߞߐߕߐ߮ ߕߍ߫ ߛߐ߲߬ ߠߊߞߊ߬ ߟߊ߫ - ߝߌ߬ߟߌ: ߞߐߕߐ߯ ߓߊߕߐ߬ߡߐ߲߬ߣߍ߲ ߣߌ߲߬ ߕߍ߫ ZIM ߞߐߕߐ߯ ߓߍ߲߬ߣߍ߲ ߝߋ߲߫ ߘߌ߫. + ߝߌ߬ߟߌ: ߞߐߕߐ߯ ߓߊߕߐ߬ߡߐ߲߬ߣߍ߲ ߣߌ߲߬ ߕߍ߫ ZIM ߞߐߕߐ߯ ߓߍ߲߬ߣߍ߲ ߝߋ߲߫ ߘߌ߫. %s ߝߎ߬ߕߎ߲߬ߕߌ: ߞߎߡߘߊ ߟߊߢߎ߲ߠߌ߲ (Url: %1$s) ߓߘߊ߫ ߗߌߙߏ߲߫. ߦߌ߬ߘߊ߬ߟߌ ߞߎ߲߬ߠߊ߬ߝߏߣߌ߲ diff --git a/core/src/main/res/values-oc/strings.xml b/core/src/main/res/values-oc/strings.xml index 2d714b426f..a349e732cd 100644 --- a/core/src/main/res/values-oc/strings.xml +++ b/core/src/main/res/values-oc/strings.xml @@ -22,8 +22,8 @@ Recercar Seleccionar un fichièr de contengut (*.zim) Dobrir lo ligam dins un onglet novèl ? - Error : Lo fichièr ZIM seleccionat es introbable. - Error : Lo fichièr seleccionat es pas un fichièr ZIM valid. + Error : Lo fichièr ZIM seleccionat es introbable. %s + Error : Lo fichièr seleccionat es pas un fichièr ZIM valid. %s Error : Lo cargament de l’article (Url: %1$s) a fracassat. Afichatge Informacion diff --git a/core/src/main/res/values-or/strings.xml b/core/src/main/res/values-or/strings.xml index 26c18b2569..282f3bc1c5 100644 --- a/core/src/main/res/values-or/strings.xml +++ b/core/src/main/res/values-or/strings.xml @@ -51,10 +51,10 @@ ସର୍ଭର ବନ୍ଦ କରନ୍ତୁ ସର୍ଭର %s ପ୍ରବେଶ କରିବାକୁ ଆପଣଙ୍କ ବ୍ରାଉଜରରେ ଏହି ip ଠିକଣା ପ୍ରବେଶ କରନ୍ତୁ ଅନ୍ୟ ପ୍ରୟୋଗଗୁଡ଼ିକ ମାଧ୍ୟମରେ URL ଅଂଶୀଦାର କରନ୍ତୁ - ଅସୁବିଧା: ବଛାଯାଇଥିବା ଜିମ ଫାଇଲ ମିଳିଲାନାହିଁ । + ଅସୁବିଧା: ବଛାଯାଇଥିବା ଜିମ ଫାଇଲ ମିଳିଲାନାହିଁ । %s ଏହି zim ଫାଇଲକୁ ପଢ଼ିବାରେ ଅସମର୍ଥ ଜିମ୍ ଫାଇଲ୍ ଖୋଲିବାକୁ ଅସମର୍ଥ - ଅସୁବିଧା: ବଛାଯାଇଥିବା ଜିମ ଫାଇଲଟି ବୈଧ ନୁହେଁ । + ଅସୁବିଧା: ବଛାଯାଇଥିବା ଜିମ ଫାଇଲଟି ବୈଧ ନୁହେଁ । %s ଅସୁବିଧା: (Url: %1$s) ପ୍ରସଙ୍ଗ ଖୋଲିବାରେ ବିଫଳ ହେଲୁ । ଦେଖଣା ସୂଚନା diff --git a/core/src/main/res/values-pl/strings.xml b/core/src/main/res/values-pl/strings.xml index 82563a8801..dc414dc002 100644 --- a/core/src/main/res/values-pl/strings.xml +++ b/core/src/main/res/values-pl/strings.xml @@ -65,10 +65,10 @@ Nie udało się znaleźć adresu IP. Wpisz ten adres IP w przeglądarce, aby uzyskać dostęp do serwera %s Udostępnij adres URL za pośrednictwem innych aplikacji - Błąd: Wybrany plik ZIM nie został znaleziony. + Błąd: Wybrany plik ZIM nie został znaleziony. %s Nie można odczytać tego pliku zim! Nie można otworzyć pliku zim - Błąd: Wybrany plik nie jest prawidłowym plikiem ZIM. + Błąd: Wybrany plik nie jest prawidłowym plikiem ZIM. %s Błąd: Ładowanie artykułu (Url: %1$s ) się nie powiodło. Wyświetl Informacje diff --git a/core/src/main/res/values-ps/strings.xml b/core/src/main/res/values-ps/strings.xml index d7a1819d0e..b9a1ce134a 100644 --- a/core/src/main/res/values-ps/strings.xml +++ b/core/src/main/res/values-ps/strings.xml @@ -21,8 +21,8 @@ پلټل د ZIM مېنځپانگې يوه دوتنه ټاکل (*.zim) تړنه په نوې کړکۍ کې پرانيستل - تېروتنه: ستاسې ټاکلې ZIM دوتنه و نه موندل شوه. - تېروتنه: ستاسې ټاکلې دوتنه يوه کره ZIM دوتنه نه ده. + تېروتنه: ستاسې ټاکلې ZIM دوتنه و نه موندل شوه. %s + تېروتنه: ستاسې ټاکلې دوتنه يوه کره ZIM دوتنه نه ده. %s تېروتنه: ليکنه برسېرېدنه (يو آر ال: %1$s) نابريالئ شوه. ښکارېدنه مالومات diff --git a/core/src/main/res/values-pt-rBR/strings.xml b/core/src/main/res/values-pt-rBR/strings.xml index fe55364683..08a6c4bc52 100644 --- a/core/src/main/res/values-pt-rBR/strings.xml +++ b/core/src/main/res/values-pt-rBR/strings.xml @@ -71,10 +71,10 @@ Digite este endereço IP no seu navegador para acessar o servidor %s QR Code renderizado Compartir URL a través de outras aplicações - Erro: O arquivo ZIM selecionado não pode ser encontrado. + Erro: O arquivo ZIM selecionado não pode ser encontrado. %s \nNão é possível ler este arquivo zim! Não foi possível abrir o arquivo zim - Erro: O arquivo selecionado não é um arquivo ZIM válido. + Erro: O arquivo selecionado não é um arquivo ZIM válido. %s Erro: Falha no carregamento do artigo (Url: %1$s). Exibição Informação diff --git a/core/src/main/res/values-pt/strings.xml b/core/src/main/res/values-pt/strings.xml index 07d5871cb4..e661a8d05d 100644 --- a/core/src/main/res/values-pt/strings.xml +++ b/core/src/main/res/values-pt/strings.xml @@ -67,10 +67,10 @@ Digite este endereço IP no seu navegador para aceder ao servidor %s Código QR renderizado Compartilhar URL através de outros aplicativos - Erro: não foi possível encontrar o ficheiro ZIM selecionado. + Erro: não foi possível encontrar o ficheiro ZIM selecionado. %s Não é possível ler este arquivo ZIM! Não é possível abrir o arquivo ZIM - Erro: o ficheiro selecionado não é um ficheiro ZIM válido. + Erro: o ficheiro selecionado não é um ficheiro ZIM válido. %s Erro: o carregamento do artigo falhou (URL: %1$s). Mostrar Informação diff --git a/core/src/main/res/values-qq/strings.xml b/core/src/main/res/values-qq/strings.xml index d755662337..c07eefb559 100644 --- a/core/src/main/res/values-qq/strings.xml +++ b/core/src/main/res/values-qq/strings.xml @@ -61,10 +61,10 @@ This message shows as the button text, by clicking on this button “Kiwix server” stops. This message appears in “Android TextView” as a text message. When the “Kiwix server” is successfully started, in this message %s will be replaced with the IP address on which the server is running. It shows the details of the server IP address to the user. This message is the content description of “Android ImageView”, this appears when the “Kiwix server” is running and the IP address is visible to the user on which server is running. By clicking on this it will share the IP address with other applications. - This message appears in “Android Toast” as an error message when the user tries to open a Zim file but the file was moved to another directory or deleted. So this message informs the user this file could not be found. + This message appears in “Android Toast” as an error message when the user tries to open a Zim file but the file was moved to another directory or deleted. So this message informs the user this file could not be found. Here %s will be replaced with the ZIM file path which is failed to open. This message appears in “Android Toast” as a error message when our application is unable to read the zim file. This message appears in “Android Toast” as an error message when the user opens the application and the previously opened zim file was deleted from the phone storage, then we are showing this error message to the user. - The message appears in “Android Toast” as a warning message when the user tries to open a file and that file is not the zim file. + The message appears in “Android Toast” as a warning message when the user tries to open a file and that file is not the zim file.\n Here %s will be replaced by the ZIM file path which is failed to open. * This message appears in “Android Toast” as an error message when “Kiwix Reader” is unable to load the given URL.\n* Here %1$s will be replaced by the URL which is failed to load. {{Identical|Display}} {{Identical|Information}} diff --git a/core/src/main/res/values-rm/strings.xml b/core/src/main/res/values-rm/strings.xml index c2039b3438..6174b09d85 100644 --- a/core/src/main/res/values-rm/strings.xml +++ b/core/src/main/res/values-rm/strings.xml @@ -15,8 +15,8 @@ Tschertgar Selecziunar ina datoteca da cuntegn ZIM (*.zim) Avrir il link en in nov tab? - Errur: la datoteca ZIM selecziunada è betg vegnida chattada. - Errur: la datoteca selecziunada è betg ina datoteca ZIM valida. + Errur: la datoteca ZIM selecziunada è betg vegnida chattada. %s + Errur: la datoteca selecziunada è betg ina datoteca ZIM valida. %s Errur: chargiar il artitgel (Url: %1$s) n’a betg funcziunà. Vista Infurmaziun diff --git a/core/src/main/res/values-ro/strings.xml b/core/src/main/res/values-ro/strings.xml index dc6f6b1cc2..147dea9eb6 100644 --- a/core/src/main/res/values-ro/strings.xml +++ b/core/src/main/res/values-ro/strings.xml @@ -53,9 +53,9 @@ Oprește server Introduceți această adresă ip în browserul dvs. pentru a accesa serverul %s Distribuie URL prin alte aplicaţii - Eroare: Fișierul ZIM selectat nu poate fi găsit. + Eroare: Fișierul ZIM selectat nu poate fi găsit. %s Imposibil de deschis fișierul zim - Eroare: Fișierul selectat nu este un fișier ZIM valid. + Eroare: Fișierul selectat nu este un fișier ZIM valid. %s Eroare: Încărcarea articolului (Url: %1$s) nu a reușit. Afișaj Informații diff --git a/core/src/main/res/values-ru/strings.xml b/core/src/main/res/values-ru/strings.xml index 6f11f79df7..1555210da1 100644 --- a/core/src/main/res/values-ru/strings.xml +++ b/core/src/main/res/values-ru/strings.xml @@ -83,10 +83,10 @@ Введите этот IP адрес в ваш браузер чтобы получить доступ к серверу %s Отобразить QR-код Поделиться URL через другие приложения - Ошибка: выбранный ZIM-файл не найден. + Ошибка: выбранный ZIM-файл не найден. %s Не удается прочитать этот ZIM-файл! Не удается открыть ZIM-файл - Ошибка: Выбранный файл не является пригодным ZIM-файлом. + Ошибка: Выбранный файл не является пригодным ZIM-файлом. %s Ошибка: Загрузка статьи (Url: %1$s) не удалась. Экран Информация diff --git a/core/src/main/res/values-sa/strings.xml b/core/src/main/res/values-sa/strings.xml index 998386f677..7a1df1eb22 100644 --- a/core/src/main/res/values-sa/strings.xml +++ b/core/src/main/res/values-sa/strings.xml @@ -19,8 +19,8 @@ अन्विष्यताम् एतस्याः ZIM पूर्वलिखितसञ्चिकायाः चयनं करोतु (*.zim) एतत् परिसन्धिं नवीन-टेब्-मध्ये उद्घाटयतु - दोषः : चितसञ्चिका ZIM न प्राप्ता । - दोषः : चितसञ्चिका योग्या ZIM-सञ्चिका नस्ति । + दोषः : चितसञ्चिका ZIM न प्राप्ता । %s + दोषः : चितसञ्चिका योग्या ZIM-सञ्चिका नस्ति । %s दोषः : (Url: %1$s) लेखस्य अवारोपणं विफलम् अभवत् । प्रदर्श्यताम् सूचना diff --git a/core/src/main/res/values-sc/strings.xml b/core/src/main/res/values-sc/strings.xml index 38c108710f..251fbf8d4c 100644 --- a/core/src/main/res/values-sc/strings.xml +++ b/core/src/main/res/values-sc/strings.xml @@ -51,10 +51,10 @@ Non apo pòdidu agatare s’indiritzu IP. Inserta custu indiritzu ip in su navigadore tuo pro intrare in su servidore %s Cumpartzi s’URL cun àteras aplicatziones - Errore: su documentu ZIM ischertadu no est istadu agatadu. + Errore: su documentu ZIM ischertadu no est istadu agatadu. %s Non faghet a lèghere custu archìviu zim! Impossìbile abèrrere su documentu zim - Errore: su documentu ischertadu no est unu documentu ZIM vàlidu. + Errore: su documentu ischertadu no est unu documentu ZIM vàlidu. %s Errore: carrigamentu de s’artìculu (Url: %1$s) non resèssidu. Ischermu Informatziones diff --git a/core/src/main/res/values-si/strings.xml b/core/src/main/res/values-si/strings.xml index 68289f0144..12f2aedffb 100644 --- a/core/src/main/res/values-si/strings.xml +++ b/core/src/main/res/values-si/strings.xml @@ -22,8 +22,8 @@ ගවේෂණය ZIM වර්ගයේ ගොනුවක් තෝරාගන්න (*.zim) සබැඳිය නව තීරුවක විවෘත කරන්න? - දෝෂය: තෝරාගත් ZIM ගොනුව සොයා ගැනීමට නොහැකි විය. - දෝෂය: තෝරාගත් ගොනුව වලංගු ZIM ගොනුවක් නොවේ. + දෝෂය: තෝරාගත් ZIM ගොනුව සොයා ගැනීමට නොහැකි විය. %s + දෝෂය: තෝරාගත් ගොනුව වලංගු ZIM ගොනුවක් නොවේ. %s දෝෂය: (Url: %1$s) ලිපිය පූරණය වීම අසාර්ථකයි. පෙන්වීම තොරතුරු diff --git a/core/src/main/res/values-sk/strings.xml b/core/src/main/res/values-sk/strings.xml index c4e83f7b8d..47e8c45650 100644 --- a/core/src/main/res/values-sk/strings.xml +++ b/core/src/main/res/values-sk/strings.xml @@ -52,10 +52,10 @@ Zastaviť server Zadajte túto ip adresu to vášho prehliadača pre prístup na server %s Zdieľať URL cez iné aplikácie - Chyba: Vybraný súbor ZIM sa nenašiel. + Chyba: Vybraný súbor ZIM sa nenašiel. %s Nepodarilo sa prečítať súbor zim! Nepodarilo sa otvoriť súbor zim - Chyba: Vybraný súbor nie je platný ZIM súbor. + Chyba: Vybraný súbor nie je platný ZIM súbor. %s Chyba: Načítavanie článku (Url: %1$s) sa nepodarilo. Zobrazenie Informácie diff --git a/core/src/main/res/values-sl/strings.xml b/core/src/main/res/values-sl/strings.xml index c304414534..4410c74ac7 100644 --- a/core/src/main/res/values-sl/strings.xml +++ b/core/src/main/res/values-sl/strings.xml @@ -59,10 +59,10 @@ IP-naslova ni bilo mogoče najti. Za dostop do strežnika %s vnesite v brskalnik ta lP-naslov Delite URL z drugimi aplikacijami - Napaka: izbrane datoteke ZIM ni bilo mogoče najti. + Napaka: izbrane datoteke ZIM ni bilo mogoče najti. %s Te datoteke ZIM ni mogoče prebrati! Datoteke ZIM ni mogoče odpreti - Napaka: izbrana datoteka ni veljavna datoteka ZIM. + Napaka: izbrana datoteka ni veljavna datoteka ZIM. %s Napaka: Nalaganje članka (url: %1$s) ni uspelo. Prikaz Informacije diff --git a/core/src/main/res/values-so/strings.xml b/core/src/main/res/values-so/strings.xml index f1460fd134..756144e66d 100644 --- a/core/src/main/res/values-so/strings.xml +++ b/core/src/main/res/values-so/strings.xml @@ -20,8 +20,8 @@ Raadi Dooro galka ZIM ee ka samaysan (*.zim) Fur webka qaab cusub - Qalad: Galka ZIM ee aad dooratay lama helin. - Qalad: Galka ZIM ee aad dooratay maaha mid shaqaynaya. + Qalad: Galka ZIM ee aad dooratay lama helin. %s + Qalad: Galka ZIM ee aad dooratay maaha mid shaqaynaya. %s Qalad: Galinta maqaalka (Url: %1$s) ma galin. Qaab aragga Macluumaad diff --git a/core/src/main/res/values-sq/strings.xml b/core/src/main/res/values-sq/strings.xml index 9f50b190a0..7b24117fec 100644 --- a/core/src/main/res/values-sq/strings.xml +++ b/core/src/main/res/values-sq/strings.xml @@ -54,10 +54,10 @@ Që të hyni te shërbyesi %s, jepni këtë adresë IP te shfletuesi juaj Kodi QR i vizatuar Jepeni URL-në përmes aplikacionesh të tjera - Gabim: S’u gjet dot kartela ZIM e përzgjedhur. + Gabim: S’u gjet dot kartela ZIM e përzgjedhur. %s S’arrihet të lexohet kjo kartelë zim! S’arrihet të hapet kartelë zim - Gabim: Kartela e përzgjedhur s’është kartelë ZIM e vlefshme. + Gabim: Kartela e përzgjedhur s’është kartelë ZIM e vlefshme. %s Gabim: Dështoi ngarkimi i artikullit (Url: %1$s). Ekran Informacione diff --git a/core/src/main/res/values-sr/strings.xml b/core/src/main/res/values-sr/strings.xml index 12ccc023a7..d1339176c3 100644 --- a/core/src/main/res/values-sr/strings.xml +++ b/core/src/main/res/values-sr/strings.xml @@ -25,8 +25,8 @@ Изаберите датотеку са садржајем (*.zim) Отворити везу у новој картици? Сервер је успешно заустављен. - Грешка: изабрана ZIM датотека се не може наћи. - Грешка: изабрана датотека није важећа ZIM датотека. + Грешка: изабрана ZIM датотека се не може наћи. %s + Грешка: изабрана датотека није важећа ZIM датотека. %s Грешка: учитавање чланка (Url: %1$s) није успело. Приказ Информације diff --git a/core/src/main/res/values-su/strings.xml b/core/src/main/res/values-su/strings.xml index 34c5072320..6fdbaea297 100644 --- a/core/src/main/res/values-su/strings.xml +++ b/core/src/main/res/values-su/strings.xml @@ -14,7 +14,7 @@ Kaluar ti modeu layar pinuh Paluruh Pilih Berkas Kontén (*.zim) - Kasalahan: Berkas nu dipilih lain berkas ZIM nu sah. + Kasalahan: Berkas nu dipilih lain berkas ZIM nu sah. %s Kasalahan: Pamuatan artikel (Url: %1$s) gagal. Panémbong Émbaran diff --git a/core/src/main/res/values-sv/strings.xml b/core/src/main/res/values-sv/strings.xml index 12063203ee..aec10d3e4f 100644 --- a/core/src/main/res/values-sv/strings.xml +++ b/core/src/main/res/values-sv/strings.xml @@ -63,10 +63,10 @@ Ange denna IP-adress i din webbläsare för att komma åt servern %s Renderad QR-kod Dela webbadress med andra appar - Fel: Den valda ZIM-filen kunde inte hittas. + Fel: Den valda ZIM-filen kunde inte hittas. %s Kunde inte läsa denna zim-fil! Kunde inte öppna zip-fil - Fel: Den valda filen är inte en giltig ZIM-fil. + Fel: Den valda filen är inte en giltig ZIM-fil. %s Fel: Inläsning av artikel (url: %1$s) misslyckades. Visning Information diff --git a/core/src/main/res/values-sw/strings.xml b/core/src/main/res/values-sw/strings.xml index e970c23829..1f035ffa6c 100644 --- a/core/src/main/res/values-sw/strings.xml +++ b/core/src/main/res/values-sw/strings.xml @@ -63,10 +63,10 @@ Sikuweza kupata anwani ya IP. Ingiza anwani hii ya ip kwenye kivinjari chako ili kufikia seva %s Kushiriki URL kupitia programu nyingine - Hitilafu: Faili ya ZIM iliyochaguliwa haija patikana. + Hitilafu: Faili ya ZIM iliyochaguliwa haija patikana. %s Haiwezi kusoma faili hii zim! Haiwezi kufungua faili ya zim - Hitilafu:Faili iliyochaguliwa sio faili sahihi ya ZIM. + Hitilafu:Faili iliyochaguliwa sio faili sahihi ya ZIM. %s Hitilafu:Upakiaji wa makala umefeli (Url: %1$s) Onesha Maarifa diff --git a/core/src/main/res/values-ta/strings.xml b/core/src/main/res/values-ta/strings.xml index effca84c2f..d7131ca5b7 100644 --- a/core/src/main/res/values-ta/strings.xml +++ b/core/src/main/res/values-ta/strings.xml @@ -53,10 +53,10 @@ சேவையகத்தை நிறுத்து %s சேவையகத்தை அணுக உங்கள் உலாவியில் இந்த ஐபி முகவரியை உள்ளிடவும் பிற பயன்பாடுகள் வழியாக URL ஐப் பகிரவும் - பிழை: தேர்வு செய்யப்பட்ட ZIM கோப்பு காணப்படவில்லை + பிழை: தேர்வு செய்யப்பட்ட ZIM கோப்பு காணப்படவில்லை %s இந்த ஜிம் கோப்பைப் படிக்க முடியவில்லை! ZIM கோப்பைத் திறக்க முடியவில்லை - பிழை: தேர்வு செய்யப்பட்ட கோப்பு, ஏற்புடைய ZIM கோப்பு அல்ல + பிழை: தேர்வு செய்யப்பட்ட கோப்பு, ஏற்புடைய ZIM கோப்பு அல்ல %s பிழை: (Url: %1$s) கட்டுரையை ஏற்றித்துவங்க தவறிவிட்டது காண்பி தகவல் diff --git a/core/src/main/res/values-te/strings.xml b/core/src/main/res/values-te/strings.xml index 8e0fbdc16c..bd3ad56dda 100644 --- a/core/src/main/res/values-te/strings.xml +++ b/core/src/main/res/values-te/strings.xml @@ -57,10 +57,10 @@ ip చిరునామా కనుగొనబడలేదు. %s సర్వర్‌ని యాక్సెస్ చేయడానికి మీ బ్రౌజర్‌లో ఈ ip చిరునామాను నమోదు చేయండి ఇతర అప్లికేషన్ల ద్వారా URLని భాగస్వామ్యం చేయండి - దోషం‌ :‌ మీరు ఎంపిక చేసిన ZIM దస్త్రం దొరకలేదు. + దోషం‌ :‌ మీరు ఎంపిక చేసిన ZIM దస్త్రం దొరకలేదు. %s ఈ జిమ్ ఫైల్‌ని చదవడం సాధ్యం కాలేదు! జిమ్ ఫైల్‌ను తెరవడం సాధ్యం కాలేదు - దోషం : మీరు ఎంపిక చేసిన దస్త్రం సరియైన ZIM దస్త్రం కాదు. + దోషం : మీరు ఎంపిక చేసిన దస్త్రం సరియైన ZIM దస్త్రం కాదు. %s దోషం : వ్యాసం (Url: %1$s) ను లోడ్ చెయ్యడం విఫలమయింది. వీక్షణం సమాచారం diff --git a/core/src/main/res/values-th/strings.xml b/core/src/main/res/values-th/strings.xml index ee7a476e8e..be48718f22 100644 --- a/core/src/main/res/values-th/strings.xml +++ b/core/src/main/res/values-th/strings.xml @@ -28,9 +28,9 @@ ต้องการเปิดลิงก์ในแท็บใหม่หรือไม่ กรุณาเลือกหน้งสือก่อน ดำเนินการต่อ - ข้อผิดพลาด:ไม่พบไฟล์ ZIM ที่เลือก + ข้อผิดพลาด:ไม่พบไฟล์ ZIM ที่เลือก %s ไม่สามารถเปิดไฟล์ zim ได้ - ข้อผิดพลาด:ไฟล์ที่เลือกไม่ได้เป็นไฟล์ ZIM ที่ถูกต้อง + ข้อผิดพลาด:ไฟล์ที่เลือกไม่ได้เป็นไฟล์ ZIM ที่ถูกต้อง %s ข้อผิดพลาด:ไม่สามารถดาวน์โหลดบทความได้ (URL:%1$s) แสดงผล ข้อมูล diff --git a/core/src/main/res/values-tn/strings.xml b/core/src/main/res/values-tn/strings.xml index 890c6e5131..82e8b37b00 100644 --- a/core/src/main/res/values-tn/strings.xml +++ b/core/src/main/res/values-tn/strings.xml @@ -52,10 +52,10 @@ Go batla ip adress go retetse. Tsenya aterese eno ya ip mo browser ya gago go fitlhelela server %s Abelana URL ka ditselna tse dingwe - Phoso: Faele ya ZIM e e tlhophilweng ga e a ka ya bonwa. + Phoso: Faele ya ZIM e e tlhophilweng ga e a ka ya bonwa. %s Go batla faele ye ya ZIM ga go kgonege! Go bula faele ya ZIM go a retela - Phoso: Faele e e tlhophilweng ga se faele ya ZIM e e siameng. + Phoso: Faele e e tlhophilweng ga se faele ya ZIM e e siameng. %s Phoso:Tsebe ye e letetsweng (Url:%1$s) e retetse. Pontsho Tshedimosetso diff --git a/core/src/main/res/values-tr/strings.xml b/core/src/main/res/values-tr/strings.xml index a9d9542713..2c862949f5 100644 --- a/core/src/main/res/values-tr/strings.xml +++ b/core/src/main/res/values-tr/strings.xml @@ -68,10 +68,10 @@ IP adresi bulunamadı. %s sunucusuna erişmek için tarayıcınıza bu ip adresini girin. URL’yi diğer uygulamalar aracılığıyla paylaşın - Hata: Seçili ZIM dosyası bulunamadı. + Hata: Seçili ZIM dosyası bulunamadı. %s Bu zim dosyası okunamıyor! Zim dosyası açılamıyor - Hata: Seçili dosya geçerli bir ZIM dosyası değil. + Hata: Seçili dosya geçerli bir ZIM dosyası değil. %s Hata: (Url: %1$s) makalesinin yüklemesi başarısız. Görüntüle Bilgi diff --git a/core/src/main/res/values-uk/strings.xml b/core/src/main/res/values-uk/strings.xml index 0f08e89141..b2e27b703e 100644 --- a/core/src/main/res/values-uk/strings.xml +++ b/core/src/main/res/values-uk/strings.xml @@ -60,10 +60,10 @@ Зупинити сервер Уведіть цю IP адресу у ваш браузер, аби отримати доступ до серверу %s Поділіться URL-адресою за допомогою інших програм - Помилка: вибраний ZIM файл неможливо знайти. + Помилка: вибраний ZIM файл неможливо знайти. %s Неможливо прочитати цей файл zim! Неможливо відкрити файл zim - Помилка: вибраний файл не є вірним файлом ZIM. + Помилка: вибраний файл не є вірним файлом ZIM. %s Помилка: завантаження статті (Url: %1$s) не вдалося. Дисплей Інформація diff --git a/core/src/main/res/values-ur/strings.xml b/core/src/main/res/values-ur/strings.xml index 9492bfc672..f3a4d55c83 100644 --- a/core/src/main/res/values-ur/strings.xml +++ b/core/src/main/res/values-ur/strings.xml @@ -50,10 +50,10 @@ آئی پی ایڈریس نہیں مل سکا۔ سرور تک رسائی حاصل کرنے کے لیے اس آئی پی کو اپنے براؤزر میں درج کریں %s دوسرے ایپلیکیشنز کے ذریعے یو آر ایل شیئر کریں۔ - خرابی: منتخب کردہ ZIM فائل نہیں مل سکی۔ + خرابی: منتخب کردہ ZIM فائل نہیں مل سکی۔ %s اس zim فائل کو پڑھنے سے قاصر! zim فائل کو کھولنے سے قاصر - خرابی: منتخب فائل ایک درست ZIM فائل نہیں ہے۔ + خرابی: منتخب فائل ایک درست ZIM فائل نہیں ہے۔ %s خرابی: مضمون لوڈ کرنا (Url: %1$s ) ناکام ہو گیا۔ تظاہرہ معلومات diff --git a/core/src/main/res/values-vi/strings.xml b/core/src/main/res/values-vi/strings.xml index fd1fa831df..97aec77210 100644 --- a/core/src/main/res/values-vi/strings.xml +++ b/core/src/main/res/values-vi/strings.xml @@ -25,8 +25,8 @@ Chọn một Tập tin Nội dung (*.zim) Mở liên kết trong thẻ mới? Chia sẻ URL thông qua phần mềm khác - Lỗi: Không tìm thấy tập tin ZIM đã chọn - Lỗi: Tập tin đã chọn không phải là tập tin ZIM hợp lệ. + Lỗi: Không tìm thấy tập tin ZIM đã chọn %s + Lỗi: Tập tin đã chọn không phải là tập tin ZIM hợp lệ. %s Lỗi: Việc tải bài (URL: %1$s) bị thất bại. Hiển thị Thông tin diff --git a/core/src/main/res/values-xal/strings.xml b/core/src/main/res/values-xal/strings.xml index 3e61084b30..5fefff723f 100644 --- a/core/src/main/res/values-xal/strings.xml +++ b/core/src/main/res/values-xal/strings.xml @@ -36,8 +36,8 @@ Сервериг зогсах Сервер негнт аҗллҗ эклсмн. Үүг унтраһад, дәкн орлдтн. IP хайгиг олҗ чадсн уга. - Эндү: Суңһсн файл олдсн уга. - Эндү: Суңһсн ZIM файл эндүтә бәәнә. + Эндү: Суңһсн файл олдсн уга. %s + Эндү: Суңһсн ZIM файл эндүтә бәәнә. %s Эндү: (Url: %1$s) ниитллиг умшхд эндү һарв. Үзүлх Медәлл diff --git a/core/src/main/res/values-xmf/strings.xml b/core/src/main/res/values-xmf/strings.xml index d25e94ca4a..081bbbded7 100644 --- a/core/src/main/res/values-xmf/strings.xml +++ b/core/src/main/res/values-xmf/strings.xml @@ -46,8 +46,8 @@ სერვერიშ გაჩემება სერვერი ასე მუშენს. ქორთხინთ, გოთიშით თინა დო კჷნე ახალშო ქოცადით. IP-მიოწურაფუქ ვეგორჷ. - ჩილათა: გიშაგორილი ZIM-ფაილქ ვეგორუ. - ჩილათა: გიშაგორილი ფაილი ვა რე თინი ZIM-ფაილი. + ჩილათა: გიშაგორილი ZIM-ფაილქ ვეგორუ. %s + ჩილათა: გიშაგორილი ფაილი ვა რე თინი ZIM-ფაილი. %s ჩილათა: სტატიაშ (Url: %1$s) გიმოხარგუაქ ვემიხუჯინუ. ეკრანი ინფორმაცია diff --git a/core/src/main/res/values-yo/strings.xml b/core/src/main/res/values-yo/strings.xml index 3b38501910..2d7012a27f 100644 --- a/core/src/main/res/values-yo/strings.xml +++ b/core/src/main/res/values-yo/strings.xml @@ -56,10 +56,10 @@ Ko le ri adiresi ip. Tẹ adiresi IP yii sinu ẹrọ aṣawakiri rẹ lati wọle si olupin %s Pin URL nipasẹ awọn ohun elo miiran - Aṣiṣe: Faili ZIM ti o yan ko ṣee ri. + Aṣiṣe: Faili ZIM ti o yan ko ṣee ri. %s Ko le ka faili zim yii! Ko le ṣi faili zim - Aṣiṣe: Faili ti o yan kii ṣe faili ZIM to wulo. + Aṣiṣe: Faili ti o yan kii ṣe faili ZIM to wulo. %s Aṣiṣe: Nkojọpọ nkan (Url: %1$s ) kuna. Ìmúhàn Ìfitọ́nilétí diff --git a/core/src/main/res/values-zh-rTW/strings.xml b/core/src/main/res/values-zh-rTW/strings.xml index e5d9d90693..7a3ace58d3 100644 --- a/core/src/main/res/values-zh-rTW/strings.xml +++ b/core/src/main/res/values-zh-rTW/strings.xml @@ -66,10 +66,10 @@ 在您的瀏覽器輸入 IP 位址來存取伺服器%s 呈現 QR 碼 透過別種應用程式分享 URL - 錯誤:找不到所選的 ZIM 檔案。 + 錯誤:找不到所選的 ZIM 檔案。 %s 無法讀取這個 zim 檔案! 無法打開 zim 檔案 - 錯誤:所選檔案不是有效的 ZIM 檔。 + 錯誤:所選檔案不是有效的 ZIM 檔。 %s 錯誤:載入條目(網址:%1$s)失敗。 顯示 資訊 diff --git a/core/src/main/res/values-zh/strings.xml b/core/src/main/res/values-zh/strings.xml index a1c5c16e95..acfe9da9ac 100644 --- a/core/src/main/res/values-zh/strings.xml +++ b/core/src/main/res/values-zh/strings.xml @@ -82,10 +82,10 @@ 将这个 IP 地址输入到你的浏览器中来连接服务器 %s 显示二维码 通过其他应用程序分享 URL - 错误:找不到选定的 ZIM 文件。 + 错误:找不到选定的 ZIM 文件。 %s 无法读取此 ZIM 文件! 无法打开 ZIM 文件 - 错误:选定的文件不是有效的 ZIM 文件。 + 错误:选定的文件不是有效的 ZIM 文件。 %s 错误:加载条目(网址:%1$s)失败。 显示 信息 diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index bfac610fd6..e3c0d20111 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -50,10 +50,10 @@ Enter this ip address into your browser to access the server %s Rendered QR Code Share URL via other applications - Error: The selected ZIM file could not be found. + Error: The selected ZIM file could not be found. %s Unable to read this ZIM file! Unable to open ZIM file - Error: The selected file is not a valid ZIM file. + Error: The selected file is not a valid ZIM file. %s Error: Loading article (Url: %1$s) failed. Unable to load article. The ZIM file is not properly loaded. Unable to find a random article. Please try again later. From 496ddf1ea0d5d3c1923207133f76ccaae663be3e Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Sat, 8 Feb 2025 17:07:22 +0530 Subject: [PATCH 2/6] Updated the tarask string file --- core/src/main/res/values-b+be+tarask/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/res/values-b+be+tarask/strings.xml b/core/src/main/res/values-b+be+tarask/strings.xml index 92be3a5967..966c7f5286 100644 --- a/core/src/main/res/values-b+be+tarask/strings.xml +++ b/core/src/main/res/values-b+be+tarask/strings.xml @@ -34,8 +34,8 @@ Немагчыма запусьціць сэрвэр. Калі ласка, уключыце ваш пункт доступу Немагчыма запусьціць сэрвэр. Дэталі вашага лякальнага пункту досягу. \nSSID: %1$s \nСпокліч: %2$s - Памылка: абраны ZIM-файл ня знойдзены. - Памылка: абраны файл не зьяўляецца слушным ZIM-файлам. + Памылка: абраны ZIM-файл ня знойдзены. %s + Памылка: абраны файл не зьяўляецца слушным ZIM-файлам. %s Памылка: загрузка артыкула (Url: %1$s) не атрымалася. Інфармацыя Вэрсія From e6f378e165d8eca36ab6391598768eeb32f6323a Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Sat, 8 Feb 2025 17:32:33 +0530 Subject: [PATCH 3/6] Fixed: `notifyFileOperationSuccess should handle invalid ZIM file` unit test case. --- .../kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/test/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt b/app/src/test/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt index 8dd10cd0e0..32cb564348 100644 --- a/app/src/test/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt +++ b/app/src/test/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt @@ -339,6 +339,7 @@ class CopyMoveFileHandlerTest { fun `notifyFileOperationSuccess should handle invalid ZIM file`() = runTest { fileHandler = spyk(fileHandler) fileHandler.shouldValidateZimFile = true + every { destinationFile.path } returns "" coEvery { fileHandler.isValidZimFile(destinationFile) } returns false fileHandler.notifyFileOperationSuccess(destinationFile, sourceUri) From 6cdc8f23d49019419f275f62438eb2c1c4e9de6c Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Mon, 10 Feb 2025 17:39:43 +0530 Subject: [PATCH 4/6] Improved USB and External Hard Drive Path Retrieval for Android 10 and Above. * The getExternalFilesDirs method only returns the USB path for devices running Android 9 (API 28) and below. * On Android 10 (API 29) and above, this method returns null when accessing external storage like USB sticks. * To work around this limitation, we previously appended the /mnt/media_rw/ path manually. While this worked in most cases, it was unreliable across different devices, as the mounted path could vary. * To ensure accurate retrieval of external storage paths, we have switched to the StorageService API. * This API, introduced in Android 11 (API 30), directly provides the actual mount paths for all external storage devices, including SD cards, USB sticks, and external hard drives. * For Android 9 and below, getExternalFilesDirs continues to work as expected, so we use it where applicable. * This improvement ensures that USB and SD card paths are retrieved correctly on modern Android devices. * Added debugging logs to capture errors when opening a file in the reader. * These logs will help us diagnose issues when users share a diagnostic report. --- .../library/LocalLibraryFragment.kt | 8 ++ .../kiwixmobile/core/reader/ZimFileReader.kt | 6 ++ .../kiwixmobile/core/utils/files/FileUtils.kt | 93 ++++++++++++++++--- 3 files changed, 93 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt index 6ab816db8e..663ec942cd 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt @@ -27,6 +27,7 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.os.Environment +import android.util.Log import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater @@ -90,6 +91,7 @@ import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil import org.kiwix.kiwixmobile.core.utils.SimpleRecyclerViewScrollListener import org.kiwix.kiwixmobile.core.utils.SimpleRecyclerViewScrollListener.Companion.SCROLL_DOWN import org.kiwix.kiwixmobile.core.utils.SimpleRecyclerViewScrollListener.Companion.SCROLL_UP +import org.kiwix.kiwixmobile.core.utils.TAG_KIWIX import org.kiwix.kiwixmobile.core.utils.dialog.DialogShower import org.kiwix.kiwixmobile.core.utils.dialog.KiwixDialog import org.kiwix.kiwixmobile.core.utils.files.FileUtils @@ -456,11 +458,17 @@ class LocalLibraryFragment : BaseFragment(), CopyMoveFileHandler.FileCopyMoveCal requireActivity().applicationContext, uri ) if (filePath == null || !File(filePath).isFileExist()) { + Log.e( + TAG_KIWIX, + "The Selected ZIM file not found in the storage. File Uri = $uri\n" + + "Retrieved Path = $filePath" + ) activity.toast(getString(string.error_file_not_found, "$uri")) return null } val file = File(filePath) return if (!FileUtils.isValidZimFile(file.path)) { + Log.e(TAG_KIWIX, "Selected ZIM file is not a valid ZIM file. File path = ${file.path}") activity.toast(getString(string.error_file_invalid, file.path)) null } else { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt index 63c45e9a80..dc1fc2ce2c 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt @@ -88,8 +88,14 @@ class ZimFileReader constructor( null } } catch (ignore: JNIKiwixException) { + Log.e( + TAG, + "Error in creating ZimFileReader," + + " there is an JNI exception happens: $ignore" + ) null } catch (ignore: Exception) { // for handing the error, if any zim file is corrupted + Log.e(TAG, "Error in creating ZimFileReader: $ignore") null } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/files/FileUtils.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/files/FileUtils.kt index d4f4373571..7db0a162b6 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/files/FileUtils.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/files/FileUtils.kt @@ -27,9 +27,11 @@ import android.os.Build import android.os.Environment import android.os.Environment.DIRECTORY_DOWNLOADS import android.os.storage.StorageManager +import android.os.storage.StorageVolume import android.provider.DocumentsContract import android.provider.MediaStore import android.webkit.URLUtil +import androidx.annotation.RequiresApi import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -43,6 +45,7 @@ import org.kiwix.kiwixmobile.core.extensions.deleteFile import org.kiwix.kiwixmobile.core.extensions.isFileExist import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil +import org.kiwix.kiwixmobile.core.utils.TAG_KIWIX import java.io.BufferedReader import java.io.File import java.io.FileInputStream @@ -120,6 +123,7 @@ object FileUtils { context: Context, uri: Uri ): String? { + Log.e(TAG_KIWIX, "Trying to get the ZIM file path for Uri = $uri") if (DocumentsContract.isDocumentUri(context, uri)) { if ("com.android.externalstorage.documents" == uri.authority) { val documentId = DocumentsContract.getDocumentId(uri) @@ -129,10 +133,10 @@ object FileUtils { return "${Environment.getExternalStorageDirectory()}/${documentId[1]}" } return try { - var sdCardOrUsbMainPath = getSdCardOrUSBMainPath(context, documentId[0]) - if (sdCardOrUsbMainPath == null) { - // USB sticks are mounted under the `/mnt/media_rw` directory. - sdCardOrUsbMainPath = "/mnt/media_rw/${documentId[0]}" + val sdCardOrUsbMainPath = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + getSDCardOrUSBMainPathForAndroid10AndAbove(context, documentId[0]) + } else { + getSdCardOrUSBMainPathForAndroid9AndBelow(context, documentId[0]) } "$sdCardOrUsbMainPath/${documentId[1]}" } catch (ignore: Exception) { @@ -157,6 +161,24 @@ object FileUtils { return null } + /** + * Retrieves the main storage path for a given external storage device (SD card, USB stick, or external hard drive). + * + * @param context The application context. + * @param storageName The name of the storage (e.g., "sdcard" or "usbstick"). + * @return The main storage path for the given storage name, or `null` if not found. + * + * This method leverages `getStorageVolumesList`, which directly provides the storage path + * for USB and other mounted devices on Android 10 (API 29) and above. + * + * For Android 9 (API 28) and below, refer to `getSdCardOrUSBMainPath` for retrieving the USB path. + * + * @see getSdCardOrUSBMainPathForAndroid9AndBelow + */ + @RequiresApi(Build.VERSION_CODES.Q) + private fun getSDCardOrUSBMainPathForAndroid10AndAbove(context: Context, storageName: String) = + getStorageVolumesList(context).firstOrNull { it.contains(storageName) } + /** * Retrieves the file path from a given content URI. This method first attempts to get the path * using the content resolver (via `contentQuery`). If that returns null or empty, it falls back @@ -196,22 +218,62 @@ object FileUtils { return actualFilePath } + /** + * Retrieves a list of storage volume paths available on the device. + * + * This method uses the `StorageManager` system service to obtain a list of storage volumes, + * including internal storage, SD cards, and USB devices. The method accounts for API differences: + * - On Android 11 (API 30) and above, it directly retrieves the storage path using `StorageVolume.directory`. + * - On Android 10 (API 29) and below, it constructs the storage path based on the volume's UUID or description. + * + * @param context The application context used to access system services. + * @return A `HashSet` containing paths of available storage volumes. + */ private fun getStorageVolumesList(context: Context): HashSet { val storageVolumes = context.getSystemService(Context.STORAGE_SERVICE) as StorageManager val storageVolumesList = HashSet() storageVolumes.storageVolumes.filterNotNull().forEach { - if (it.isPrimary) { - storageVolumesList.add("${Environment.getExternalStorageDirectory()}/") - } else { - val externalStorageName = it.uuid?.let { uuid -> + storageVolumesList.add(getStoragePath(context, it)) + } + return storageVolumesList + } + + /** + * Determines the appropriate storage path for a given volume. + * + * This method retrieves the storage path based on the Android version: + * - **Android 11+ (API 30+)**: Directly retrieves the storage path from `StorageVolume.directory`. + * - **Primary storage (Internal storage)**: Returns the path using `Environment.getExternalStorageDirectory()`. + * - **External storage (SD card, USB, etc.)**: + * - If the volume has a UUID, constructs the path using `/storage/{UUID}/`. + * - If no UUID is available, falls back to using the volume description. + * + * @param context The application context used for accessing volume descriptions. + * @param volume The `StorageVolume` whose path needs to be determined. + * @return The storage path as a `String`. + */ + private fun getStoragePath(context: Context, volume: StorageVolume): String { + return when { + Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> { + // On Android 11 (API 30) and above, return the storage path directly. + "${volume.directory?.path}" + } + + volume.isPrimary -> { + // If this is the primary internal storage, return the default external storage directory. + "${Environment.getExternalStorageDirectory()}/" + } + + else -> { + // If this is an external storage device, construct the path using UUID or description. + val externalStorageName = volume.uuid?.let { uuid -> "/$uuid/" - } ?: kotlin.run { - "/${it.getDescription(context)}/" - } - storageVolumesList.add("/storage$externalStorageName") + } ?: "/${volume.getDescription(context)}/" + + // On Android 10 and below, external storage devices are mounted under `/storage`. + "/storage$externalStorageName" } } - return storageVolumesList } private fun getFileNameFromUri(context: Context, uri: Uri): String? { @@ -510,9 +572,12 @@ object FileUtils { * @return The main storage path for the given storage name, * or null if the path is a USB path on Android 10 and above * (due to limitations in `context.getExternalFilesDirs("")` behavior). + * + * To get the SD card or USB main path for Android 10 and above refer to: + * @See getSDCardOrUSBMainPathForAndroid10AndAbove */ @JvmStatic - fun getSdCardOrUSBMainPath(context: Context, storageName: String) = + fun getSdCardOrUSBMainPathForAndroid9AndBelow(context: Context, storageName: String) = context.getExternalFilesDirs("") .firstOrNull { it.path.contains(storageName) } ?.path?.substringBefore(context.getString(R.string.android_directory_seperator)) From d9748224812fc35080a0dc82b3b339efa041621d Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Mon, 10 Feb 2025 18:20:07 +0530 Subject: [PATCH 5/6] Refactored the deprecated method used in our test cases. --- .../org/kiwix/kiwixmobile/ObjectBoxToLibkiwixMigratorTest.kt | 3 +-- .../kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt | 5 ++--- .../kiwixmobile/localLibrary/OpeningFilesFromStorageTest.kt | 3 +-- .../org/kiwix/kiwixmobile/main/DarkModeViewPainterTest.kt | 3 +-- .../java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt | 3 +-- .../kiwixmobile/nav/destination/library/LocalLibraryTest.kt | 3 +-- .../java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt | 3 +-- .../kiwix/kiwixmobile/page/bookmarks/LibkiwixBookmarkTest.kt | 3 +-- .../kiwix/kiwixmobile/page/history/NavigationHistoryTest.kt | 3 +-- .../java/org/kiwix/kiwixmobile/reader/EncodedUrlTest.kt | 3 +-- .../org/kiwix/kiwixmobile/reader/KiwixReaderFragmentTest.kt | 3 +-- .../reader/ZimFileReaderWithSplittedZimFileTest.kt | 3 +-- .../java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt | 3 +-- .../org/kiwix/kiwixmobile/core/utils/SharedPreferenceUtil.kt | 1 - .../custom/search/SearchFragmentTestForCustomApp.kt | 3 +-- .../org/kiwix/kiwixmobile/custom/main/CustomFileValidator.kt | 2 +- .../custom/download/main/CustomFileValidatorTest.kt | 5 ++--- 17 files changed, 18 insertions(+), 34 deletions(-) diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/ObjectBoxToLibkiwixMigratorTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/ObjectBoxToLibkiwixMigratorTest.kt index 71758f2bfd..f9e088241f 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/ObjectBoxToLibkiwixMigratorTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/ObjectBoxToLibkiwixMigratorTest.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.lifecycle.Lifecycle import androidx.preference.PreferenceManager @@ -136,7 +135,7 @@ class ObjectBoxToLibkiwixMigratorTest : BaseActivityTest() { val loadFileStream = ObjectBoxToLibkiwixMigratorTest::class.java.classLoader.getResourceAsStream("testzim.zim") zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt index 57408528b7..4dbbe0834c 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/localLibrary/CopyMoveFileHandlerTest.kt @@ -20,7 +20,6 @@ package org.kiwix.kiwixmobile.localLibrary import android.net.Uri import android.os.Build -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.documentfile.provider.DocumentFile import androidx.lifecycle.Lifecycle @@ -227,7 +226,7 @@ class CopyMoveFileHandlerTest : BaseActivityTest() { val loadFileStream = CopyMoveFileHandlerTest::class.java.classLoader.getResourceAsStream("testzim.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() @@ -247,7 +246,7 @@ class CopyMoveFileHandlerTest : BaseActivityTest() { private fun getInvalidZimFileUri(extension: String): Uri { val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim$extension" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/localLibrary/OpeningFilesFromStorageTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/localLibrary/OpeningFilesFromStorageTest.kt index cc0979e1a8..45964bc964 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/localLibrary/OpeningFilesFromStorageTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/localLibrary/OpeningFilesFromStorageTest.kt @@ -26,7 +26,6 @@ import android.net.Uri import android.os.Build import android.provider.MediaStore import android.util.Log -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.lifecycle.Lifecycle import androidx.preference.PreferenceManager @@ -228,7 +227,7 @@ class OpeningFilesFromStorageTest : BaseActivityTest() { val loadFileStream = CopyMoveFileHandlerTest::class.java.classLoader.getResourceAsStream(fileName) val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], fileName ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/main/DarkModeViewPainterTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/main/DarkModeViewPainterTest.kt index 451aa00a79..9764c3ffb2 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/main/DarkModeViewPainterTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/main/DarkModeViewPainterTest.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile.main -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.core.net.toUri import androidx.lifecycle.Lifecycle @@ -161,7 +160,7 @@ class DarkModeViewPainterTest : BaseActivityTest() { val loadFileStream = DarkModeViewPainterTest::class.java.classLoader.getResourceAsStream("testzim.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt index 72d8ac62a8..c8ab3d82ca 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile.mimetype -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.lifecycle.Lifecycle import androidx.preference.PreferenceManager @@ -72,7 +71,7 @@ class MimeTypeTest : BaseActivityTest() { fun testMimeType() = runBlocking { val loadFileStream = MimeTypeTest::class.java.classLoader.getResourceAsStream("testzim.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryTest.kt index a2fe6f9fa2..194c5a55ce 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryTest.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile.nav.destination.library -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.lifecycle.Lifecycle import androidx.preference.PreferenceManager @@ -122,7 +121,7 @@ class LocalLibraryTest : BaseActivityTest() { LocalLibraryTest::class.java.classLoader.getResourceAsStream("testzim.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt index f7ce9e36b4..30b61a7d30 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt @@ -19,7 +19,6 @@ package org.kiwix.kiwixmobile.note import android.os.Build -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.core.net.toUri import androidx.lifecycle.Lifecycle @@ -267,7 +266,7 @@ class NoteFragmentTest : BaseActivityTest() { val loadFileStream = NoteFragmentTest::class.java.classLoader.getResourceAsStream(zimFileName) - val zimFile = File(ContextCompat.getExternalFilesDirs(context, null)[0], zimFileName) + val zimFile = File(context.getExternalFilesDirs(null)[0], zimFileName) if (zimFile.exists()) zimFile.delete() zimFile.createNewFile() loadFileStream.use { inputStream -> diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/LibkiwixBookmarkTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/LibkiwixBookmarkTest.kt index 965f29b9c7..03cb0786f6 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/LibkiwixBookmarkTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/LibkiwixBookmarkTest.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile.page.bookmarks -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.core.net.toUri import androidx.lifecycle.Lifecycle @@ -204,7 +203,7 @@ class LibkiwixBookmarkTest : BaseActivityTest() { val loadFileStream = LibkiwixBookmarkTest::class.java.classLoader.getResourceAsStream("testzim.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/NavigationHistoryTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/NavigationHistoryTest.kt index d0b7915746..da0ce7d5d8 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/NavigationHistoryTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/NavigationHistoryTest.kt @@ -19,7 +19,6 @@ package org.kiwix.kiwixmobile.page.history import android.os.Build -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.core.net.toUri import androidx.lifecycle.Lifecycle @@ -115,7 +114,7 @@ class NavigationHistoryTest : BaseActivityTest() { val loadFileStream = NavigationHistoryTest::class.java.classLoader.getResourceAsStream("testzim.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/EncodedUrlTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/EncodedUrlTest.kt index 2912616e9b..6629c1476e 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/EncodedUrlTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/EncodedUrlTest.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile.reader -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.lifecycle.Lifecycle import androidx.preference.PreferenceManager @@ -79,7 +78,7 @@ class EncodedUrlTest : BaseActivityTest() { val loadFileStream = EncodedUrlTest::class.java.classLoader.getResourceAsStream("characters_encoding.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "characters_encoding.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/KiwixReaderFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/KiwixReaderFragmentTest.kt index f26a3560c1..212a06a8c2 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/KiwixReaderFragmentTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/KiwixReaderFragmentTest.kt @@ -19,7 +19,6 @@ package org.kiwix.kiwixmobile.reader import android.os.Build -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.core.net.toUri import androidx.lifecycle.Lifecycle @@ -113,7 +112,7 @@ class KiwixReaderFragmentTest : BaseActivityTest() { val loadFileStream = KiwixReaderFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/ZimFileReaderWithSplittedZimFileTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/ZimFileReaderWithSplittedZimFileTest.kt index 2133bc265b..0041cd1905 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/ZimFileReaderWithSplittedZimFileTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/reader/ZimFileReaderWithSplittedZimFileTest.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile.reader -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.core.net.toUri import androidx.lifecycle.Lifecycle @@ -154,7 +153,7 @@ class ZimFileReaderWithSplittedZimFileTest : BaseActivityTest() { private fun createAndGetSplitedZimFile(shouldCreateExtraZeroSizeFile: Boolean = false): File? { val loadFileStream = EncodedUrlTest::class.java.classLoader.getResourceAsStream("testzim.zim") - val storageDir = ContextCompat.getExternalFilesDirs(context, null)[0] + val storageDir = context.getExternalFilesDirs(null)[0] // Delete existing parts if they exist (1..3) diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt index 47e9c4adae..106bf6ca98 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile.search import android.os.Build -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.core.net.toUri import androidx.lifecycle.Lifecycle @@ -342,7 +341,7 @@ class SearchFragmentTest : BaseActivityTest() { val loadFileStream = SearchFragmentTest::class.java.classLoader.getResourceAsStream("testzim.zim") val zimFile = File( - ContextCompat.getExternalFilesDirs(context, null)[0], + context.getExternalFilesDirs(null)[0], "testzim.zim" ) if (zimFile.exists()) zimFile.delete() diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/SharedPreferenceUtil.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/SharedPreferenceUtil.kt index 5556425b9e..76c1864176 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/SharedPreferenceUtil.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/SharedPreferenceUtil.kt @@ -22,7 +22,6 @@ import android.content.ContextWrapper import android.content.SharedPreferences import android.os.Build import androidx.appcompat.app.AppCompatDelegate -import androidx.core.content.ContextCompat.getExternalFilesDirs import androidx.core.content.edit import androidx.preference.PreferenceManager import io.reactivex.Flowable diff --git a/custom/src/androidTest/java/org/kiwix/kiwixmobile/custom/search/SearchFragmentTestForCustomApp.kt b/custom/src/androidTest/java/org/kiwix/kiwixmobile/custom/search/SearchFragmentTestForCustomApp.kt index 0cc7a9d850..67da26eda8 100644 --- a/custom/src/androidTest/java/org/kiwix/kiwixmobile/custom/search/SearchFragmentTestForCustomApp.kt +++ b/custom/src/androidTest/java/org/kiwix/kiwixmobile/custom/search/SearchFragmentTestForCustomApp.kt @@ -21,7 +21,6 @@ package org.kiwix.kiwixmobile.custom.search import android.Manifest import android.content.Context import android.content.res.AssetFileDescriptor -import androidx.core.content.ContextCompat import androidx.core.content.edit import androidx.lifecycle.Lifecycle import androidx.navigation.fragment.NavHostFragment @@ -350,7 +349,7 @@ class SearchFragmentTestForCustomApp { .build() private fun getDownloadingZimFile(): File { - val zimFile = File(ContextCompat.getExternalFilesDirs(context, null)[0], "ray_charles.zim") + val zimFile = File(context.getExternalFilesDirs(null)[0], "ray_charles.zim") if (zimFile.exists()) zimFile.delete() zimFile.createNewFile() return zimFile diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomFileValidator.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomFileValidator.kt index 7a40225943..7d87c3030d 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomFileValidator.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomFileValidator.kt @@ -110,7 +110,7 @@ class CustomFileValidator @Inject constructor(private val context: Context) { // Check if the directory's parent is not null dir.parent?.let { parentPath -> // Add the parent directory to the list, so we can scan all the files contained in the folder. - // We are doing this because ContextCompat.getExternalFilesDirs(context, null) method returns the path to the + // We are doing this because context.getExternalFilesDirs(null) method returns the path to the // "files" folder, which is specific to the app's package name, both for internal and SD card storage. // By obtaining the parent directory, we can scan files from the app-specific directory itself. directoryList.add(File(parentPath)) diff --git a/custom/src/test/java/org/kiwix/kiwixmobile/custom/download/main/CustomFileValidatorTest.kt b/custom/src/test/java/org/kiwix/kiwixmobile/custom/download/main/CustomFileValidatorTest.kt index 7f0cb6ffae..4f30d26cb6 100644 --- a/custom/src/test/java/org/kiwix/kiwixmobile/custom/download/main/CustomFileValidatorTest.kt +++ b/custom/src/test/java/org/kiwix/kiwixmobile/custom/download/main/CustomFileValidatorTest.kt @@ -22,7 +22,6 @@ import android.content.Context import android.content.pm.PackageManager import android.content.res.AssetFileDescriptor import android.content.res.AssetManager -import androidx.core.content.ContextCompat import io.mockk.every import io.mockk.mockk import org.junit.jupiter.api.Assertions.assertEquals @@ -189,10 +188,10 @@ class CustomFileValidatorTest { if (extension == "zim") { every { - ContextCompat.getExternalFilesDirs(context, null) + context.getExternalFilesDirs(null) } returns arrayOf(storageDirectory) } else { - every { ContextCompat.getObbDirs(context) } returns arrayOf(storageDirectory) + every { context.obbDirs } returns arrayOf(storageDirectory) } } } From 4735933fd5156aa22b7c1ece99994da024fc0cc8 Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Mon, 10 Feb 2025 19:17:57 +0530 Subject: [PATCH 6/6] Refactored the FileUtilsInstrumentationTest. --- .../files/FileUtilsInstrumentationTest.kt | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/utils/files/FileUtilsInstrumentationTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/utils/files/FileUtilsInstrumentationTest.kt index 801828e2aa..84778ba301 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/utils/files/FileUtilsInstrumentationTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/utils/files/FileUtilsInstrumentationTest.kt @@ -340,7 +340,7 @@ class FileUtilsInstrumentationTest { // get the SD card path val sdCardPath = context?.getExternalFilesDirs("") ?.get(1)?.path?.substringBefore("/Android") - val dummyUriData = listOf( + val dummyUriData = arrayListOf( // test the download uri on older devices DummyUrlData( null, @@ -385,14 +385,6 @@ class FileUtilsInstrumentationTest { "%3A$commonUri" ) ), - // test with USB stick uri - DummyUrlData( - null, - null, - "/mnt/media_rw/USB/$commonPath", - null, - Uri.parse("${primaryStorageUriPrefix}USB%3A$commonUri") - ), // test with invalid uri DummyUrlData( null, @@ -421,6 +413,18 @@ class FileUtilsInstrumentationTest { ) ) ) + // test with USB stick uri + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) { + dummyUriData.add( + DummyUrlData( + null, + null, + "/mnt/media_rw/USB/$commonPath", + null, + Uri.parse("${primaryStorageUriPrefix}USB%3A$commonUri") + ) + ) + } context?.let { context -> CoroutineScope(Dispatchers.Main).launch { dummyUriData.forEach { dummyUrlData ->