diff --git a/locales/ar/common.json b/locales/ar/common.json
index f9000803e7..04ef799a66 100644
--- a/locales/ar/common.json
+++ b/locales/ar/common.json
@@ -15,8 +15,8 @@
},
"quran-foundation-link": {
"action": "التالي",
- "description": "استخدم تسجيل الدخول الخاص بك إلى موقع Quran.com للوصول إلى موقع QuranReflect.com - مجتمع عالمي مزدهر يشارك في التفكير القرآني.",
- "title": "استخدم حسابك عبر تطبيقات Quran.Foundation."
+ "description": "استخدم تسجيل الدخول الخاص بك إلى موقع قرآن دوت كوم (Quran.com) للوصول إلى موقع تأملات قرآنية (QuranReflect.com) - مجتمع عالمي مزدهر يشارك في التفكير القرآني.",
+ "title": "استخدم حسابك عبر تطبيقات مؤسسة القرآن!"
},
"quran-growth-journey": {
"action": "التالي",
@@ -181,6 +181,7 @@
"help": "مساعدة",
"hizb": "حزب",
"home": "الصفحة الرئيسة",
+ "hours": "ساعات",
"inline": "في النسق",
"input": {
"clear": "مسح"
@@ -196,6 +197,7 @@
"meccan": "مكية",
"medinan": "مدنية",
"menu": "القائمة",
+ "minutes": "دقائق",
"mobile-apps": "تطبيقات المحمول",
"mode": "الوضع",
"more": "المزيد",
@@ -259,6 +261,7 @@
"switch-mode": "تحول إلى البحث المفصل",
"title": "بحث"
},
+ "seconds": "ثواني",
"settings": {
"no-tafsir-selected": "لم يتم اختيار تفسير",
"no-translation-selected": "لم يتم اختيار ترجمة",
diff --git a/locales/ar/reading-goal.json b/locales/ar/reading-goal.json
index 8e0aec69ad..06a83a23e0 100644
--- a/locales/ar/reading-goal.json
+++ b/locales/ar/reading-goal.json
@@ -86,9 +86,9 @@
"time-goal": "اقرأ {{time}} من القرآن"
},
"reading-goal": "هدف القراءة",
- "reading-goal-description": "هل تجد صعوبة في الحفاظ على التوافق مع أهدافك في قراءة القرآن؟
رحلة نمو القرآن هي ميزة ديناميكية تم تطويرها لمساعدتك على البقاء متسقًا في رحلتك مع القرآن. سواء كنت تهدف إلى قراءة 10 دقائق في اليوم ، أو إكمال جزء في شهر ، أو إنهاء القرآن بالكامل في عام ، وما إلى ذلك ، يمكن أن يساعدك تطبيق Quran.com الآن في تحديد هدف مخصص وتتبع خطوط القراءة اليومية ، بينما تتكيف مع تقدمك. إنه مجاني تمامًا للاستخدام ونأمل أن يساعدك على البقاء متحمسًا للوصول إلى هدفك!",
+ "reading-goal-description": "هل تجد صعوبة في الحفاظ على التوافق مع أهدافك في قراءة القرآن؟
رحلة نمو القرآن هي ميزة ديناميكية تم تطويرها لمساعدتك على البقاء متسقًا في رحلتك مع القرآن. سواء كنت تهدف إلى قراءة 10 دقائق في اليوم، أو إكمال جزء في شهر، أو إنهاء القرآن بالكامل في عام، وما إلى ذلك، يمكن أن يساعدك تطبيق قرآن دوت كوم (Quran.com) الآن في تحديد هدف مخصص وتتبع خطوط القراءة اليومية، بينما تتكيف مع تقدمك. إنه مجاني تمامًا للاستخدام ونأمل أن يساعدك على البقاء متحمسًا للوصول إلى هدفك!",
"reading-goal-label": "أنت على",
- "reading-goal-title": "تقديم نمو الرحلة القرآنية",
+ "reading-goal-title": "تقديم رحلة الارتقاء القرآنية",
"recommended": "مُستَحسَن",
"remaining": "المتبقي لهذا اليوم",
"remaining-days": {
diff --git a/locales/ar/reading-progress.json b/locales/ar/reading-progress.json
index 1f761e2190..b79a20aa70 100644
--- a/locales/ar/reading-progress.json
+++ b/locales/ar/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "أضف",
+ "add-data-success": "تمت إضافة بيانات القراءة الخاصة بك بنجاح.",
"delete-goal": {
"action": "احذف الهدف",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "سجل القراءة",
"history-for": "سجل القراءة لـ {{date}}",
"manage-goal": "إدارة هدفك في القراءة",
+ "manually-add": "إضافة القراءات يدويا",
"no-reading-history-for": "لا يوجد سجل قراءة لـ {{date}}",
"reading-progress-header": "تقدمك",
"reading-progress-streak": "الاستمرارية",
+ "reading-time": "وقت القراءة",
"you-read": "أنت تقرأ:"
}
\ No newline at end of file
diff --git a/locales/bn/common.json b/locales/bn/common.json
index 935eabf2e6..2de9febc0d 100644
--- a/locales/bn/common.json
+++ b/locales/bn/common.json
@@ -181,6 +181,7 @@
"help": "সাহায্য",
"hizb": "হিযব",
"home": "বাড়ি",
+ "hours": "ঘন্টার",
"inline": "সঙ্গতিপূর্ণভাবে",
"input": {
"clear": "পরিষ্কার"
@@ -196,6 +197,7 @@
"meccan": "মক্কান",
"medinan": "মেদিনান",
"menu": "তালিকা",
+ "minutes": "মিনিট",
"mobile-apps": "মোবাইল অ্যাপস",
"mode": "মোড",
"more": "আরও",
@@ -259,6 +261,7 @@
"switch-mode": "উন্নত অনুসন্ধানে স্যুইচ করুন",
"title": "অনুসন্ধান করুন"
},
+ "seconds": "সেকেন্ড",
"settings": {
"no-tafsir-selected": "কোন তাফসির নির্বাচিত নয়",
"no-translation-selected": "কোনো অনুবাদ নির্বাচন করা হয়নি",
diff --git a/locales/bn/reading-progress.json b/locales/bn/reading-progress.json
index 9ff0c0b2bd..37e51f6aaf 100644
--- a/locales/bn/reading-progress.json
+++ b/locales/bn/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "যোগ করুন",
+ "add-data-success": "আপনার পড়ার ডেটা সফলভাবে যোগ করা হয়েছে।",
"delete-goal": {
"action": "লক্ষ্য মুছুন",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "ইতিহাস পড়া",
"history-for": "{{date}} এর ইতিহাস পড়ার",
"manage-goal": "আপনার পড়ার লক্ষ্য পরিচালনা করুন",
+ "manually-add": "ম্যানুয়ালি রিডিং যোগ করুন",
"no-reading-history-for": "{{date}} এর জন্য কোনো পড়ার ইতিহাস নেই",
"reading-progress-header": "আপনার অগ্রগতি",
"reading-progress-streak": "স্ট্রিক",
+ "reading-time": "পড়ার সময়",
"you-read": "আপনি পড়েছেন:"
}
\ No newline at end of file
diff --git a/locales/en/common.json b/locales/en/common.json
index 79a77a9103..b755a4fbd3 100644
--- a/locales/en/common.json
+++ b/locales/en/common.json
@@ -181,6 +181,7 @@
"help": "Help",
"hizb": "Hizb",
"home": "Home",
+ "hours": "Hours",
"inline": "In-line",
"input": {
"clear": "Clear"
@@ -196,6 +197,7 @@
"meccan": "Meccan",
"medinan": "Medinan",
"menu": "Menu",
+ "minutes": "Minutes",
"mobile-apps": "Mobile Apps",
"mode": "Mode",
"more": "More",
@@ -259,6 +261,7 @@
"switch-mode": "Switch to Advanced Search",
"title": "Search"
},
+ "seconds": "Seconds",
"settings": {
"no-tafsir-selected": "No tafsir selected",
"no-translation-selected": "No translation selected",
diff --git a/locales/en/reading-progress.json b/locales/en/reading-progress.json
index 9fc2b56c94..f615e89d66 100644
--- a/locales/en/reading-progress.json
+++ b/locales/en/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Add",
+ "add-data-success": "Your reading data has been added successfully.",
"delete-goal": {
"action": "Delete Goal",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Reading History",
"history-for": "Reading history for {{date}}",
"manage-goal": "Manage your reading goal",
+ "manually-add": "Manually add readings",
"no-reading-history-for": "No reading history for {{date}}",
"reading-progress-header": "Your Progress",
"reading-progress-streak": "Streak",
+ "reading-time": "Reading time",
"you-read": "You read:"
}
\ No newline at end of file
diff --git a/locales/fa/common.json b/locales/fa/common.json
index 975a6ccb30..9eab9c0161 100644
--- a/locales/fa/common.json
+++ b/locales/fa/common.json
@@ -181,6 +181,7 @@
"help": "کمک",
"hizb": "حزب",
"home": "صفحه اصلی",
+ "hours": "ساعت ها",
"inline": "در خط",
"input": {
"clear": "پاک کردن"
@@ -196,6 +197,7 @@
"meccan": "مکه",
"medinan": "مدینه",
"menu": "منو",
+ "minutes": "دقایق",
"mobile-apps": "برنامه های موبایل",
"mode": "حالت",
"more": "بیشتر",
@@ -259,6 +261,7 @@
"switch-mode": "به جستجوی پیشرفته بروید",
"title": "جستجو کردن"
},
+ "seconds": "ثانیه ها",
"settings": {
"no-tafsir-selected": "هیچ تفسیری انتخاب نشده است",
"no-translation-selected": "ترجمه ای انتخاب نشده است",
diff --git a/locales/fa/reading-progress.json b/locales/fa/reading-progress.json
index 75f1ff89b7..93b9961fa3 100644
--- a/locales/fa/reading-progress.json
+++ b/locales/fa/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "اضافه کردن",
+ "add-data-success": "اطلاعات خواندن شما با موفقیت اضافه شد.",
"delete-goal": {
"action": "حذف هدف",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "خواندن تاریخ",
"history-for": "خواندن تاریخچه برای {{date}}",
"manage-goal": "هدف مطالعه خود را مدیریت کنید",
+ "manually-add": "خوانش ها را به صورت دستی اضافه کنید",
"no-reading-history-for": "بدون سابقه خواندن برای {{date}}",
"reading-progress-header": "پیشرفت شما",
"reading-progress-streak": "خط",
+ "reading-time": "زمان خواندن",
"you-read": "تو می خوانی:"
}
\ No newline at end of file
diff --git a/locales/fr/common.json b/locales/fr/common.json
index c9b228a743..3415520028 100644
--- a/locales/fr/common.json
+++ b/locales/fr/common.json
@@ -181,6 +181,7 @@
"help": "Aider",
"hizb": "Hizb",
"home": "Accueil",
+ "hours": "Heures",
"inline": "En ligne",
"input": {
"clear": "Dégager"
@@ -196,6 +197,7 @@
"meccan": "La Mecque",
"medinan": "Médinan",
"menu": "Menu",
+ "minutes": "Minutes",
"mobile-apps": "Application mobile",
"mode": "Mode",
"more": "Suite",
@@ -259,6 +261,7 @@
"switch-mode": "Passer à la recherche avancée",
"title": "Chercher"
},
+ "seconds": "Secondes",
"settings": {
"no-tafsir-selected": "Aucun tafsir sélectionné",
"no-translation-selected": "Aucune traduction sélectionnée",
diff --git a/locales/fr/reading-progress.json b/locales/fr/reading-progress.json
index 8e4522487c..d527bd487f 100644
--- a/locales/fr/reading-progress.json
+++ b/locales/fr/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Ajouter",
+ "add-data-success": "Vos données de lecture ont été ajoutées avec succès.",
"delete-goal": {
"action": "Supprimer l'objectif",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Lecture de l'histoire",
"history-for": "Historique de lecture pour {{date}}",
"manage-goal": "Gérez votre objectif de lecture",
+ "manually-add": "Ajouter manuellement des lectures",
"no-reading-history-for": "Aucun historique de lecture pour {{date}}",
"reading-progress-header": "Votre progression",
"reading-progress-streak": "Traînée",
+ "reading-time": "Temps de lecture",
"you-read": "Tu lis:"
}
\ No newline at end of file
diff --git a/locales/id/common.json b/locales/id/common.json
index 40d0e6ec5e..0c4aa9d3a2 100644
--- a/locales/id/common.json
+++ b/locales/id/common.json
@@ -181,6 +181,7 @@
"help": "Bantuan",
"hizb": "Hizb",
"home": "Halaman Utama",
+ "hours": "Jam",
"inline": "Di barisan",
"input": {
"clear": "bersihkan"
@@ -196,6 +197,7 @@
"meccan": "Mekah",
"medinan": "Madinah",
"menu": "Menu",
+ "minutes": "Menit",
"mobile-apps": "Aplikasi",
"mode": "Mode",
"more": "Lagi",
@@ -259,6 +261,7 @@
"switch-mode": "Beralih ke Pencarian Lanjutan",
"title": "Mencari"
},
+ "seconds": "Detik",
"settings": {
"no-tafsir-selected": "Tidak ada tafsir yang dipilih",
"no-translation-selected": "Tidak ada terjemahan yang dipilih",
diff --git a/locales/id/reading-progress.json b/locales/id/reading-progress.json
index 0b917f9d1d..48376ea819 100644
--- a/locales/id/reading-progress.json
+++ b/locales/id/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Menambahkan",
+ "add-data-success": "Data bacaan Anda telah berhasil ditambahkan.",
"delete-goal": {
"action": "Hapus Sasaran",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Membaca Sejarah",
"history-for": "Riwayat membaca untuk {{date}}",
"manage-goal": "Kelola tujuan membaca Anda",
+ "manually-add": "Tambahkan bacaan secara manual",
"no-reading-history-for": "Tidak ada riwayat membaca untuk {{date}}",
"reading-progress-header": "Kemajuan Anda",
"reading-progress-streak": "Garis",
+ "reading-time": "Waktu membaca",
"you-read": "Bacalah:"
}
\ No newline at end of file
diff --git a/locales/it/common.json b/locales/it/common.json
index 0eba350ba9..f6df7e9c49 100644
--- a/locales/it/common.json
+++ b/locales/it/common.json
@@ -181,6 +181,7 @@
"help": "Aiuto",
"hizb": "Hizb",
"home": "Casa",
+ "hours": "Ore",
"inline": "In linea",
"input": {
"clear": "Chiaro"
@@ -196,6 +197,7 @@
"meccan": "Meccanico",
"medinan": "Medinan",
"menu": "Menù",
+ "minutes": "Minuti",
"mobile-apps": "App mobili",
"mode": "Modalità",
"more": "Di più",
@@ -259,6 +261,7 @@
"switch-mode": "Passa alla ricerca avanzata",
"title": "Ricerca"
},
+ "seconds": "Secondi",
"settings": {
"no-tafsir-selected": "Nessun tafsir selezionato",
"no-translation-selected": "Nessuna traduzione selezionata",
diff --git a/locales/it/reading-progress.json b/locales/it/reading-progress.json
index a0171553f9..b82f4cf3e8 100644
--- a/locales/it/reading-progress.json
+++ b/locales/it/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Aggiungere",
+ "add-data-success": "I tuoi dati di lettura sono stati aggiunti con successo.",
"delete-goal": {
"action": "Elimina obiettivo",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Leggere la Storia",
"history-for": "Cronologia di lettura per {{date}}",
"manage-goal": "Gestisci il tuo obiettivo di lettura",
+ "manually-add": "Aggiungi manualmente le letture",
"no-reading-history-for": "Nessuna cronologia di lettura per {{date}}",
"reading-progress-header": "I tuoi progressi",
"reading-progress-streak": "Strisciante",
+ "reading-time": "Momento della lettura",
"you-read": "Tu leggi:"
}
\ No newline at end of file
diff --git a/locales/ms/common.json b/locales/ms/common.json
index 4c6150e55d..ac2575df17 100644
--- a/locales/ms/common.json
+++ b/locales/ms/common.json
@@ -181,6 +181,7 @@
"help": "Bantuan",
"hizb": "Hizb",
"home": "Halaman Utama",
+ "hours": "Jam",
"inline": "Dalam barisan",
"input": {
"clear": "Hilangkan"
@@ -196,6 +197,7 @@
"meccan": "Mekah",
"medinan": "Madinah",
"menu": "Menu",
+ "minutes": "minit",
"mobile-apps": "Aplikasi Fon",
"mode": "Mod",
"more": "Lagi",
@@ -259,6 +261,7 @@
"switch-mode": "Tukar kepada Carian Terperinci",
"title": "Cari"
},
+ "seconds": "Detik",
"settings": {
"no-tafsir-selected": "Tiada tafsir yang dipilih",
"no-translation-selected": "Tiada terjemahan yang dipilih",
diff --git a/locales/ms/reading-progress.json b/locales/ms/reading-progress.json
index 23cb13a332..a2ae419806 100644
--- a/locales/ms/reading-progress.json
+++ b/locales/ms/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Tambah",
+ "add-data-success": "Data bacaan anda telah berjaya ditambahkan.",
"delete-goal": {
"action": "Padamkan Matlamat",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Membaca Sejarah",
"history-for": "Sejarah membaca untuk {{date}}",
"manage-goal": "Urus matlamat membaca anda",
+ "manually-add": "Tambah bacaan secara manual",
"no-reading-history-for": "Tiada sejarah bacaan untuk {{date}}",
"reading-progress-header": "Kemajuan Anda",
"reading-progress-streak": "coretan",
+ "reading-time": "Waktu membaca",
"you-read": "Anda baca:"
}
\ No newline at end of file
diff --git a/locales/nl/common.json b/locales/nl/common.json
index e69cc10ba8..a01c55d33a 100644
--- a/locales/nl/common.json
+++ b/locales/nl/common.json
@@ -181,6 +181,7 @@
"help": "Helpen",
"hizb": "Hizb",
"home": "Huis",
+ "hours": "Uur",
"inline": "In lijn",
"input": {
"clear": "Duidelijk"
@@ -196,6 +197,7 @@
"meccan": "Mekkaans",
"medinan": "Medina",
"menu": "Menu",
+ "minutes": "Minuten",
"mobile-apps": "Mobiele apps",
"mode": "Modus",
"more": "Meer",
@@ -259,6 +261,7 @@
"switch-mode": "Overschakelen naar Geavanceerd zoeken",
"title": "Zoeken"
},
+ "seconds": "Seconden",
"settings": {
"no-tafsir-selected": "Geen tafsir geselecteerd",
"no-translation-selected": "Geen vertaling geselecteerd",
diff --git a/locales/nl/reading-progress.json b/locales/nl/reading-progress.json
index 8de11ea4a9..6095def775 100644
--- a/locales/nl/reading-progress.json
+++ b/locales/nl/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Toevoegen",
+ "add-data-success": "Uw leesgegevens zijn succesvol toegevoegd.",
"delete-goal": {
"action": "Doel verwijderen",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Geschiedenis lezen",
"history-for": "Leesgeschiedenis voor {{date}}",
"manage-goal": "Beheer uw leesdoel",
+ "manually-add": "Handmatig metingen toevoegen",
"no-reading-history-for": "Geen leesgeschiedenis voor {{date}}",
"reading-progress-header": "Jouw vooruitgang",
"reading-progress-streak": "Streep",
+ "reading-time": "Leestijd",
"you-read": "Jij leest:"
}
\ No newline at end of file
diff --git a/locales/pt/common.json b/locales/pt/common.json
index 73d4d43991..4885a8ca57 100644
--- a/locales/pt/common.json
+++ b/locales/pt/common.json
@@ -181,6 +181,7 @@
"help": "Ajuda",
"hizb": "Hizb",
"home": "Casa",
+ "hours": "Horas",
"inline": "Em linha",
"input": {
"clear": "Claro"
@@ -196,6 +197,7 @@
"meccan": "Meca",
"medinan": "Medina",
"menu": "Cardápio",
+ "minutes": "Minutos",
"mobile-apps": "Aplicativos móveis",
"mode": "Modo",
"more": "Mais",
@@ -259,6 +261,7 @@
"switch-mode": "Mudar para pesquisa avançada",
"title": "Procurar"
},
+ "seconds": "Segundos",
"settings": {
"no-tafsir-selected": "Nenhum tafsir selecionado",
"no-translation-selected": "Nenhuma tradução selecionada",
diff --git a/locales/pt/reading-progress.json b/locales/pt/reading-progress.json
index 83bfede791..67d2990ac3 100644
--- a/locales/pt/reading-progress.json
+++ b/locales/pt/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Adicionar",
+ "add-data-success": "Seus dados de leitura foram adicionados com sucesso.",
"delete-goal": {
"action": "Excluir meta",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "História de leitura",
"history-for": "Lendo o histórico de {{date}}",
"manage-goal": "Gerencie sua meta de leitura",
+ "manually-add": "Adicionar leituras manualmente",
"no-reading-history-for": "Sem histórico de leitura para {{date}}",
"reading-progress-header": "Seu progresso",
"reading-progress-streak": "Onda",
+ "reading-time": "Tempo de leitura",
"you-read": "Você lê:"
}
\ No newline at end of file
diff --git a/locales/ru/common.json b/locales/ru/common.json
index 4b5d3882f8..de98fd696d 100644
--- a/locales/ru/common.json
+++ b/locales/ru/common.json
@@ -181,6 +181,7 @@
"help": "Помощь",
"hizb": "Хизб",
"home": "Дом",
+ "hours": "Часы",
"inline": "В соответствии",
"input": {
"clear": "Прозрачный"
@@ -196,6 +197,7 @@
"meccan": "мекканец",
"medinan": "Медиан",
"menu": "Меню",
+ "minutes": "Минуты",
"mobile-apps": "Мобильные приложения",
"mode": "Режим",
"more": "Более",
@@ -259,6 +261,7 @@
"switch-mode": "Перейти к расширенному поиску",
"title": "Поиск"
},
+ "seconds": "Секунды",
"settings": {
"no-tafsir-selected": "Тафсир не выбран",
"no-translation-selected": "Перевод не выбран",
diff --git a/locales/ru/reading-progress.json b/locales/ru/reading-progress.json
index 60d4b6e0ad..5f63a797ef 100644
--- a/locales/ru/reading-progress.json
+++ b/locales/ru/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Добавлять",
+ "add-data-success": "Ваши данные о чтении были успешно добавлены.",
"delete-goal": {
"action": "Удалить цель",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Чтение истории",
"history-for": "Чтение истории за {{date}}",
"manage-goal": "Управляйте своей целью чтения",
+ "manually-add": "Добавление показаний вручную",
"no-reading-history-for": "Нет истории чтения за {{date}}",
"reading-progress-header": "Ваш прогресс",
"reading-progress-streak": "Полоса",
+ "reading-time": "Время чтения",
"you-read": "Ты читаешь:"
}
\ No newline at end of file
diff --git a/locales/sq/common.json b/locales/sq/common.json
index ae9e51fb6b..66e2d74908 100644
--- a/locales/sq/common.json
+++ b/locales/sq/common.json
@@ -181,6 +181,7 @@
"help": "Ndihmë",
"hizb": "Hizb",
"home": "Shtëpi",
+ "hours": "orët",
"inline": "Ne rresht",
"input": {
"clear": "Qartë"
@@ -196,6 +197,7 @@
"meccan": "mekas",
"medinan": "Medinas",
"menu": "Menu",
+ "minutes": "Minutat",
"mobile-apps": "Aplikacionet celulare",
"mode": "Modaliteti",
"more": "Më shumë",
@@ -259,6 +261,7 @@
"switch-mode": "Kalo te Kërkimi i Avancuar",
"title": "Kërko"
},
+ "seconds": "Sekonda",
"settings": {
"no-tafsir-selected": "Nuk është zgjedhur asnjë tefsir",
"no-translation-selected": "Nuk u zgjodh asnjë përkthim",
diff --git a/locales/sq/reading-progress.json b/locales/sq/reading-progress.json
index 2db4064397..0f46c82102 100644
--- a/locales/sq/reading-progress.json
+++ b/locales/sq/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Shto",
+ "add-data-success": "Të dhënat tuaja të leximit janë shtuar me sukses.",
"delete-goal": {
"action": "Fshi objektivin",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Leximi i Historisë",
"history-for": "Leximi i historisë për {{date}}",
"manage-goal": "Menaxhoni qëllimin tuaj të leximit",
+ "manually-add": "Shtoni manualisht leximet",
"no-reading-history-for": "Nuk ka histori leximi për {{date}}",
"reading-progress-header": "Përparimi juaj",
"reading-progress-streak": "brez",
+ "reading-time": "Koha e leximit",
"you-read": "Ti lexon:"
}
\ No newline at end of file
diff --git a/locales/th/common.json b/locales/th/common.json
index d7602a5f04..bc4753c8d4 100644
--- a/locales/th/common.json
+++ b/locales/th/common.json
@@ -181,6 +181,7 @@
"help": "ช่วยเหลือ",
"hizb": "ฮิซบ์",
"home": "หน้าหลัก",
+ "hours": "ชั่วโมง",
"inline": "คำแปลแบบคำต่อคำในบรรทัด",
"input": {
"clear": "ล้าง"
@@ -196,6 +197,7 @@
"meccan": "มักกียะห์",
"medinan": "มะดะนียะห์",
"menu": "เมนู",
+ "minutes": "นาที",
"mobile-apps": "แอพลิเคชัน",
"mode": "โหมด",
"more": "เพิ่มเติม",
@@ -259,6 +261,7 @@
"switch-mode": "เปลี่ยนไปใช้การค้นหาขั้นสูง",
"title": "ค้นหา"
},
+ "seconds": "วินาที",
"settings": {
"no-tafsir-selected": "ไม่มีตัฟซีรที่เลือกไว้",
"no-translation-selected": "ไม่ได้เลือกคำแปลไว้",
diff --git a/locales/th/reading-progress.json b/locales/th/reading-progress.json
index d1d54f84e6..f8f1806279 100644
--- a/locales/th/reading-progress.json
+++ b/locales/th/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "เพิ่ม",
+ "add-data-success": "เพิ่มข้อมูลการอ่านของคุณสำเร็จแล้ว",
"delete-goal": {
"action": "ลบเป้าหมาย",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "ประวัติการอ่าน",
"history-for": "ประวัติการอ่านสำหรับ {{date}}",
"manage-goal": "จัดการเป้าหมายการอ่านของคุณ",
+ "manually-add": "เพิ่มการอ่านด้วยตนเอง",
"no-reading-history-for": "ไม่มีประวัติการอ่านสำหรับ {{date}}",
"reading-progress-header": "ความก้าวหน้าของคุณ",
"reading-progress-streak": "ช่วงเวลา",
+ "reading-time": "เวลาอ่านหนังสือ",
"you-read": "คุณกำลังอ่าน:"
}
\ No newline at end of file
diff --git a/locales/tr/common.json b/locales/tr/common.json
index 8d574fb788..1f64f0f987 100644
--- a/locales/tr/common.json
+++ b/locales/tr/common.json
@@ -181,6 +181,7 @@
"help": "Yardım",
"hizb": "Hizb",
"home": "Anasayfa",
+ "hours": "Saat",
"inline": "Çizgide",
"input": {
"clear": "Açık"
@@ -196,6 +197,7 @@
"meccan": "Mekkeli",
"medinan": "Medine",
"menu": "Menü",
+ "minutes": "dakika",
"mobile-apps": "Mobil Uygulamalar",
"mode": "Mod",
"more": "Daha fazla",
@@ -259,6 +261,7 @@
"switch-mode": "Gelişmiş Aramaya Geç",
"title": "Ara"
},
+ "seconds": "Saniye",
"settings": {
"no-tafsir-selected": "Tefsir seçilmedi",
"no-translation-selected": "Çeviri seçilmedi",
diff --git a/locales/tr/reading-progress.json b/locales/tr/reading-progress.json
index 1c6d4b37b5..0f26dd3ab6 100644
--- a/locales/tr/reading-progress.json
+++ b/locales/tr/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "Eklemek",
+ "add-data-success": "Okuma verileriniz başarıyla eklendi.",
"delete-goal": {
"action": "Hedefi Sil",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "Okuma Tarihi",
"history-for": "{{date}} için okuma geçmişi",
"manage-goal": "Okuma hedefinizi yönetin",
+ "manually-add": "Okumaları manuel olarak ekleme",
"no-reading-history-for": "{{date}} için okuma geçmişi yok",
"reading-progress-header": "Senin ilerlemen",
"reading-progress-streak": "Rüzgâr gibi geçmek",
+ "reading-time": "Okuma zamanı",
"you-read": "Sen okumak:"
}
\ No newline at end of file
diff --git a/locales/ur/common.json b/locales/ur/common.json
index 7c24020446..da075c0d27 100644
--- a/locales/ur/common.json
+++ b/locales/ur/common.json
@@ -181,6 +181,7 @@
"help": "مدد",
"hizb": "حزب",
"home": "گھر",
+ "hours": "گھنٹے",
"inline": "ترتیب سے",
"input": {
"clear": "صاف"
@@ -196,6 +197,7 @@
"meccan": "مکہ",
"medinan": "مدینہ",
"menu": "مینو",
+ "minutes": "منٹس",
"mobile-apps": "موبائل ایپس",
"mode": "موڈ",
"more": "مزید",
@@ -259,6 +261,7 @@
"switch-mode": "اعلی درجے کی تلاش پر جائیں۔",
"title": "تلاش کریں۔"
},
+ "seconds": "سیکنڈز",
"settings": {
"no-tafsir-selected": "کوئی تفسیر منتخب نہیں ہے۔",
"no-translation-selected": "کوئی ترجمہ منتخب نہیں کیا گیا۔",
diff --git a/locales/ur/reading-progress.json b/locales/ur/reading-progress.json
index dc214b501d..be47a31138 100644
--- a/locales/ur/reading-progress.json
+++ b/locales/ur/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "شامل کریں۔",
+ "add-data-success": "آپ کا پڑھنے کا ڈیٹا کامیابی کے ساتھ شامل کر دیا گیا ہے۔",
"delete-goal": {
"action": "گول کو حذف کریں۔",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "تاریخ پڑھنا",
"history-for": "{{date}} کی تاریخ پڑھنا",
"manage-goal": "اپنے پڑھنے کے مقصد کا نظم کریں۔",
+ "manually-add": "دستی طور پر ریڈنگز شامل کریں۔",
"no-reading-history-for": "{{date}} کے لیے پڑھنے کی کوئی سرگزشت نہیں",
"reading-progress-header": "آپ کی پیشرفت",
"reading-progress-streak": "اسٹریک",
+ "reading-time": "پڑھنے کا وقت",
"you-read": "آپ پڑھتے ہیں:"
}
\ No newline at end of file
diff --git a/locales/zh/common.json b/locales/zh/common.json
index 031c44cd91..6a8648ecbb 100644
--- a/locales/zh/common.json
+++ b/locales/zh/common.json
@@ -181,6 +181,7 @@
"help": "帮助",
"hizb": "希兹布",
"home": "首页",
+ "hours": "小时",
"inline": "排队",
"input": {
"clear": "清除"
@@ -196,6 +197,7 @@
"meccan": "麦加",
"medinan": "麦地那",
"menu": "菜单",
+ "minutes": "分钟",
"mobile-apps": "手机App",
"mode": "模式",
"more": "更多的",
@@ -259,6 +261,7 @@
"switch-mode": "切换到高级搜索",
"title": "搜索"
},
+ "seconds": "秒数",
"settings": {
"no-tafsir-selected": "尚未选择经注",
"no-translation-selected": "尚未选择译文",
diff --git a/locales/zh/reading-progress.json b/locales/zh/reading-progress.json
index fb2afb0996..4bd376f9e9 100644
--- a/locales/zh/reading-progress.json
+++ b/locales/zh/reading-progress.json
@@ -1,4 +1,6 @@
{
+ "add": "添加",
+ "add-data-success": "您的阅读数据已成功添加。",
"delete-goal": {
"action": "删除目标",
"confirmation": {
@@ -19,8 +21,10 @@
"history": "阅读历史",
"history-for": "{{date}}的阅读历史",
"manage-goal": "管理你的阅读目标",
+ "manually-add": "手动添加读数",
"no-reading-history-for": "{{date}}没有阅读记录",
"reading-progress-header": "你的进步",
"reading-progress-streak": "条纹",
+ "reading-time": "阅读时间",
"you-read": "你读:"
}
\ No newline at end of file
diff --git a/src/components/FormBuilder/buildTranslatedErrorMessageByErrorId.ts b/src/components/FormBuilder/buildTranslatedErrorMessageByErrorId.ts
index 6c9f8aa41c..81d7f97858 100644
--- a/src/components/FormBuilder/buildTranslatedErrorMessageByErrorId.ts
+++ b/src/components/FormBuilder/buildTranslatedErrorMessageByErrorId.ts
@@ -11,9 +11,9 @@ const buildTranslatedErrorMessageByErrorId = (
t: Translate,
) => {
if (Object.values(ErrorMessageId).includes(errorId)) {
- return t(`validation.${errorId}`, { field: capitalize(fieldName) });
+ return t(`common:validation.${errorId}`, { field: capitalize(fieldName) });
}
- return t(`validation.${DEFAULT_ERROR_ID}`, { field: capitalize(fieldName) });
+ return t(`common:validation.${DEFAULT_ERROR_ID}`, { field: capitalize(fieldName) });
};
export default buildTranslatedErrorMessageByErrorId;
diff --git a/src/components/ReadingGoal/ReadingGoalAmount/VerseRangesList.module.scss b/src/components/ReadingGoal/ReadingGoalAmount/VerseRangesList.module.scss
new file mode 100644
index 0000000000..5b46ba4502
--- /dev/null
+++ b/src/components/ReadingGoal/ReadingGoalAmount/VerseRangesList.module.scss
@@ -0,0 +1,5 @@
+.rowContainer {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
diff --git a/src/components/ReadingGoal/ReadingGoalAmount/VerseRangesList.tsx b/src/components/ReadingGoal/ReadingGoalAmount/VerseRangesList.tsx
new file mode 100644
index 0000000000..2ca397986c
--- /dev/null
+++ b/src/components/ReadingGoal/ReadingGoalAmount/VerseRangesList.tsx
@@ -0,0 +1,112 @@
+import { useContext } from 'react';
+
+import useTranslation from 'next-translate/useTranslation';
+
+import styles from './VerseRangesList.module.scss';
+
+import DataContext from '@/contexts/DataContext';
+import Button, { ButtonShape, ButtonSize, ButtonVariant } from '@/dls/Button/Button';
+import Link, { LinkVariant } from '@/dls/Link/Link';
+import CloseIcon from '@/icons/close.svg';
+import { RangeItemDirection } from '@/types/Range';
+import { getChapterData } from '@/utils/chapter';
+import { logButtonClick } from '@/utils/eventLogger';
+import { toLocalizedNumber } from '@/utils/locale';
+import { getChapterWithStartingVerseUrl } from '@/utils/navigation';
+import { parseVerseRange } from '@/utils/verseKeys';
+
+interface VerseRangesListProps {
+ ranges: string[];
+ onVerseClick?: (position: RangeItemDirection, verseKey: string) => void;
+ allowClearingRanges?: boolean;
+ setRanges?: (ranges: string[]) => void;
+}
+
+const VerseRangesList = ({
+ ranges,
+ onVerseClick,
+ allowClearingRanges,
+ setRanges,
+}: VerseRangesListProps) => {
+ const { t, lang } = useTranslation('reading-goal');
+ const chaptersData = useContext(DataContext);
+
+ const handleVerseClick = (position: RangeItemDirection, verseKey: string) => {
+ if (!onVerseClick) return;
+
+ onVerseClick(position, verseKey);
+ };
+
+ const handleRangeDeleteClick = (toBeRemovedRange: string) => {
+ logButtonClick('add_reading_range_remove', {
+ range: toBeRemovedRange,
+ });
+ const newRanges = ranges.filter((range) => range !== toBeRemovedRange);
+ setRanges(newRanges);
+ };
+
+ const all: React.ReactNode[] = [];
+
+ ranges.forEach((range) => {
+ const [
+ { chapter: fromChapter, verse: fromVerse, verseKey: rangeFrom },
+ { chapter: toChapter, verse: toVerse, verseKey: rangeTo },
+ ] = parseVerseRange(range);
+
+ const from = `${
+ getChapterData(chaptersData, fromChapter).transliteratedName
+ } ${toLocalizedNumber(Number(fromVerse), lang)}`;
+
+ const to = `${getChapterData(chaptersData, toChapter).transliteratedName} ${toLocalizedNumber(
+ Number(toVerse),
+ lang,
+ )}`;
+
+ all.push(
+